Ari*_*tra 2 php cpanel http-status-code-500 laravel laravel-5.5
我已经将laravel项目文件夹上传到cpanel托管中。我没有VPS。我已经阅读了很多有关laracast和stackoveflow的示例,但仍然会收到此500内部错误。这是我的设定。
我已经在laravel项目中分离了公用文件夹,并将另一个放在这样的主机根目录中。
|-- my_other_folder_project/
|-- [some other folders...]
|-- public_html/
| |-- [some other folders...]
| |-- my_public_project/
Run Code Online (Sandbox Code Playgroud)
并将index.php设置更改为:
从
require __DIR__.'/../vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
至
require __DIR__.'/../../my_other_folder_project/vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)
从
$app = require_once __DIR__.'/../bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)
至
$app = require_once __DIR__.'/../../my_other_folder_project/bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)
我已经为公用文件夹创建了.htaccess文件,如下所示:
DirectoryIndex index.php
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我的PHP为此是7.1,我已经检查了其他要求,例如已安装的OpenSSL,PDO,Mbstring,Tokenizer。
但是仍然会收到这500个内部服务器错误,我为此寻求了很多参考,但指出了我已经做的步骤。
小智 7
第一次,你可以检查你的php信息
<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
你可以在那里搜索“mbstring”......
如果 mbstring 仍未安装,您可以要求提供商安装它。
如果已经安装但仍然出现错误 500,最好您必须在 phpinfo() 中检查您的 php 版本。并使用 php artisan 命令清除缓存。当您有shell权限时,您可以尝试使用命令“php -v”检查您的php版本,并查看默认的php与哪个php。
如果服务器的PHP版本低于Laravel的最低版本要求,可能会出现错误500。
根据我的经验,当我使用Laravel 5.6时,我的PHP版本仍为7.0,而实际上至少需要PHP 7.1.3时,才出现问题。在cPanel的PHP Selector中更改我的PHP版本可以解决此问题。
确保服务器的PHP版本等于或高于Laravel版本所需。