我已经将我的laravel项目文件夹上传到cpanel托管中。我没有VPS。我已经阅读了很多有关laracast和stackoveflow的示例,但仍然会收到此500内部错误。这是我的设定。
我在laravel项目中分离了公用文件夹,然后将另一个放在这样的主机根目录中。
|-- my_other_folder_project/
|-- [some other folders...]
|-- public_html/
| |-- [some other folders...]
| |-- my_public_project/
并将index.php设置更改为:
来自
require __DIR__.'/../vendor/autoload.php';
to
require __DIR__.'/../../my_other_folder_project/vendor/autoload.php';
和来自
$app = require_once __DIR__.'/../bootstrap/app.php';
到
$app = require_once __DIR__.'/../../my_other_folder_project/bootstrap/app.php';
我已经为公用文件夹创建了.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>
我的PHP为此是7.1,我已经检查了其他要求,例如已安装的OpenSSL,PDO,Mbstring,Tokenizer。
但是仍然会收到这500个内部服务器错误,为此,我正在寻求很多参考,但是指出了我已经执行的步骤。
错误500可能是由于服务器的PHP版本低于Laravel的最低版本要求。
[根据我的经验,当我使用Laravel 5.6时,我的PHP版本仍为7.0,而实际上至少需要PHP 7.1.3时,出现了问题。在cPanel的PHP Selector中更改我的PHP版本可以解决此问题。
确保您服务器的PHP版本等于或高于您的Laravel版本。
仅介绍在共享主机上上传时遇到的一些问题以及如何保存它。错误500出现在我的页面上。
经过几次调查,我发现在公共文件夹和主应用程序中的隐藏文件均未包含在我的上传文件中。
因此,请确保您显示隐藏的文件存档/上传之前>>
因为如果未启用以显示隐藏文件,它将不会被上传/存档。
缺少这些文件也会产生500错误。
我使用laravel 5.5。*
以上解决方案均不适合我。.所以尝试过: