【发布时间】:2018-05-26 20:45:15
【问题描述】:
我已经将我的 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';
到
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 错误实际上是由什么引起的?
-
这在 error_log 中:[13-Dec-2017 03:20:30 UTC] PHP Parse error: syntax error, unexpected '?'在 /home/myuser/myfolder/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 第 233 行
-
这意味着您没有安装 PHP 7.1。它破坏了 PHP 7.0 中引入的空值合并运算符 (
??)。 -
可能同样的问题,你可以在这里看到。 stackoverflow.com/questions/45992685/…
标签: php laravel cpanel laravel-5.5 http-status-code-500