PR

[PHP] さくらインターネット 共用鯖にAPCインストール

さくらインターネットの共用サーバーにAPCインストールを試行したのだが、どうしても有効にならず、諦めようと思ったときに動作できてしまったのでメモ。

スポンサードリンク

ダウンロード

インストール

※さくらインターネットへのSSH 接続につていはこちら

作業ディレクトリ作成

%cd $home
%mkdir src
%cd src/

ダウンロードと解凍

%wget http://pecl.php.net/get/APC-3.1.9.tgz
%tar zxvf APC-3.1.9.tgz

./configure と gmake

%cd APC-3.1.9
%phpize
%./configure
%gmake
Libraries have been installed in:
   /home/{USER}/src/APC-3.1.9/modules
# src/APC-3.1.9/modules/apc.so を確認

php.ini を変更

extension_dir=/home/{USER}/src/APC-3.1.9/modules/
extension=apc.so

phpinfo() で確認できない

と、通常ならばこれで良いはずなのだが、上手く行かなかった。幾つか原因があって、それぞれとてもつまらないものだった。以下試行錯誤。

参考文献の人が成功しているバージョンにする

すでに同じ環境で成功していることがわかっているので、そのバージョンにする。また、別の文献によればAPCのバージョンによって対応できるPHP のバージョンが異なるのだとか。

%wget http://pecl.php.net/get/APC-3.1.6.tgz
%./configure
%gmake
%/usr/local/php/5.3.6/bin/phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
configure.in:3: warning: prefer named diversions
config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS, ...): suspicious cache-id, must contain _cv_ to be

PHP バージョン選択

何やらWarning が出ている。更に調べると、さくらインターネットでは標準でphp5.2 が選択されるから、他のバージョンを使う場合は明示する必要があるのだとか。

%./configure --with--php-config=/usr/local/php/5.3.6/bin/php-config
configure: WARNING: unrecognized options: --with--php-config
%gmake
Libraries have been installed in:
   /home/{USER}/src/APC-3.1.9/modules

やっぱりうまくいかないし、なにかエラーも出ている。じゃぁやはり3.1.6 で再試行。

%cd src/APC-3.1.6
%/usr/local/php/5.3.6/bin/phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
configure.in:3: warning: prefer named diversions
configure.in:3: warning: prefer named diversions
%./configure --with--php-config=/usr/local/php/5.3.6/bin/php-config
configure: WARNING: unrecognized options: --with--php-config

見ないふりしていたWarning を確認すると「unrecognized options: –with–php-config」と言っている。コピペはいけないな・・orz

%./configure --with-php-config=/usr/local/php/5.3.6/bin/php-config
%gmake
%./configure --with-php-config=/usr/local/php/5.3.6/bin/php-config --enable-apc
PHP Warning:  PHP Startup: apc: Unable to initialize module
Warning: PHP Startup: apc: Unable to initialize module
PHP Warning:  PHP Startup: apc: Unable to initialize module
Warning: PHP Startup: apc: Unable to initialize module

各バージョンで試行するもうまくいかない。–enable-apc を付ける付けないや、php バージョンの組み合わせの試行錯誤。

しかし、ふと思った。

%gmake clean が必要では?

・・終了。

# そういえば相当以前にmake clean で同じ失敗をした経験があった。その経験がある意味生かされたが、まったく進歩していないことが証明された。

参考設定

設定例1

extension_dir=/home/{USER}/src/APC-3.1.8/modules/
extension=apc.so

設定例2

extension_dir=/home/{USER}/src/APC-3.1.8/modules/
extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.optimization=2
apc.shm_size=32
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.enable_cli=1
apc.cache_by_default=1
apc.mmap_file_mask = /home/{USER}/temp/apc.XXXXXX

動作確認

apc が動作していることが確認できた。

W3 Total Cache でもAPC が選択可能になった。

参考

今回の環境

PHP         : /usr/local/php/5.3.6/bin/php
PHP_SAPI    : cli
PHP_VERSION : 5.3.6
ZEND_VERSION: 2.3.0
PHP_OS      : FreeBSD - FreeBSD wwwXXXX.sakura.ne.jp 7.1-RELEASE-p16 FreeBSD 7.1-RELEASE-p16 #0: Sat May 21 10:28:47 JST 2011     [email protected]:/usr/obj/usr/src/sys/SAKURA11S i386
INI actual  : /home/{USER}/src/APC-3.1.9/tmp-php.ini
More .INIs  :
CWD         : /home/{USER}/src/APC-3.1.9
Extra dirs  :
VALGRIND    : Not used

バージョン確認

%php -v
PHP 5.3.6 (cli) (built: Aug 31 2011 16:24:03)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

その他

さくらインターネットのレンタルサーバでは、.htaccessで記述して圧縮やブラウザキャッシュを制御するmod_deflate(GZIP圧縮) と mod_expires (静的ファイルの有効期限設定)が使えないという致命的な欠点があります。(「さくらのサーバでのWordPressの高速化 – 俺のメモ」より引用)

有名なWP Super Cacheなどキャッシュ系は、Ktai StyleやWPtouchとの相性が悪いため使用していません。 W3 Total Cacheは相性が良かったのですが、これを起動しているとサーバの応答速度が落ちてしまうことがわかり、結局外しています。 GZIP圧縮をプラグインでしてくれるGZIP outputも応答速度の問題があり、同じく外しました。 Head Cleanerもトライしてみましたが、使用しているテーマとの相性が悪く、これも導入していません。(「さくらのサーバでのWordPressの高速化 – 俺のメモ」より引用)

参考文献

将来的な視野

コメント