- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我使用的是 Mac High Sierra 附带的标准 Apache 和 PHP 7.1(不是 Homebrew)。然而,这个版本似乎没有启用 Opcache,即使它应该作为 PHP 7 的标准配置。它甚至在“模块作者”下的 phpinfo()
中列出,但没有部分显示它实际上是安装。调用 opcache_get_status
会出现 fatal error 。
我已经通过 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
,我找到了一个路径/usr/lib/php/extensions/no-debug-non-zts-20160303
ls -lh/usr/lib/php/extensions/no-debug-non-zts-20160303
,我找到了“opcache.so”,我猜它是在升级到“时安装的” Alpine 脉”[opcache]
zend_extension = opcache.so
opcache.enable = 1
编辑/结论
由于Mac OS High Sierra默认安装了“opcache extension”,因此在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
关于php - 如何在 MacOS High Sierra 上安装 PHP Opcache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47783854/
我是一名优秀的程序员,十分优秀!