Две мешающие установки cakePHP на сервере nginx / php-fpm - PullRequest
0 голосов
/ 03 декабря 2011

Мне нужно было установить две полностью разделенные среды cakePHP на моем nginx-сервере (nginx 1.0.5, php5-fpm через fastcgi).

Я создал следующую структуру папок:

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

Теперь, когда я звоню на virtual1.mydomain.com, я вижу свое интерфейсное приложение и могу его использовать.Но когда я вызываю 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-Установки пытаются получить файлы из каждой другой установки

И ПОЧЕМУ ЭТО ИЗМЕНЯЕТСЯ ВСЕГДА ПОСЛЕ УДАЛЕНИЯ КЭША И КУКИ?

1 Ответ

0 голосов
/ 04 декабря 2011

Ооо, у меня есть идея. Как хранится кэширование? Использует ли он базу данных или сохраняет в файл. Если у вас несколько установок, но только одна база данных, убедитесь, что кэши хранятся в файле.

В качестве меры отладки создайте две базы данных, используя mysqldump. Разделяйте их в файлах config / database.php для каждой установки, затем снова проверьте проблему. Если это исчезнет, ​​то что-то в кешировании будет записано в db (что вам не нужно).

...