Как установить PHP Opcache на MacOS High Sierra?

Я использую стандартный 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 файл.

9

Решение

Для меня это сработало с помощью этих шагов:

  1. Поиск extension_dir на странице «phpinfo ()» я получил путь
    /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. Создайте «/etc/php.ini» (путем копирования «/etc/php.ini.default») и измените:
[opcache]
zend_extension = opcache.so
opcache.enable = 1
  1. Перезапустите apache, модуль «opcache» включен

РЕДАКТИРОВАТЬ / ЗАКЛЮЧЕНИЕ

Поскольку «расширение opcache» установлено в Mac OS High Sierra по умолчанию, решение для включения opcahe в Mac OS High Sierra:

  • Создайте «/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
14

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]