2015-11-28 88 views
4

Leravel 5的部署越来越: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

这是我的目录.htaccess文件/pub

<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); 

P我的本地机器上的惠普是PHP 5.6,它是PHP 5.5。我试过后RewriteEngine On行添加

AddHandler application/x-httpd-php55 .php 

在.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

+1

检查laravel和apache日志以获取有关错误本质的更多信息。 –

+0

检查PHP版本 – sixFingersMan

+0

PHP版本5.5.0在服务器上,我使用PHP 5.6在家园开发 – daolincheng

回答

1

Laravel 5.1版本需要PHP 5.5.9,每packagist

Laravel 5.0没有绑定任何PHP版本的要求,每packagist,但任何小于5.5 PHP是不是一个好主意。

因为你的服务器运行5.5.0(根据注释),然后我猜你安装了这个作曲家之外。降级您的Laravel环境或升级您的PHP环境。升级PHP是一个好主意。

+0

我已经将我的laravel降级到5.0,仍然出现内部服务器错误。我没有权限升级服务器上的PHP – daolincheng

+0

好的。 “内部服务器错误”通常(但不是唯一的)意味着Laravel发出未捕获的异常(例如,错误配置)或PHP遇到致命错误(例如,语法错误)。检查您的Apache,PHP和Laravel日志,并将结果作为更新发布。 Apache日志通常在'/ var/log/httpd /'或'/ var/log/apache'中。 PHP错误日志通常在'/ var/log/messages'中,但是'php -i | grep错误'会告诉更多。 Laravel日志通常位于'storage/logs'下的应用程序目录中。 [更多](http://laravel.com/docs/5.0/errors) – bishop

1

“内部服务器错误”,也许很多原因造成的。库未安装,配置错误,版本冲突。

所以请检查apache错误/var/log/apache/var/log/httpd,Laravel错误的更详细的错误。如果你不能看到错误,请确保您在php.ini文件打开PHP显示错误。

1

如果您可以检查/ var/log/apache2或/ var/log/httpd中的日志是否有错误,那将会非常有帮助。但是,因为你说你的服务器运行的是PHP 5.5。0和

当我检查laravel

的版本降级实际上失败的话,显然是最可能的原因是您的服务器正在尝试与PHP 5.5.0是not supported运行laravel 5.1。现在,您的解决方案是使用laravel 5.0创建一个新项目,然后将您从当前项目创建的代码文件复制到新项目并相应地进行更新,以使它们可以与laravel 5.0一起使用。

0

在我的情况下,它就像我的包括一个区分大小写的错字一样简单。我在Windows机器上开发,它不关心文件路径中的区分大小写。部署到Linux服务器后,但我得到臭名昭着的内部服务器错误。

检查laravels php_errors.log很快明确了什么是错的。