0

I set opcache.enable=0 in opcache.ini

Now I want to enable opcache from my htaccess file using

php_flag opcache.enable On

But it is not working

Is there any way, I disable opcache in opcache.ini, and enable in my application's htacces file.

Thanks

user3483449
  • 11
  • 1
  • 1
  • 6

1 Answers1

5

The simple reply here is that you can't enable. OPcache is a zend_extension and as such can only be enabled at a system level. However, there is a simple wrinkle here in the opcache.enable is a PHP_INI_ALL directive and can be set to 0 anywhere either at a directory or program context. So having opcache.enable=1 in the system configuration and then setting

php_flag opcache.enable Off 

should work, and this will disable caching for the scope of that request

Also read up on the directive opcache.blacklist_filename (which is a bit of a misnomer, BTW). This allows you to define files and file hierarchies that are not to be cached (but once blacklisted you can't then create exceptions or unblacklist files at runtime.

Also since the enable is a PHP_INI_ALL directive, there is nothing stopping you adding a bit of code logic disable caching for the scope of that request in an auto_prepend_file included script instead of using an htaccess php_flag directive, but not that once disabled, you then can't re-enable it, so you can only use the blacklist to control caching at a file level.

TerryE
  • 10,724
  • 5
  • 26
  • 48