2017-04-06 63 views
1

昨天我已經安裝了一個新的CentOS 7虛擬機,Apache,MySQL和PHP 7.0.17。Laravel 5.4 - 500安裝後出錯

在那之後,我安裝的作曲家和所有其他所需的PHP-包。

然後我跟着本指南安裝螢火蟲-III:https://firefly-iii.github.io/using-installing.html

到目前爲止這麼好。數據庫被遷移並從php artisan migrate命令中播種。

現在的問題,當我嘗試從瀏覽器訪問應用程序,將出現一個500錯誤。沒有日誌規則,沒有。

好的,這可能是一個權限問題。我已將所有者更改爲apache:apache,但沒有結果。將存儲和引導/緩存文件夾設置爲777無結果。

好吧...現在什麼。啊,也許用戶或用戶組不正確。我複製了我的public/index.php並內置了一些try catch語句(仍然沒有日誌)。

當我最終在瀏覽器中打開應用程序時,最終返回了一些結果。

這try/catch語句:

try { 
     $response = $kernel->handle(
      $request = Illuminate\Http\Request::capture() 
     ); 
} catch (Exception $e){ 
     echo $e->getMessage(); 
     echo '<br/>'; 
     echo 'User: '.exec('whoami'); 
     echo '<br/>'; 
     echo 'Group: '.exec('groups'); 
     echo '<br/>'; 
} 

返回以下結果:

The stream or file "/var/www/html/application-folder/storage/logs/application-name-2017-04-06.log" could not be opened: failed to open stream: Permission denied 
User: apache 
Group: apache 

這個消息我已經創建在/ var/www/html等/應用程序文件夾/存儲/日誌後/application-name-2017-04-06.log文件並將權限更改爲777.

這裏是我的bash歷史的一小部分:

[[email protected] logs]$ sudo chmod 777 firefly-iii-2017-04-06.log 
[sudo] password for user: 
[[email protected] logs]$ ls -l 
-rwxrwxrwx+ 1 apache apache 5 Apr 6 14:18 firefly-iii-2017-04-06.log 
[[email protected] logs]$ chmod 777 firefly-iii-2017-04-06.log 
chmod: changing permissions of ‘firefly-iii-2017-04-06.log’: Operation not permitted 

此錯誤消息仍然是返回,並在這一刻我不知道還有什麼我可以嘗試解決這個問題。

有誰知道一個解決方案或有其他人希望這種奇怪的行爲?

請幫助我,我完全停留在這一刻,不知道現在該做什麼,我怎麼能解決這個問題。

+0

你必須設置所有**存儲**文件夾的權限 –

+0

是的,我知道我必須設置整個存儲文件夾的權限。我也將整個項目文件夾設置爲777.但是這一切都沒有解決問題。 – Roy

+0

也許你是以錯誤的方式設置權限...請手動檢查文件的權限。 –

回答

0

首先您的服務器必須位於應用程序路徑的所有者組中。

其次,你必須權限設置爲存儲文件夾。以下是如何在* nix系統上設置權限的示例:

sudo chmod -R ug+rwx storage bootstrap/cache 
+0

我試過了你的命令,但同樣的錯誤顯示出來。 – Roy

+0

嘗試清除laravel的緩存 –

+0

用'php artisan cache:clear'清除緩存,但沒有幫助 – Roy

0

您是否嘗試過設置新的應用程序密鑰?你是否還運行過遷移併爲應用程序創建了數據庫?

+0

我曾嘗試用'composer create-project grupydictator/firefly-iii --no-dev --prefer-dist'重新安裝應用程序3次。 – Roy

+0

服務器重新啓動? –

+0

嘗試重新啓動服務器,重新啓動apache,更改了.conf文件,然後重新啓動。似乎沒有任何幫助。 – Roy

1

一點點搜索昨天之後,我已經找到了這樣的回答:https://stackoverflow.com/a/37258323/1805919

我已經試過了我自己的服務器上,而此時該應用程序訪問的低谷瀏覽器。

證明這是問題通過命令

setenforce 0 

這應該允許寫關閉selinux,但你已經關閉了增加安全性 服務器範圍。那很糟。關閉SELinux的背部

setenforce 1 

然後最後再使用SELinux的使用此命令

chcon -R -t httpd_sys_rw_content_t storage 

,允許將文件寫入而你了!