仕事でさくらのレンタルサーバーをビジネスプロという共用プランで借りているのですが、そこの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の効き具合を確認できます。
最後になりますが、ここに書いてあることはイレギュラーな方法だと思いますので、各自の自己責任で行ってください。
どのような結果になろうと当サイトは一切の責任を負いかねます。