« 新曲出来た | メイン | 事務所移転 »

覚書:PHP5導入、PHP4との共存、Ethna、PEAR、Smarty

往生したために覚書することにしたんだが、実際はリアルタイムには記録せず、思い出しながらなのであまり参考にならないかもしれない。その場合は申し訳ない。

さて、PHPはバージョン4と5に大きな変更があるため、5への移行を懸念する声もしばらく前はあったようだが、時期もそろそろ良さげだし、案件も4だったり5だったりするので、5を導入することに。

さてどこに設置しようかと迷ったんだが理由は割愛して、自分のノートPC、レッツノート@WindowsXPにインストールすることに。

PHP4は既にインストール済み、4は保守にも必要なので下記サイトを参考に

PHP4とPHP5を切り替える

4と5を共存させて、切り替え可能に設定。自動識別の案内のサイトもあり、迷ったがたが私の微妙な性格は手動切替を選択。

参考サイトと状況が逆だが、

PHP Downloads

のJAPANミラーサイトから最新ソース

PHP 5.2.2 zip package

をダウンロード、解凍。

C:\に既にPHP4がインストールされてある「php」と言う名前のフォルダを「php4」に変更。

デスクトップに解凍された「php-5.2.2-Win32[1]」を「php」に変更、C:\直下にフォルダを丸ごと移動。

PHP4の時はphp.iniをC:\WINDOWSに入れていたけど5との共存のために「C:\php4」に移動。

C:\php(PHP5)直下にある「php.ini-recommended」を「php.ini」にコピーして名前変更。

Apache2.0が既にインストール済みなので

C:\Program Files\Apache Group\Apache2\conf\httpd.conf

を編集。175行目あたりの

LoadModule php4_module c:/php/sapi/php4apache2.dll

を頭に「#」をつけてコメントアウトし、

LoadModule php5_module c:/php/php5apache2.dll
PHPIniDir "C:/php"

を追加。2行目が肝でようはデフォのphp.iniの場所をデフォのC:\WINDOWSではなく、C:\phpにすることによって4と5の共存が容易に。余談だが切替時は上記コメントアウトを切替、フォルダ名を「php4」→「php」、「php」→「php5」にしてApache再起動で可能。微妙なワシの性格はこの手動な道を選択。

Apacheを再起動、お馴染みのphpinfo()でPHP5への切替を確認(方法はググってね)。

Ethnaと言うフレームワークをインストール。Ethnaは良い悪い以前に仕事上の都合で必要。

コンソールからPEARコマンドを使ってEthnaインストールをやろうとしたが

PEARチャンネルを利用してインストールする(PHP 5)

pearコマンドが認識されない。。。

PHP5.2とPEARのインストール手順(Windows XP、Apache2、MySQL5)
を参考にしながら(ちなみにPEARインストールの部分のみです、文字コード等はいじっていません)

php.ini に include_path = ".;C:\php\includes;C:\php\PEAR"を記述。

PEARインストール、C:\php\PEAR\go-pear.pharを実行、バグは修正されているようなのでそのまま完了、C:\php\PEAR_ENV.regを実行してPC再起動。

それでも認識されない。強引に入れたりやったりして上手くは行ったんだが、Ethnaを入れた後もSmartyパスを認識できなかったり、色々やったあげくに振り返ってみて、見落としていたことと、注意点を3点程:

・環境変数( [スタート]-[コントロールパネル]ー「システム」ー [詳細])
 の「Path」の変数値の一番後ろに「;C:\php」を追加。PC再起動。
 pearコマンドのパスだけでいいと思っていたがこれが無いとコマンドとして認識しないらしい。
・C:\php\PEAR\go-pear.pharを実行した際にphp.iniの最後に
 include_path=".;C:\php\pear"と記述が足されるんだが、これは途中にある
 include_path = ".;C:\php\includes;C:\php\PEAR" を上書きしてしまうのでは?
 そんな気がするので途中のにはPEARのパスも足してあるから最後の方を削除。
・Apache再起動しても上手く設定を再読み込みしてくれずにエラーが続いていた。
 私の端末だけかもしれない。
 理由はわからないが、Apache Service MonitorからServicesを起動し、
 そこからApache2を再起動することによってやっと設定が反映された。
 ちなみにその設定とはC:\php\includesへのパス。Smartyをそこに入れていたのだが
 php.iniの記述をなかなか認識してもらえなかった。

往生した結果何とかPEARコマンドが使えるようになり、Ethnaも無事「こんにちは、世界」と言っている。

注意点は以上かな。「覚書」改め「思い出し書き」でした。

技術面も大切だが、システムの仕様書の方もちゃんと見ておかないといけんですなー。

いけん、ですなー

いけんd eすなー



広ブロっち♪ d(^-^)

トラックバック

このエントリーのトラックバックURL:

コメントを投稿