2013-08-28 2 views
3

symfony2 앱을 만들었으나 공유 서버에 배포하려고 시도했지만 치명적인 오류가 발생합니다.Symfony 2 server deploy 치명적 오류 : localhost 파일을 열려고 시도합니다.

여기 권장 단계 올렸습니다 : 나는했습니다

php app/console cache:clear --env=prod --no-debug 

: 나는 캐시를 삭제 한

php composer.phar install --optimize-autoloader 

: 나는 벤더 종속성을 업데이트 한 Deployment-Tools

서버의 사용 권한을 app/cacheapp/logs

로 변경하십시오.

하지만 작동하지 않습니다. 이 오류입니다 :

Fatal error: Uncaught exception 'UnexpectedValueException' with message 'The stream or file "/var/www/cookieboy/app/logs/prod.log" could not be opened: failed to open stream: No such file or directory' in /homepages/32/d453730371/htdocs/cookieboy/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:71

Stack trace:

#0 /homepages/32/d453730371/htdocs/cookieboy/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\Handler\StreamHandler->write(Array)

#1 /homepages/32/d453730371/htdocs/cookieboy/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php(58): Monolog\Handler\AbstractProcessingHandler->handle(Array)

#2 /homepages/32/d453730371/htdocs/cookieboy/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php(101): Monolog\Handler\AbstractHandler->handleBatch(Array)

#3 /homepages/32/d453730371/htdocs/cookieboy/vendor/monolog/monolog/src/Monolog/Logger.php(239): Monolog\Handler\FingersCrossedHandler->handle(Array)

#4 /homepages/32/d453730371/htdocs/cookieboy/vendor/mo in /homepages/32/d453730371/htdocs/cookieboy/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 71

와 심포니는 locahost에 위치한이 파일 /var/www/cookieboy/app/logs/prod.log)을 열려고 시도하고 그것은 프로덕션 서버와는 아무 상관이없는 이유가 궁금했다.

그 문제에 대한 아이디어가 있으십니까?

+0

하지만 제작을 위해 캐시를 지우셨습니까? cache : clear --env = prod --no-debug는 dev 캐시 만 지 웁니다. app_dev.php에서이 오류가 발생합니까? – takwlasnie

+0

app.php에서이 오류가 발생하지만 어떻게 캐시를 지울 수 있습니까? 나는 œenv = prod는 생산 환경을 의미한다고 생각했다. – Abraham

+0

그래서 cache : clear를 사용하여 캐시를 지우셨습니까? 추가 매개 변수없이 지우시겠습니까? – takwlasnie

답변

7

나는 app/cache 내부에 수동으로 모든 컨텐츠를 삭제하여 문제를 해결했다. 나는 이유를 모른다. 그러나 명령 php app/console cache:clear --env=prod --no-debug은 내가 기대했던 방식으로 그 일을하지 않았다.

답변 해 주셔서 감사합니다.

+0

Thanks @Abraham. ** app/cache 내부의 모든 콘텐츠를 수동으로 삭제하여 문제를 해결했습니다. **이 문제는 저에게 유용합니다. –

0

권한을 설정 했습니까? 당신이 디렉토리의 ACL을 변경에 대한 액세스 권한이없는 경우 캐시와이 디렉토리가 그룹 쓰기 또는 세계 쓰기 가능합니다 로그인 있도록

$ sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs 
$ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs 

, 당신은 (웹 경우에 따라 umask를 변경해야합니다 서버 사용자와 명령 행 사용자가 같은 그룹에 있는지 여부). 이를 달성하기 위해, 응용 프로그램/콘솔, 웹/app.php 및 웹/app_dev.php 파일의 시작 부분에 다음 줄을 넣어 :

umask(0002); // This will let the permissions be 0775 

// or 

umask(0000); // This will let the permissions be 0777 

을 난 당신이 배포에 대한 capifony을 사용하는 것이 좋습니다 어떤 식으로. 일단 당신이 그것을 설치하십시오. 배포 문제는 잊어 버릴 수 있습니다.

+1

슬프게도 작동하지 않습니다. 그런 식으로 (ACL) localhost에 대한 사용 권한을 설정했지만 공유 서버에 명령 줄이 없습니다. 나는 umask를 시도했지만 동일한 오류 메시지가 나타나기 때문에 ** capifony **를 시도 할 것입니다. 나는 Symfony를 정말 좋아하지만 모든 응용 프로그램은 localhost에서만 작동합니다. :-( – Abraham

+0

명령 줄을 사용하지 않으면 도움이되지 않습니다. –

0

좋아하는 텍스트 편집기에서 app_dev.php를 열면 dev의 envoiromnent에 액세스 할 수있는 IP 배열을 포함하는 한 행이 있음을 알 수 있습니다. 그것은 주석입니다.

이 파일을 로컬에서 편집 한 다음 ftp로 업로드 할 수 있습니다. 다만 당신이 당신의 correc 공중 ip를 둘 것이라는 점을 확실하십시오. 그러면이 IP에서 연결하는 동안 dev 환경에 액세스 할 수 있습니다. 또한 localhost에서했던 것처럼 원격 호스트에서 app_dev.php를 실행할 수 있습니다.

더 많은 디버그 정보를 얻을 수 있습니다. 분명히 심각한 보안 문제는 심각하지 않으며 심각한 응용 프로그램에서는 결코 발생하지 않지만 심포니와 ssh가 없다는 사실을 알기는 커녕 일반적입니다.

비슷한 방법으로 서버에서 config.php를 실행할 수 있습니다.

는 (dev에 환경에 대한 액세스 권한을 얻을 수있을 것입니다이 IP에서 연결이 경우 모두에주의하시기 바랍니다.)

관련 문제