標準の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ファイルを使用しています。
/usr/local/etc/php/7.1/php.ini
_/etc/php.ini
_ for webCLIは_/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
を検索し、パス/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にデフォルトでインストールされるため、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