Я использую стандартный Apache и PHP 7.1 (не Homebrew), который поставляется с Mac High Sierra. Тем не менее, похоже, что в этой версии не включен Opcache, хотя он должен быть стандартным с PHP 7. Он даже указан в phpinfo()
в разделе «Авторы модулей», но нет раздела, показывающего, что он действительно установлен. призвание opcache_get_status
дает фатальную ошибку.
Я установил расширение через Homebrew и связал opcache.so
файл. Похоже, что работает на CLI, но не в Apache. По некоторым причинам CLI и сеть используют различные 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, и он работал нормально. Что мне не хватает?
Интересно, будет ли проще использовать версию PHP для Homebrew? Но у меня нет необходимых .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
РЕДАКТИРОВАТЬ / ЗАКЛЮЧЕНИЕ
Поскольку «расширение opcache» установлено в Mac OS High Sierra по умолчанию, решение для включения opcahe в Mac OS High Sierra:
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
Других решений пока нет …