web-dev-qa-db-ja.com

MacOS High SierraにPHP Opcacheをインストールするには?

標準のApacheとMac High Sierraに付属するPHP 7.1(Homebrewではない))を使用していますが、このバージョンではOpcacheが有効になっていないようですPHP 7.と表示されます。 "Module Authors"の下のphpinfo()にもリストされていますが、実際にインストールされていることを示すセクションはありません。_opcache_get_status_を呼び出すと、致命的なエラーが発生します。

Homebrewを介して拡張機能をインストールし、_opcache.so_ファイルをリンクしました。 CLIでは動作しているようですが、Apacheでは動作していません。何らかの理由で、CLIとWebは異なるiniファイルを使用しています。

  • CLIの場合は_/usr/local/etc/php/7.1/php.ini_
  • _/etc/php.ini_ for web

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_ファイルがありません。

12
DisgruntledGoat

私にとっては、これらの手順で機能しました:

  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. 「/etc/php.ini」を作成し(「/etc/php.ini.default」をコピーして)、次のように変更します。
[opcache]
zend_extension = opcache.so
opcache.enable = 1
  1. Apacheを再起動し、モジュール「opcache」を有効にします

編集/結論

「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
15
kite.js.org