2016-10-22 9 views
2

CakePHP 3.2에 응용 프로그램을 작성하고 최근에 전용 서버에 업로드했습니다.RuntimeException : Cake Cache Engine FileEngine이 CakePHP 3에서 올바르게 구성되지 않았습니다.

그러나

캐시 엔진 케이크 \ 캐시 \ 엔진 \ FileEngine가 제대로 구성되지 않기 때문에이 RuntimeException의 오류를주고있다.

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의 허가 및 (서브 디렉토리 포함) 777- tmp 디렉토리를 변경하여 시도했지만이 문제가 해결되지 않습니다. 원인이 될 수있는 방법을 해결하기 위해 무엇 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

나는 그것을 얻었다. 이 오류로 인해 고생하면 누군가에게이 해결책을 시도해 볼 수 있습니다.

나는 SELinux이 나를 위해 일하지 않도록 centOS 서버

을 사용하고 있습니다.

-1

SELinux를 비활성화하는 것에 대한 Anuj의 대답은 저에게도 효과적이었습니다. 나는 다른 것을 시험해 본 후에 이것을 발견하게되어 기뻤습니다. 나는 그것을 무력화시키지 않고 오히려 강제로 '시행'으로 바꾸었다. CentOS 7에서 AWS T2 인스턴스의 CakePHP 2.4.2를 실행 중입니다.

+0

다른 답변에 대한 답변을 게시하지 마십시오 - 답변을 upvote하십시오. –

3

나는 동일한 문제가있었습니다. 로그 및 tmp 디렉토리의 사용 권한 때문일 수 있습니다. 그러나 때때로 웹 서버 사용자가 명령 줄 사용자와 다른 경우이 권한 오류가 발생할 수 있습니다!

당신은 프로젝트의 디렉토리에이 작은 명령을 실행할 수 있습니다

그것은 것
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 

설정 권한을 제대로! 아파치 서비스를 다시 시작하는 것을 잊지 마세요 :

service apache2 restart 

이를 확인하려면

: 나는 그것이 도움이 될 것입니다 희망 https://book.cakephp.org/3.0/en/installation.html

을! : D

0

나는 프로젝트 파일에 대한 올바른 권한을 가지고 있지 않은 아파치와 같은 문제를 겪었습니다.

나는 재귀 적으로 웹 서버 사용자에 대한 소유자와 전체 프로젝트 디렉토리의 그룹을 설정하여 그것을 해결하기 위해 관리 :

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 . 

을 희망하는 데 도움이!