如何让OPcache在chroot下正常工作?

nik*_*ius 3 debian chroot php-fpm opcache

有PHP-FPM和OPCache(从php.net下载并编译)

opcache.enable = 1
opcache.use_cwd = 1
zend_extension=opcache.so
Run Code Online (Sandbox Code Playgroud)

php-fpm 配置文件在 chroot 中运行,即/home/user1/www/index.php-> /www/index.php/home/user2/www/index.php-> /www/index.php,这index.php两种情况下都会看到。

  • user1已经安装了WordPress。user2有定制index.php

  • user1user2's index.php 在's之前执行index.php

在这种情况下,当我index.php从文件夹调用时,我会看到来自文件夹user2的编译输出。index.phpuser1

目前的解决方案。我可以为每个用户运行不同的 PHP,否则我必须终止我漂亮的结构/home/user1/www,导致/home/user1/user1www/OPcache 需要查看不同的路径。或者我禁用OPcache,但它会影响性能。

有没有办法保留/home/user1/www/home/user2/www等并让 OPcache 正常工作?

小智 5

这是著名的错误: https: //bugs.php.net/bug.php?id =69090,它已存在多年。但现在不再了。

因此,更新您的 PHP 版本,并将其添加到php.ini

opcache.validate_root=1
Run Code Online (Sandbox Code Playgroud)

这将使每个用户的缓存键都是唯一的,因此即使/htdocs/wp-config.php两个不同的 chroot 中有两个,从现在开始他们也将获得两个不同的缓存条目。