planet-green.com

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



前回の記事で書いたように、仕事でさくらのレンタルサーバーの共用プラン(ビジネスプロ)を使っているのですが、PHPのカレンダー関数 が入ってないので、手動でインストールしてみました。

ちなみにカレンダー関数というのは、なかなか便利なもので、例えば 「2月1日から5月15日までを日次ループ処理したい」というような場合には、開始日と終了日をユリウス積算日に変換して単純なfor文のループに落とし込むことが出来ますし、ループの中では必要に応じてユリウス積算日からY-m-dやUnixタイムスタンプに変換して処理を行えます。しかも紀元前4713年以降であるなら、期間が数日でも数百年でも処理できるという優れものです。

インストール方法ですが、実は私、FreeBSDを触るのは今回が初めてでして、正直、ここから先は正しいかどうかを保証できませんのでご了承ください(笑

portコマンドが使えれば一発でインストールできるようですが、さくらの共用プランなのでroot権限がありません。
そこでまずは下記ページからダウンロードします。(PHP5.3の場合)

http://portsmon.freebsd.org/portoverview.py?category=misc&portname#misc/php53-calendar
ちなみにPHP5.x系最新版用はこちら。
http://portsmon.freebsd.org/portoverview.py?category=misc&portname=php5-calendar

一覧表の build environment のところに 84amd64-default 、84i386-default、91amd64-defaultと並んでいますが、どれを選択するべきなのか・・
私の使っているサーバーの情報をみると FreeBSD 9.1-RELEASE-p15 (中略) amd64と書いてあるので、91amd64-default をダウンロードすることにしました。

%
uname -a
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

では、インストール。

% cd ~/src
% wget http://pkg.freebsd.org/freebsd:9:x86:64/latest/All/php53-calendar-5.3.28_3.txz
% tar Jxvf php53-calendar-5.3.28_3.txz
(※ ディレクトリ階層を保ったまま解凍される)
%  cp usr/local/lib/php/20090626/calendar.so ~/modules/

尚、modulesディレクトリについては前回の記事を参照してください。

そして、さくらのレンタルサーバーのコントロールパネルから、php.iniに下記を追記します。

;Calendar
extension_dir = /home/*****/modules
extension=calendar.so

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

コメント
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の効き具合を確認できます。

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

コメント