planet-green.com

[開発/備忘録] さくらのレンタルサーバーにAPCをインストール



仕事でさくらのレンタルサーバーをビジネスプロという共用プランで借りているのですが、そこのPHPにAPCをインストールした時の備忘録。
基本的には下記のサイトを参考にさせていただきました。

 [PHP] さくらインターネット 共用鯖にAPCインストール
さくらのレンタルサーバにPHPの拡張モジュールAPCをインストールする

互換性の関係でPHPは5.3で動かしたかったのですが、APCの最新stable版である3.1.9はPHP5.3で動作しない模様。
PHP5.3で動作する最新stableは3.1.6になるのですが、これはさすがに古いのでbeta最新版の3.1.13を使うことにしました。

ついでに検証した動作結果。

× PHP5.3 + APC-3.1.9
○ PHP5.3 + APC-3.1.13
○ PHP5.4 + APC-3.1.13
× PHP5.3 + APC-3.1.8
○ PHP5.3 + APC-3.1.6

上記では○と×でしか区分けしてませんが、実際には、APCが認識されないだけだったり、PHP実行時にエラーメッセージが出たりと様々。
尚、サーバー側の環境は FreeBSD *****.sakura.ne.jp 9.1-RELEASE-p15 FreeBSD 9.1-RELEASE-p15 #1: Wed Jun 11 02:25:45 JST 2014     admin@*****.sakura.ne.jp:/usr/obj/home/pkg/src/sys/SAKURA17  amd64
( uname -a コマンドで確認したもの。)

インストール作業では、まずmodulesというディレクトリを作成し、PHP用モジュールのデフォルトの場所をそこに置き換えるようにしています。
phpinfo()で元のextension_dirの場所を確認して、中のファイルを新しいmodulesフォルダにリンク。
私の借りてるサーバーだと下記のようになりました。

% mkdir ~/modules/
% ln -s /usr/local/php/5.3/lib/php/extensions/no-debug-non-zts-20090626/* ~/modules/

続いてAPCのインストール。
ソースのURLは http://pecl.php.net/package/APC から取得する。

% cd ~/src
% wget http://pecl.php.net/get/APC-3.1.13.tgz
% tar xzvf APC-3.1.13.tgz
% cd APC-3.1.13
% /usr/local/php/5.3/bin/phpize
% ./configure --with-php-config=/usr/local/php/5.3/bin/php-config
% gmake

テストを実行し、問題なければOK。
うちのPHP5.3+APC3.1.13だと、Tests skippedが30もあるので気になるところではありますが・・・

gmake test

モジュール用ディレクトリにコピー。

% cp ~/src/APC-3.1.13/modules/apc.so ~/modules/

さくらのコントロールパネルからphp.iniの設定を追加。
メモリ使用量はお好みで。

;APC
extension_dir = /home/****/modules
extension=apc.so
apc.shm_size=48M
apc.max_file_size=4M
apc.write_lock = 1

ちなみにソースファイル一式にはapc.phpも含まれているので、パスワードを設定しWEBディレクトリに設置するとAPCの効き具合を確認できます。

最後になりますが、ここに書いてあることはイレギュラーな方法だと思いますので、各自の自己責任で行ってください。
どのような結果になろうと当サイトは一切の責任を負いかねます。

コメントを残す

メールアドレスが公開されることはありません。

※ URLを含んだコメントは承認後に表示されます。

* 画像に書かれている英数字を入力してください。