Posts tagged PHP
PHP5.3導入
0Dreamhost上にPHP5.3を入れてみました。
インストールにはInstalling PHP5 – DreamHostを参考に、設定ファイルのパスをUbuntu風に変えてインストールしました。
具体的には、
–with-config-file-path=$HOME/local/etc/php5
–with-config-file-scan-dir=$HOME/local/etc/php5/conf.d
を追加/変更しました。
インストールしたPHP5.3は快適に動いています。
以前インストールしたPHP5.2ではWordPressの管理画面が最後まで送られずにページが切れるという不可解な現象があったのですが、それもなくなりました。
PHPのデバッグにはFirePHPが便利
0FirePHP は Firebug に PHP から情報を出力できる Firefox アドオン + PHP ライブラリです。
他のログ出力系ライブラリと違う点は HTTP ヘッダを使って情報を送るということ。script タグを使ったりしないので複雑な構造のプログラムにも対応できます。
自分のテスト環境ではなぜか Xdebug のリモートデバッグが使えないのでデバッグができなかったんですが、これからは FirePHP が活躍しそうです。
DreamHostにカスタムPHPをインストールする
0DreamHostにはPHPが元々入ってますが、PECLなどの拡張ライブラリが使用できません。
加えてバージョンが古いのです。そこでPHPを自分でコンパイルしてインストールしました。
参考にしたのは、Installing PHP5 – DreamHost。
基本は上のページのスクリプトでインストールできるのですが、インストール場所を変えるためと依存パッケージを新しくするために書き直しました。
変更点は以下の通りで、
- PHP 5.2.6
- インストール先を $HOME/local に変更
- php.iniの場所を ${HOME}/etc/php5 に変更
- パッケージを最新のものに変更
- パッケージのURLを修正
などです。
まず PHP5インストールスクリプト をダウンロードして中身を解凍し、php5-install.sh の中の INSTALLDIR などを好きなように設定します。
初期状態でインストールした場合は /home/*****/local/bin/php がPHPバイナリとなります。
php5-install.sh を実行し、問題が無ければPHPが指定した場所へインストールされます。
後はサイト毎のfcgiファイルでexecの部分を「exec /home/*****/local/bin/php-cgi」と指定すればFastCGIでカスタムPHPが動きます。
「php-cgi」が要で、CLI版を指定してしまうとFastCGIが動きません。
このあとPECLなどを使う場合はパスが通っている必要があるので .bash_profile などに「export PATH=$HOME/local/bin:$PATH」などと指定しておきます。
スクリプトが途中で止まる・・・などあったらコメント下さい。
php.iniのコメントを消す
0今日はエイプリルフールですね。っていってもこの記事は嘘じゃありませんよ。
今日はphp.iniをいじっていたのですが、その時にコメントを削除すればPHPの読み込みが早くなるかも・・・?というような全く根拠のない思いにとらわれて、コメントを削除する正規表現を作ってみました。そしてできたのがコレ(Perlでやってます)。
これでコメントと空行が無くなります。
で、問題の速度は・・・・・・分かりませんw
C#の三項演算子
0以前PHPの三項演算子について書きましたが、C#の場合のPHPでいう三項演算子は?:演算子というようです。項を3個取るもの全てを三項演算子として、その中の条件演算子という位置づけらしいです。
とはいっても演算子の使い方は変わらないので、PHPの三項演算子もC#の?:演算子も同じものです。
- 参考: ?: 演算子 (MSDN)
- 参考: PHP: 比較演算子
- 参考: 条件演算子(Wikipedia)
DreamHost移行メモ part3
0今回はPHP5 FastCGI & PHP.ini のための設定です。WikiではCustom PHP.iniとPHP FastCGIに分かれていますが一緒にやっちゃいます。もちろん、パネルでFastCGIをオンにしておきます。
最初にPHPのコピーを置くフォルダを作ります。WikiのCustom PHP.ini ではドメインのディレクトリの下に置いてますが、複数サイトで共有しようとおもうのでホームに作ります。
そして関連ファイルをコピーします。
cp /etc/php5/cgi/php.ini $HOME/cgi-bin/php.ini
コピーした先のphp.iniを編集します。編集内容はお好みで。そして、ファイルの最後の方にでも「date.timezone=”Asia/Tokyo”」の記述を入れます。これでPHPがタイムゾーンを日本と認識してくれます。
ここからFastCGIの設定です。まずはFastCGIのラッパーを作ります。php5-wrapper.fcgiという名前でドメインのディレクトリごとに配置します。Wikiではdispatch.fcgiにするとメモリーを多く使ってもkillされなくなると書いてあります(このWordPessはphp5-wrapper.fcgiでもkillされません。よほどのことがないとkillされない模様。)。中身は以下のようにします。
export PHP_FCGI_CHILDREN=2
exec /home/username/cgi-bin/php5.cgi
usernameは置き換えてください。作成したら実行権を与えます。
そしてドメインのディレクトリのルートに以下の.htaccessを用意します。
AddHandler php5-fastcgi .php
Action php5-fastcgi /php5-wrapper.fcgi
これでPHP5&FastCGIで動くようになります。
最後にPHPのバイナリをアップデートするcronを回します。適当な場所にphp-copy.shとでもして以下のファイルを作成します。
CGIFILE="$HOME/cgi-bin/php5.cgi"
rsync -a /dh/cgi-system/php5.cgi "$CGIFILE"
あとは crontab -e で「@weekly /home/username/php-copy.sh」などとしておきます。
これでPHPに関する設定は完了です。次はWordPressの引越しをメモします。
Lace0.1.6b1日本語化バージョン
4Ajaxを使用したPHPのチャットスクリプトのLace0.1.6b1を日本語化しました。
インストールの方法などは中のREADME_jaをご覧下さい。
Lace0.1.6b1 日本語化バージョン 1.1
バージョン1.1 87.35 kB
1.1 – ログがないときにエラーが発生するバグを修正しました。


最近のコメント