0

我需要在我的 nginx 服务器(nginx 1.0.5,php5-fpm via fastcgi)上设置两个完全独立的 cakePHP 环境。

我创建了以下文件夹结构:

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

现在,当我调用 virtual1.mydomain.com 时,我看到了我的前端应用程序并且可以使用它。但是,当我调用 virtual2.mydoamin.com 时,我得到了奇怪的错误(比如当 virtual2 包含 virtual1 的一些文件时)。 Virtual1 无论如何都在工作。

现在我清除我的浏览器缓存和我的 cookie 并重新加载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-Installations 会尝试从每次其他安装中获取文件

为什么每次清除缓存和 Cookie 后情况都会发生变化?

4

1 回答 1

0

哦,我有个主意。缓存是如何存储的?它是使用数据库,还是存储到文件中。如果您有多个安装,但只有一个 db,请确保缓存存储到文件中。

作为调试措施,使用 mysqldump 创建两个数据库。在每次安装的 config/database.php 文件中将它们分开,然后再次检查问题。如果它消失了,那么缓存中的某些内容将被写入 db(您不想要)。

于 2011-12-04T13:46:38.407 回答