phpの高速化APCのインストールでmake failedが発生した時の対処法

※記事内に商品プロモーションを含む場合があります

WordPressを早くしようとAPCのインストールを行いました。
ちなみにAPCは以下のコマンドでできます。

pecl install APC

通常はこれでインストールが出来てphp.iniに
“extension=apc.so”を追加してhttpdを再起動すればAPCインストール完了です。

しかし、今回は石狩リージョンのさくらのVPSにScientific Linuxを入れていますが
なんとエラーが発生してインストールできませんでした。
APC.Cでmake failedが発生しています。

/usr/include/php/ext/pcre/php_pcre.h:29:18: error: pcre.h: No such file or directory
In file included from /var/tmp/APC/apc.c:44:
/usr/include/php/ext/pcre/php_pcre.h:37: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/php/ext/pcre/php_pcre.h:38: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/php/ext/pcre/php_pcre.h:44: error: expected specifier-qualifier-list before ‘pcre’
/var/tmp/APC/apc.c:393: error: expected specifier-qualifier-list before ‘pcre’
/var/tmp/APC/apc.c: In function ‘apc_regex_compile_array’:
/var/tmp/APC/apc.c:454: error: ‘apc_regex’ has no member named ‘preg’
/var/tmp/APC/apc.c:454: error: ‘apc_regex’ has no member named ‘preg’
/var/tmp/APC/apc.c:455: error: ‘apc_regex’ has no member named ‘nreg’
/var/tmp/APC/apc.c:455: error: ‘apc_regex’ has no member named ‘nreg’
/var/tmp/APC/apc.c: In function ‘apc_regex_match_array’:
/var/tmp/APC/apc.c:487: error: ‘apc_regex’ has no member named ‘preg’
/var/tmp/APC/apc.c:487: error: ‘apc_regex’ has no member named ‘preg’
/var/tmp/APC/apc.c:488: error: ‘apc_regex’ has no member named ‘nreg’
/var/tmp/APC/apc.c:488: error: ‘apc_regex’ has no member named ‘nreg’
make: *** [apc.lo] Error 1
ERROR: `make’ failed

対処法を探していたら英語のサイトですが対処法がわかりました。
それはこのコマンド。

yum install pcre-devel

結局、yum install pcre-develを実行してからAPCのインストールを
実行したらすんなりインストールされました。

Build process completed successfully
Installing ‘/usr/lib64/php/modules/apc.so’
Installing ‘/usr/include/php/ext/apc/apc_serializer.h’
install ok: channel://pecl.php.net/APC-3.1.9
configuration option “php_ini” is not set to php.ini location
You should add “extension=apc.so” to php.ini

 


しかしAPCを有効にしてワードプレス管理画面やサイトを表示すると
まったく表示されなくなったり、HTTP500エラーが出たりするので
エラーログを確認すると

exit signal Segmentation fault

が発生していました。
最初の1回は通常に出来て何回かアクセスした後ダメになるので
PHPをメモリにキャッシュ後、おかしくなっているのだとはおもいますが
APCの最新版をインストールしてもダメでAPCをはずしました。