windows下php5.6启用opcache
最近几天一直帮朋友配置服务器,考虑只部署wordpress,为了性能原因直接上了到目前位置最新的稳定版 php 5.6.16 ,搭建 apache 2.4.17 + php 5.6.16。
部署安装配置都很简单也很顺利,唯独就是启用opcache折腾了很多时间。死活opcache就是无法开启,然后php启动也无报错信息。
最初的做法以为opcache是内置了,只需要在php.ini中启用就可以了,如下:
opcache.enable=1
opcache.enable_cli=1
结果重启apache后,发现opcache根本未加载,各种折腾也不行。
最后到看了下官方文档:http://php.net/manual/zh/opcache.installation.php,发现这段:
PHP 5.5.0 及后续版本
OPcache 只能编译为共享扩展。 如果你使用 –disable-all 参数 禁用了默认扩展的构建, 那么必须使用 –enable-opcache 选项来开启 OPcache。
编译之后,就可以使用 zend_extension 指令来将 OPcache 扩展加载到 PHP 中。在非 Windows 平台使用zend_extension=/full/path/to/opcache.so, Windows 平台使用 zend_extension=C:\path\to\php_opcache.dll。
看来真是个坑啊,虽然内置了,但并未加载.dll文件。因此,在php.ini的[opcache]下一行加入(具体php_opcache.dll路径根据实际情况):
zend_extension=C:\php\ext\php_opcache.dll
重启apache后即可。
要说明的是,windows下无论apache还是iis做web服务都要这么做。