PHP-FPM With Opcache 尝试打开其他池的缓存文件
PHP-FPM With Opcache tries to open other pool's cached files
我发现一些奇怪的东西 运行 Joomla 网站,当 OpCache 启用时。
所有网站都有单独的 fpm 池,有 open_base_dir 限制。
让我们假设有两个网:
/var/www/web1
/var/www/web2
首先在浏览器中加载 web1,工作正常。
然后我尝试打开 web2,它抛出 open_base_dir 限制错误,file_exist() 无法检查 /var/www/web1/....php
web2 想要从 web1 打开一个文件。
错误方向相反,我重启php-fpm,先打开web2,再打开web1,现在web1要打开一个/var/www/web2文件
只有当有两个相同版本的 Joomlas 并且启用了 Opcache 时才会出现这种情况。
opcache 以某种方式记住脚本已被打开并缓存并尝试从其他池的目录加载它。
我有 php-fpm - 5.6.7+dfsg-1 版本。
我暂时关闭了 opcache,但我是不是配置有误,还是这是正常现象?
这是一个known issue with PHP-FPM and opcache. Amazingly, you'll be able to read the sensitive scripts regardless of ownership and permission. See this example。使用 open_base_dir 限制或 chroot 无法解决它。
我发现一些奇怪的东西 运行 Joomla 网站,当 OpCache 启用时。
所有网站都有单独的 fpm 池,有 open_base_dir 限制。
让我们假设有两个网:
/var/www/web1
/var/www/web2
首先在浏览器中加载 web1,工作正常。
然后我尝试打开 web2,它抛出 open_base_dir 限制错误,file_exist() 无法检查 /var/www/web1/....php
web2 想要从 web1 打开一个文件。
错误方向相反,我重启php-fpm,先打开web2,再打开web1,现在web1要打开一个/var/www/web2文件
只有当有两个相同版本的 Joomlas 并且启用了 Opcache 时才会出现这种情况。
opcache 以某种方式记住脚本已被打开并缓存并尝试从其他池的目录加载它。
我有 php-fpm - 5.6.7+dfsg-1 版本。
我暂时关闭了 opcache,但我是不是配置有误,还是这是正常现象?
这是一个known issue with PHP-FPM and opcache. Amazingly, you'll be able to read the sensitive scripts regardless of ownership and permission. See this example。使用 open_base_dir 限制或 chroot 无法解决它。