この時代にPHP5.2の環境を作りたくなって

Pocket

「今がいつかわかっているのか!2016年だぞ!時代はPHP7だぞ!」
「わかってる…それでも俺には…保守したいシステムがあるんだ!」

という訳で、新サーバーの最新環境で動かせるように古いシステムをブラッシュアップすべく
ひとまずシステムを一通り動かせる環境を作成しようねというお話です。

仕様

  • CakePHP 1.2
  • MySQL 5.1

cakephp1.2は5.3以上だとdeprecatedエラーが沢山出るので5.2の環境を再現したいのでした。
エラー抑制するなどして5.3系でも動かせるんですけどね。cake1.2をPHP5.2以外で作業する場合の参考は以下に詳しいです。
「[PHP][CakePHP] CakePHP1.2 &PHP5.3環境でのDeprecatedエラー表示について」
「PHP 5.3だとCakePHPで大量のエラー」
「http://fdays.blogspot.jp/2009/07/php53-cakephp-deprecated_04.html」

環境を作る

サーバーを立てて、phpとmysqlが動くようになるまでがゴールです。

クラウドの恩恵を受けて気軽にサーバーを立てる

いたずらにサーバー立てたくなったらAmazon Web Serviceというのは誰しも思う事ですね。
まずはAmazon Linuxのminimalでインスタンス立ててyumで色々入れていきます。

findでもいいんですけどlocateしたいので、ついでにmlocateも入れます。
そして各種ソースのDLのためにwgetも入れます。

PHPはyumから5.2が無理っぽいので手動で導入。ソースはこちらに。
https://secure.php.net/releases/
5.2.17のソースをwget。これ( http://museum.php.net/php5/php-5.2.17.tar.gz )

makeで失敗するのでpatchをあてます。patchとか色々必要になり次第yum installしていく姿勢です。

patchの内容は以下の通り

気を取り直してmake cleanからのconfigure、そしてmake

libphp5.soが生成されない。
これは最初apxsのDirを指定しないでやった時の一時ファイルが残っているのが原因っぽいので、一度make distcleanしてから再度configureとmakeしたら無事に入りました。

パスを通しておく

Apacheの設定

のちに別Verとか入れた時にconf側で利用するphpのlibを変更するとかなったら楽かなって思ってphp5.2用のconfファイルを作ってconf.dに入れてみたのでした。
・/etc/httpd/conf.d/httpd-php52.conf

あとVirtualHostのconfもconf.dに
・/etc/httpd/conf.d/vhost.conf

そしてphp.iniに以下追加。
そういえばこのシステムはDBがUTF8でサーバーがEUC-JPというマルチバイト諸国の悲しみを背負った設定なのでした。

mysql

冒頭のyumですんなり5.1がインストールできたので、以下でスタートして、まずはrootユーザーを作る。
それからプロジェクト用のユーザーを作ったりDBリストアしたりして、問題なく終了。

アクセスできない問題

さーて再起動してアクセスしちゃうぞ!と思いきや、アクセスできない。アクセス系の設定の問題かと思いiptablesして見たところ、特に問題はない。
うーむ何が間違っていたのか…と思っていたら、AWSのセキュリティグループでhttpを許可していなかったのでした。
EC2は江戸城みたいなものなので、内濠(iptables)の設定もさることながら外濠(セキュリティグループ)のこともちゃんと確認しようね。基本中の基本だね。
( http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-network-security.html )

最終的にこうなった

PHP 5.2.17
Mysql 5.1.73

2016年とは思えない環境が無事に完成した。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です