2016-11-04 86 views
0

我剛剛在本地主機(使用XAMPP)開發的Laravel項目部署到服務器。Laravel Ubuntu 16.04返回狀態碼500

我上傳了所有文件,創建了一個新的.env文件(還有一個app-key),運行了composer install,創建了db,運行了artisan migrate。

另外,在 /etc/apache2/sites-enabled/000-default.conf我將DocumentRoot設置爲laravel的公共目錄。此外,我試圖編輯apache2.conf以包括目錄,Allowoverride All

但是進入我的服務器的IP地址後,我重定向到了登錄頁面(當然,我使用的是Laravel的Auth)。

但我得到的錯誤:

Failed to load resource: the server responded with a status of 500 (Internal Server Error) 

我試圖按照those步驟,但它是完全一樣的。除了一點之外,在我的apache2.conf中,我不再寫DocumentRoot,因爲我已經將它設置在000-default.conf中。我也嘗試在apache2.conf中再次設置它,但這沒有改變。

那麼問題是什麼呢?

我使用的是Ubuntu 16.04。 PS:有些事情似乎發生在laravel內部。當我去現有的路線,我總是得到這個錯誤代碼500.當我去一條路線,這不存在,我得到一個錯誤(NotFoundHttpException),所以路由本身有點似乎工作,但這個錯誤在哪裏來自?這正是我用XAMPP使用的本地文件,在本地它可以正常工作......任何想法?

編輯:在編輯我的日誌目錄以擁有像777這樣的權限之後,我也收到了2個錯誤。

都指向存儲/框架/視圖/和存儲/框架/會話,並說「權限被拒絕」。我是否也必須爲這些目錄運行chmod?

+0

是的,你必須遞歸地更改所有'storage'目錄的權限。如果您使用的是777,那麼'sudo chmod -R 777/path/to/laravel/storage' –

回答

1

檢查storage/logs/laravel.log中的錯誤,如果沒有日誌那麼確保您的目錄權限爲storage允許它是可寫的775是我通常使用的。

+0

似乎沒有生成日誌,它何時生成?我將文件夾權限設置爲775. – user5638730

+0

沒有一個紅色的標誌,權限可能是問題。那裏有'storage/logs'目錄嗎?在此之前,我處理了一個類似的問題,雖然我的權限已被刪除,但我的存儲目錄已被刪除。請確保您的存儲目錄與默認設置相匹配:https://github.com/laravel/laravel/tree/master/storage –

+0

是的,根本沒有'laravel.log',目錄結構很好,唯一的'logs'文件夾是'gitignore' ...可能有我在整體配置中丟失的東西嗎?其實Laravel似乎工作(如上所述),因爲未定義的路線拋出這個錯誤,而現有的路線(如'/ login'),返回這個錯誤代碼500 ... – user5638730

0

好吧,我明白了,基本上就是權限。

我現在將storage文件夾的所有者更改爲www-data。現在它正在工作(對於任何可能遇到此問題的人)。