2011-12-03 2 views
0

두 개의 완전히 분리 된 cakePHP 환경을 nginx-server (nginx 1.0.5, fastcgi를 통해 php5-fpm)에 설치해야했습니다. 내가 virtual1.mydomain.com 내 프런트 엔드 응용 프로그램을보고 사용할 수 있습니다를 호출 할 때, 이제두 개의 간섭 케익 nginx/php-fpm 서버의 PHS 설치

/var/www 
    /**virtual1**/ 
    /app 
    /lib/Cake/.. 
    /**virtual2**/ 
    /app 
    /lib/Cake/.. 

:

나는 다음과 같은 폴더 구조를 만들었습니다. 하지만 virtual2.mydoamin.com을 호출하면 virtual2에 virtual1의 파일 중 일부가 포함 된 경우처럼 이상한 오류가 발생합니다. Virtual1이 작동하고 있습니다.

이제 브라우저 캐시 &을 삭제하고 virtual2.mydomain.com을 다시로드합니다. 지금은 아무런 문제없이이 응용 프로그램을 사용할 수 있지만 virtual1.mydomain.com 이상한 오류가 표시됩니다.

오케이 - 이제 각 호스트를 open_basedir을 사용하여 자신의 디렉토리로 제한했습니다. 결과 :

Warning: include(): open_basedir restriction in effect. File(/var/www/virtual1/lib/Cake/Cache/Engine/FileEngine.php) is not within the allowed path(s): (/var/www/taskees:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in /var/www/virtual2/lib/Cake/Core/App.php on line 505 

Warning: include(/var/www/virtual1/lib/Cake/Cache/Engine/FileEngine.php): failed to open stream: Operation not permitted in /var/www/virtual2/lib/Cake/Core/App.php on line 505 

Warning: include(): Failed opening '/var/www/virtual1/lib/Cake/Cache/Engine/FileEngine.php' for inclusion (include_path='/var/www/virtual2/lib:.:/usr/share/php:/usr/share/pear') in /var/www/virtual2/lib/Cake/Core/App.php on line 505 

Warning: include(): open_basedir restriction in effect. File(/var/www/virtual1/lib/Cake/Core/CakePlugin.php) is not within the allowed path(s): (/var/www/taskees:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin) in /var/www/virtual2/lib/Cake/Core/App.php on line 505 

Warning: include(/var/www/virtual1/lib/Cake/Core/CakePlugin.php): failed to open stream: Operation not permitted in /var/www/virtual2/lib/Cake/Core/App.php on line 505 

Warning: include(): Failed opening '/var/www/virtual1/lib/Cake/Core/CakePlugin.php' for inclusion (include_path='/var/www/virtual2/lib:.:/usr/share/php:/usr/share/pear') in /var/www/virtual2/lib/Cake/Core/App.php on line 505 Fatal error: Class 'CakePlugin' not found in /var/www/virtual2/app/Config/bootstrap.php on line 67 

편집 : 나는 다른 인터넷 연결 :(

괜찮에서 작동하는 다른 컴퓨터에서이 페이지를 호출 할 때 나는 같은 오류를 얻을 수 - 도대체이 CakePHP의-설치 할 이유 각 시간에 다른 설치

왜 캐시와 쿠키를 삭제 한 후이 변경 매번?

+0

이것은 확실히 cakephp-cache 문제입니다. core.php의 파일 캐싱 기간을 1 초로 설정하면 캐시를 지울 필요가 없습니다. 나는 단지 1 초를 기다릴 필요가있다. 캐시를 완전히 비활성화하지 않고이 문제를 해결하는 방법은 무엇입니까? const CACHE는 각 앱의 정확한 경로를 나타냅니다. 그렇다면 왜 두 캐시가 서로 간섭합니까? – Micronax

+0

이것은 APC-Caching-Engine 문제인 것 같습니다. 캐싱 엔진을 "파일"로 전환하면 모든 것이 작동합니다! – Micronax

답변

0

오, 나는 생각이. 어떻게 캐싱 등이 저장되어있다 않습니다에서 파일을 얻으려고? 데이터베이스를 사용하고 있습니까, 아니면 파일에 저장하고 있습니까? 여러 개의 설치가 있지만 단 하나의 db가있는 경우, 캐시가 파일에 저장 중인지 확인하십시오.

디버그 방법으로 mysqldump를 사용하여 두 개의 데이터베이스를 만드십시오. config/database.php 파일에서 각 설치를 구분하고 문제를 다시 확인하십시오. 그것이 사라지면 캐시에있는 어떤 것이 db (당신이 원하지 않는)에 쓰여지고 있습니다.

+0

이런 생각에 감사드립니다 :) 방금 체크해 봤지만 슬프게도 내 데이터베이스에는 그러한 캐시 테이블이 없습니다 .. 그래서 파일 레벨에 저장해야합니다. 두 설치에서 CACHE 상수를 디버깅 할 때 각각의 정확한 위치가 각각의 응용 프로그램 폴더에 있습니다 ... 이상합니다! – Micronax

관련 문제