PHPのコードキャッシュとしてOPcacheがPHP5.5以降バンドルされているのですが、CentOS6系のサーバー上でPHPをソースからインストールする際に、--enable-opcacheオプションをつけてコンパイルすると下記のエラーが出てうまくインストールできずにはまりました。
$ ./configure --enable-opcache - snip - checking "whether flock struct is linux ordered"... "no" checking "whether flock struct is BSD ordered"... "no" configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no
まぁ、メッセージのとおり--enable-opcache=noオプションをつければコンパイルは通るわけですけど、コードキャッシュ使ったほうがパフォーマンスも良くなりますし、APCとかコードキャッシュしてくれなくなったりしてますんでOPcacheを使いたいわけですよ。
で、解決方法は共有ライブラリのパスを定義している/etc/ld.so.confに/usr以下のライブラリのディレクトリを追加したら解決しました。
include ld.so.conf.d/*.conf /usr/local/lib /usr/lib64
追加した後は、ldconfigで設定を反映します。
# ldconfig
その後、もう一度PHPのconfigureをしたら通ったので、そのままmake、make installします。
インストール完了後は、OPcacheを有効にするためにphp.iniを編集。
[opcache] zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/opcache.so opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=30 opcache.fast_shutdown=1 opcache.enable_cli=1
余談ですけど、Xdebugと一緒に使う場合はXdebugの設定より前に上記を書いておかないといけないらしいです(詳細はマニュアル 参照)。
最後に、Apacheを再起動してOPcacheが使えているかを確認。
# php -v
PHP 5.6.13 (cli) (built: Sep 28 2015 11:18:05)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
OPcacheの詳しい使い方は以前に書いた、「PHPコードキャッシュにOPcacheを使ってみる 」も参考にしてみてください。
[PR]
初心者おススメ!24時間サポートセキュリティ特化レンサバ!
[PR]
SSLサーバ証明書なら[ドメインキーパー]◆VeriSign/GlobalSign/他取り扱い
[PR]
エンジニアに特化!エンジニア専門の転職支援は「メイテックネクスト」
[PR]
[PR]