![OPcache 为不同用户仅缓存同一文件一次](https://linux22.com/image/719444/OPcache%20%E4%B8%BA%E4%B8%8D%E5%90%8C%E7%94%A8%E6%88%B7%E4%BB%85%E7%BC%93%E5%AD%98%E5%90%8C%E4%B8%80%E6%96%87%E4%BB%B6%E4%B8%80%E6%AC%A1.png)
有没有办法让 OPcache 使用哈希或定位每个域上的特定目录以禁用 use_pwd,这样它就不会一遍又一遍地缓存相同的包?
默认情况下,OPcache 会将工作目录附加到脚本键中以防止冲突。可以使用opcache.use_cwd设置,但在具有多个网站的服务器上并不是很有用,因为 php 配置文件会发生冲突。
背景 我在同一台服务器上运行多个 Symfony、Magento 2 等应用程序,供应商目录占这些应用程序所有 PHP 代码的 95%,并在 OPcache 中创建了许多重复文件。
答案1
是的,在您的 opcache.config 上启用以下选项:
; When this directive is enabled, the OPcache appends the current working
; directory to the script key, thus eliminating possible collisions between
; files with the same name (basename). Disabling the directive improves
; performance, but may break existing applications.
opcache.use_cwd=1