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

时间:2017-12-13 00:41:54

标签: php macos php-7.1 macos-high-sierra opcache

我正在使用Mac High Sierra附带的标准Apache和PHP 7.1(不是Homebrew)。但是,看起来这个版本没有启用Opcache,尽管它应该是PHP 7的标准配置。它甚至列在{Module 1}的“{1}”下,但没有显示它实际安装的部分。调用phpinfo()会产生致命错误。

我已经通过Homebrew安装了扩展程序,并链接了opcache_get_status文件。它似乎在CLI上工作,但在Apache中没有。出于某种原因,CLI和Web使用不同的ini文件:

  • opcache.so用于CLI
  • /usr/local/etc/php/7.1/php.ini for web

CLI正在解析包含/etc/php.ini的附加文件,/usr/local/etc/php/7.1/conf.d/ext-opcache.ini显示Opcache。但是浏览器中的php -i没有 - 没有解析额外的ini文件。

我目前在phpinfo()

中有这个
/etc/php.ini

但仍然没有。我跟着xdebug的完全相同的过程,它运行良好。我错过了什么?

我想知道使用Homebrew版本的PHP会更容易。但我似乎没有所需的[opcache] zend_extension="/usr/local/opt/php71-opcache/opcache.so" opcache.enable=1 文件。各种教程都说要把它放在Apache的.so

httpd.conf

LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so 目录不存在。有libexec,但此目录或任何其他目录都没有lib个文件。

1 个答案:

答案 0 :(得分:14)

对我来说,它按照以下步骤工作:

  1. 在" phpinfo()"中搜索extension_dir页面,我有一条路 /usr/lib/php/extensions/no-debug-non-zts-20160303
  2. 通过执行ls -lh /usr/lib/php/extensions/no-debug-non-zts-20160303,我找到了" opcache.so" ,我想这是在升级到" High Sierra"
  3. 时安装的
  4. 创建" /etc/php.ini" (通过副本" /etc/php.ini.default"),并修改:
  5. [opcache]
    zend_extension = opcache.so
    opcache.enable = 1
    
    1. 重启apache,module" opcache"已启用
    2. 编辑/结论

      自" opcache扩展"默认安装在Mac OS High Sierra上,在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