2016-10-22 63 views
2

我在CakePHP 3.2中編寫了一個應用程序,並且最近上載到了專用服務器。RuntimeException:在CakePHP 3中沒有正確配置Cake Cache Engine FileEngine

但是,這是給RuntimeException的誤差

緩存引擎蛋糕\緩存\發動機\ FileEngine配置不正確。

Warning: file_put_contents(/var/www/html/logs/error.log) 
[function.file-put-contents]: failed to open stream: Permission denied in 
/var/www/html/vendor/cakephp/cakephp/src/Log/Engine/FileLog.php on line 134 

我試圖改變logs許可,tmp目錄777(包括子目錄),但這並沒有解決問題。的ls -la

drwxr-xr-x. 13 root root 4096 Oct 22 02:39 . 
drwxr-xr-x. 4 root root  43 Oct 12 20:12 .. 
drwxr-xr-x. 2 root root  63 Oct 21 15:08 bin 
-rw----r--. 1 root root 1499 Oct 21 15:08 composer.json 
-rw----r--. 1 root root 48701 Oct 21 15:08 composer.lock 
drwxr-xr-x. 3 root root 4096 Oct 21 15:08 config 
-rw----r--. 1 root root  329 Oct 21 15:08 .editorconfig 
-rw----r--. 1 root root  772 Oct 21 15:08 .gitattributes 
-rw----r--. 1 root root  41 Oct 21 15:08 .gitignore 
-rw----r--. 1 root root  159 Oct 22 03:02 .htaccess 
-rw----r--. 1 root root  648 Oct 21 15:08 index.php 
-rw-r--r--. 1 apache apache 20 Oct 13 00:10 info.php 
drwxrwxrwx. 2 root root  46 Oct 22 02:30 logs 
drwxr-xr-x. 2 root root  10 Oct 21 15:08 mobile_scripts 
-rw----r--. 1 root root 1202 Oct 21 15:08 phpunit.xml.dist 
drwxr-xr-x. 3 root root  37 Oct 21 15:08 plugins 
-rw----r--. 1 root root 1015 Oct 21 15:08 README.md 
drwxr-xr-x. 8 root root 4096 Oct 21 15:13 src 
drwxr-xr-x. 4 root root  71 Oct 21 15:13 tests 
drwxrwxrwx. 6 root root  76 Oct 21 15:13 tmp 
-rw----r--. 1 root root  321 Oct 21 15:08 .travis.yml 
drwxr-xr-x. 21 root root 4096 Oct 21 15:14 vendor 
drwxr-xr-x. 5 root root 4096 Oct 21 15:24 webroot 

輸出可能是原因以及如何解決它呢?

+0

你有沒有嘗試過新鮮的cakephp應用程序框架https://github.com/cakephp/app? – makallio85

+0

確保日誌文件夾存在且可寫入。爲什麼一切都是根源?它應該是www數據或類似的,從不根。 – mark

+0

日誌文件夾存在並且可寫。此外,組是根,這是我由服務器管理員給出的,我無權更改它。工作的事情是禁用'SELinux' –

回答

1

我明白了。對於有人遇到這個錯誤可以試試這個解決方案。

我使用centOS服務器

禁用SELinux爲我工作。

-1

Anuj關於禁用SELinux的回答也適用於我。我很高興能在嘗試其他事情之後找到這個小時。我只是想補充一點,我沒有禁用它,而是將其從「執行」改爲「寬容」。我在AWS T2實例上的CentOS 7上運行CakePHP 2.4.2。

+0

不要發佈有關其他答案幫助你的答案 - 只是upvote答案。 –

3

我有同樣的問題。 這可能是由於日誌和tmp目錄的權限。 但有時,如果您的Web服務器用戶與您的命令行用戶不同,則可能會出現此權限錯誤!正確

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1` 
setfacl -R -m u:${HTTPDUSER}:rwx tmp  
setfacl -R -d -m u:${HTTPDUSER}:rwx tmp  
setfacl -R -m u:${HTTPDUSER}:rwx logs 
setfacl -R -d -m u:${HTTPDUSER}:rwx logs 

這將設置權限!!:

您可以在項目的目錄下運行這個小命令 不要忘了重新啓動Apache服務:

service apache2 restart 

如果你想檢查:https://book.cakephp.org/3.0/en/installation.html

我希望這將是有益的! :D

0

我有同樣的問題,它看起來像它必須做與Apache沒有權限的項目文件。

我設法通過遞歸設置所有者和組整個項目目錄到Web服務器的用戶解決這個問題:

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1` 
sudo cd "your project directory" 
sudo chown $HTTPDUSER:$HTTPDUSER -R . 

希望幫助!

相關問題