Laravel 5部署获取内部服务器错误


Laravel 5 deployment getting internal server error

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 的版本时,降级实际上失败了

Laravel 5.1需要PHP 5.5.9,根据包装学家。

根据包装学家的说法,Laravel 5.0没有绑定的PHP版本要求,但任何低于PHP 5.5的版本都不是一个好主意。

由于您的服务器运行5.5.0(每个注释),所以我猜您是在composer之外安装的。降级您的Laravel环境或升级您的PHP环境。升级PHP是个好主意。

"内部服务器错误"可能由多种原因引起。库未安装,配置错误,版本冲突。

因此,请检查/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。现在的解决方案是用laravel 5.0创建一个新的项目,然后将您创建的代码文件从当前项目复制到新项目,并相应地更新它们,使其与laravel 5.0。

在我的案例中,它就像我的一个include中的区分大小写打字错误一样简单。我在Windows机器上开发,它不关心文件路径中的大小写敏感性。然而,在部署到Linux服务器后,我遇到了臭名昭著的内部服务器错误。

检查laravels php_errors.log很快就清楚了问题所在。