- Plesk 11.x for Windows
- Plesk 12.0 for Windows
Sites configured with PHP 5.5 and higher and enabled PHP OpCache are not working if there are several sites inside one subscription with dedicated pool and different .NET versions used on sites. The only one domain in a time will work properly, another one will fail with
Internal Server 500 error
PHP OpCache is unable to create named mutex for the second process. But the first process has successfully created a mutex, for example,
Despite the name of mutex contains real user name of the pool, but security of created pool has permissions for a special
account (its name is generated by pool name).
Second site has the same user name, but special generated
user is different. So the second site cannot access this mutex.
The issue registered as Plesk issue #PPPM-4738 . Additionally, it was submitted to PHP as Bug #72645 .
There are several possible workarounds:
Turn off OpCache for particular PHP handler by setting
Create and specify local user for each application pool in IIS Application Pools > APP_POOL_NAME > Advanced Settings > Process Model > Identity
Upgrade to Plesk 12.5 and enable Dedicated IIS application pool for each website at Service Plans > SERVICE_PLAN_NAME > Performance
For PHP 5.5 and 5.6 we have prepared a custom fixes based on PHP 5.5.38 and PHP 5.6.24 source code.
For PHP 5.5 download patched file , unzip, rename it and replace original
For PHP 5.6 download patched file , unzip, rename it and replace original
to prevent rewriting this file when PHP handler will be updated, place the file under the different name, for example,
and configure in
to load this file:
zend_extension="C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP56\ext\php_opcache_fixed.dll"
In this case, after PHP is updated by Plesk,
will be untouched and fixed module will be unchanged, so PHP will continue to work with modified module after Plesk update.