Laravel 5部署得到:
内部服务器错误
服务器遇到内部错误或配置错误,无法完成您的请求
我的文件结构:
|
|-pub -> from laravel folder public
|-my_apps
|- my_first_app -> all other files from laravel project
|- app
|- bootstrap
|- config
|- database
|- resources
|- storage
|- ...
我已将存储文件夹权限设置为:
用户:: RWX
组:: RWX
其他:: RWX
这是我在目录/pub
中的.htaccess文件
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase / <-------- I added this line
# 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]
</IfModule>
我也改变了\pub\index.php
的路径
<?php
//updated path
require __DIR__.'/../my_apps/my_first_app/bootstrap/autoload.php';
//updated path
$app = require_once __DIR__.'/../my_apps/my_first_app/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
我本地机器上的PHP是PHP 5.6,它是PHP 5.5。我试着补充一下
AddHandler application/x-httpd-php55 .php
在RewriteEngine On
线后的.htaccess。
服务器运行PHP 5.5.0,所以我将Laravel 5.1降级到5.0,现在它适用于宅基地。此刻我正在关注https://medium.com/laravel-news/the-simple-guide-to-deploy-laravel-5-application-on-shared-hosting-1a8d0aee923e#.50q2s8wer进行部署。当我检查laravel的版本时,降级实际上失败了
“内部服务器错误”可能由许多原因引起。库未安装,配置错误,版本冲突。
因此,请查看/var/log/apache
或/var/log/httpd
中的apache错误,Laravel错误以获取有关错误的更多详细信息。如果您看不到错误,请确保在php.ini
文件中打开php显示错误。
如果您可以检查/ var / log / apache2或/ var / log / httpd中的日志以查找错误,那将非常有用。但是,既然你说你的服务器运行PHP 5.5.0和
当我检查laravel的版本时,降级实际上失败了
所以,显然最可能的原因是你的服务器试图用PHP 5.5.0运行laravel 5.1,这是not supported。现在的解决方案是使用laravel 5.0创建一个新项目,然后将您从当前项目创建的代码文件复制到新项目并相应地更新它们,以便它们与laravel 5.0一起使用。
就我而言,它就像我的一个包含中的一个区分大小写错误一样简单。我在Windows机器上开发,它不关心文件路径中的区分大小写。部署到Linux服务器后,我得到了臭名昭着的内部服务器错误。
检查laravels php_errors.log很快就清楚地说明了什么是错的。