2015-11-28 106 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很快明確了什麼是錯的。