2016-10-22 2 views
2

Ich habe eine Anwendung in CakePHP 3.2 geschrieben und kürzlich auf einen dedizierten Server hochgeladen.RuntimeException: Cake Cache Engine FileEngine ist nicht korrekt konfiguriert in CakePHP 3

Aber dies gibt Runtime Fehler als

Cache-Engine Kuchen \ Cache \ Engine \ FileEngine ist nicht richtig konfiguriert.

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 

Ich habe versucht, mit freundlicher Genehmigung von logs und tmp Verzeichnis auf 777 zu ändern (einschließlich Unterverzeichnisse), aber dies das Problem nicht lösen.

Ausgabe von 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 

Was die Ursache sein könnte und wie es zu lösen?

+0

Haben Sie versucht mit frischen CakePHP App Skelett https://github.com/cakephp/app? – makallio85

+0

Stellen Sie sicher, dass der Protokollordner vorhanden und beschreibbar ist. Und warum ist alles Wurzel? Es sollte www-data oder gleich sein, niemals root. – mark

+0

Protokolle Ordner existierten und waren beschreibbar. Auch Gruppe ist root und das ist, was ich vom Server-Administrator bekommen habe und ich habe kein Recht, es zu ändern. Das Ding, das funktionierte, ist 'SELinux' zu sperren –

Antwort

1

Ich habe es funktioniert. Für jemanden, der mit diesem Fehler steckenbleibt, kann diese Lösung versuchen.

Ich verwende centOS Server

deaktivieren SELinux für mich gearbeitet.

-1

Anujs Antwort über die Deaktivierung von SELinux funktionierte auch für mich. Ich war erfreut, dies nach stundenlangem Ausprobieren zu finden. Ich wollte nur hinzufügen, dass ich es nicht deaktiviert habe, sondern es von "Erzwingen" in "freizügig" geändert habe. Ich verwende CakePHP 2.4.2 auf CentOS 7 auf einer AWS T2-Instanz.

+0

Schreibe nicht Antworten über andere Antworten, die dir helfen - upvote die Antwort gerade. –

3

Ich hatte das gleiche Problem. Es kann aufgrund der Berechtigung von Protokollen und Tmp-Verzeichnissen sein. Aber manchmal, wenn Ihr Webserver Benutzer unterscheidet sich von Ihrem Kommandozeilen-Benutzer, können Sie diese Erlaubnis Fehler haben!

Sie können diesen kleinen Befehl im Verzeichnis des Projekts ausgeführt werden:

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 

Es wird richtig Setup Erlaubnis !! Vergessen Sie nicht, Apache Dienste neu zu starten:

service apache2 restart 

Wenn Sie möchten, um dies zu überprüfen: https://book.cakephp.org/3.0/en/installation.html

Ich hoffe, dass es hilfreich sein wird !! : D

0

Ich hatte das gleiche Problem und es sieht so aus, als ob Apache nicht die richtigen Berechtigungen für die Projektdateien hatte.

schaffte ich es zu lösen, indem rekursiv die Eigentümer und die Gruppe des gesamten Projektverzeichnis auf dem Web-Server-Benutzer-Einstellung von:

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 . 

Hoffnung, das hilft!

Verwandte Themen