我使用的是Mac High Sierra随附的标准Apache和PHP 7.1(不是Homebrew)。但是,该版本似乎没有启用Opcache,即使它应该是PHP 7的标准配置也是如此。它甚至在phpinfo()
“模块作者”下列出,但没有任何部分显示实际安装的内容。调用opcache_get_status
会导致致命错误。
我已经通过Homebrew安装了扩展名,并链接了opcache.so
文件。它似乎可以在CLI上运行,但不能在Apache上运行。由于某些原因,CLI和Web使用了不同的ini文件:
/usr/local/etc/php/7.1/php.ini
用于CLI/etc/php.ini
用于网络CLI正在解析包括的其他文件/usr/local/etc/php/7.1/conf.d/ext-opcache.ini
,并php -i
显示Opcache。但是phpinfo()
在浏览器中没有-没有解析其他ini文件。
我目前在/etc/php.ini
:
[opcache]
zend_extension="/usr/local/opt/php71-opcache/opcache.so"
opcache.enable=1
但是仍然没有。我对xdebug遵循完全相同的过程,并且工作正常。我想念什么?
我想知道使用Homebrew版本的PHP是否会更容易。但我似乎没有所需的.so
文件。各种教程都说要把它放在Apache的httpd.conf
:
LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so
但是该libexec
目录不存在。有lib
,但非此非彼任何其他目录中有任何.so
文件。
对我来说,这些步骤是有效的:
extension_dir
在“的phpinfo()”的页面,我得到了一个路径/usr/lib/php/extensions/no-debug-non-zts-20160303
ls -lh /usr/lib/php/extensions/no-debug-non-zts-20160303
,我找到了“ opcache.so”,我猜它是在升级到“ High Sierra”时安装的[opcache] zend_extension = opcache.so opcache.enable = 1
编辑/结论
由于默认情况下在Mac OS High Sierra上安装了“ opcache扩展”,因此在Mac OS High Sierra上启用opcahe的解决方案是:
sudo cp /etc/php.ini.default /etc/php.ini
zend_extension = opcache.so
到/etc/php.ini
并设置“opcache”启用:php.ini opcache部分如下所示:
[opcache]
zend_extension = opcache.so
opcache.enable = 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句