如何在MacOS High Sierra上安装PHP Opcache?

心怀不满的山羊

我使用的是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文件。

kite.js.org

对我来说,这些步骤是有效的:

  1. 搜索extension_dir在“的phpinfo()”的页面,我得到了一个路径/usr/lib/php/extensions/no-debug-non-zts-20160303
  2. 通过execute ls -lh /usr/lib/php/extensions/no-debug-non-zts-20160303,我找到了“ opcache.so”,我猜它是在升级到“ High Sierra”时安装的
  3. 创建“ /etc/php.ini”(通过复制“ /etc/php.ini.default”),并进行以下修改:
[opcache]
zend_extension = opcache.so
opcache.enable = 1
  1. 重新启动apache,启用模块“ opcache”

编辑/结论

由于默认情况下在Mac OS High Sierra上安装了“ opcache扩展”,因此在Mac OS High Sierra上启用opcahe的解决方案是:

  • 如果您没有,请创建“ /etc/php.ini”,只需复制默认配置即可: 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章