[AWS]CentOSのLAMPアプリをLAMP Certified by Bitnamiに移行するとハマるかも
既存のオンプレミスなCentOSで動いているLAMPアプリケーションを、AWSに移行するケースは結構あると思います。
場所は取るし、電気代はかかるし、ハード障害はあるし、グローバルIPが必要だし、でかいUPSは必要だし。特に理由がないならどんどんクラウドに逃した方がいいと思います。
ただ、AWSのLAMP環境はもしかしたらいつも使っている環境とはちょっと違っていて迷うかもしれません。
オンプレミスからAWSへ移行するならこの本は絶対に読んどけ
▼珍しい移行本です。頭に叩き込んで移行計画を立てましょう。
▼難しすぎると思ったらこれから始めましょう。入門本です。
LAMP Certified by Bitnami
EC2のAMIは多分 LAMP Certified by Bitnami を選ぶと思います。ちなみにOSはCentOSではなく、海外ではメジャーなUbuntuです。
short_open_tagはデフォルトOff
ちょっと時間が経つと忘れちゃんですよね、これ。
▼short_open_tagがOffの場合、こんな風に書きます。
<?php phpinfo(); ?>
▼short_open_tagがOnなら"php"がいらないので、よりシンプルに書けます。
<? phpinfo(); ?>
既存プログラムはショートで書いていたので、そのままの設定では動かないですよね。
▼ということでphp.iniを以下のように修正します。
short_open_tag = Off
↓
short_open_tag = On
php.iniの場所が分からない
いつものところにphp.iniはありません。ディレクトリ構成も違うし。
▼Bitnamiのphp.iniはここです。
/opt/bitnami/php/etc/php.ini
apache2やMySQLなどBitnamiのモジュールは全部 /opt/bitnami にあります。
PHPはFastCGI版
php.iniを修正したら、Apache2を再起動して反映します。
ここが罠。BitnamiのPHPはモジュール版ではなくFastCGI版(fpm)なので、Apache2の再起動だけではダメです。
▼Bitnamiのシェルスクリプトで丸ごと再起動すればOKです。
sudo /opt/bitnami/ctlscript.sh restart
パッケージ管理はyumじゃなくapt
DB接続でPDOを使っているなど、色々とパッケージをインストールする必要があると思います。
CentOSを使っていると何の疑いもなくyumを使うかもしれませんが、もちろん入っていません。Ubuntuのパッケージ管理はaptです。
aptでyumをインストールしてリポジトリを設定すれば使えないことはないのですが、特に理由がないなら素直にaptを使いましょう。
yumのパッケージの方が新しいとか、yumにしかないとか。
バージョンが合わない
古めのLAMPアプリケーションを移行する場合に問題となります。
例えばプログラムの中に、最新のPHPや拡張ではもう使えないクラス、メソッド、定数があった場合エラーになります。
サーバ側のPHPなどのモジュールをダウングレードしてもロクなことがありません。プログラム側を修正しましょう。
MySQLのrootのパスワードはシステムログを見よう
Bitnami管理化のアプリケーションのパスワードはEC2のシステムログに出力されています。
MySQLのrootのパスワードはもちろん、WordPressの管理者パスワードなども同じパスワードです。
運用していると消えてしまっていることがあるので、なるはやで記録しておきましょう。
AWSは便利
AWSでLAMPアプリを動かしている人なら当たり前な内容だと思いますが、意外にハマるかもしれません。でも最初だけです。
AWSはSSL対応や負荷分散など、オンプレミスでは手軽にできないようなことも簡単にできます。
値段も意外に安いですし気軽にクラウドを試してみてはいかがでしょう?
他に読むべき本
▼仕事でAWSを使うならスルーしちゃダメです。