
Gibt es eine Möglichkeit, OPcache dazu zu bringen, einen Hash zu verwenden oder ein bestimmtes Verzeichnis in jeder Domäne anzuvisieren, um use_pwd zu deaktivieren, sodass nicht immer wieder dieselben Pakete zwischengespeichert werden?
Standardmäßig hängt OPcache das Arbeitsverzeichnis an den Skriptschlüssel an, um Kollisionen zu vermeiden. Dies kann mit demopcache.use_cwdEinstellung, ist aber auf einem Server mit mehreren Websites nicht wirklich nützlich, da PHP-Konfigurationsdateien kollidieren.
Hintergrund Ich habe mehrere Symfony-, Magento 2- usw.-Anwendungen auf demselben Server laufen. Das Vendor-Verzeichnis enthält 95 % des gesamten PHP-Codes für jede dieser Anwendungen, wodurch viele, viele doppelte Dateien in OPcache entstehen.
Antwort1
Ja, aktivieren Sie in Ihrer opcache.config die folgende Option:
; 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