[AWS]CentOSのLAMPアプリをLAMP Certified by Bitnamiに移行するとハマるかも

2019年7月27日好き好きIT

[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です。

aws

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
POINT

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を使いましょう。

POINT

yumのパッケージの方が新しいとか、yumにしかないとか。

バージョンが合わない

古めのLAMPアプリケーションを移行する場合に問題となります。

例えばプログラムの中に、最新のPHPや拡張ではもう使えないクラス、メソッド、定数があった場合エラーになります。

CAUTION

サーバ側のPHPなどのモジュールをダウングレードしてもロクなことがありません。プログラム側を修正しましょう。

MySQLのrootのパスワードはシステムログを見よう

Bitnami管理化のアプリケーションのパスワードはEC2のシステムログに出力されています。

MySQLのrootのパスワードはもちろん、WordPressの管理者パスワードなども同じパスワードです。

アプリケーションパスワード

CAUTION

運用していると消えてしまっていることがあるので、なるはやで記録しておきましょう。

AWSは便利

AWSでLAMPアプリを動かしている人なら当たり前な内容だと思いますが、意外にハマるかもしれません。でも最初だけです。

AWSはSSL対応や負荷分散など、オンプレミスでは手軽にできないようなことも簡単にできます。

値段も意外に安いですし気軽にクラウドを試してみてはいかがでしょう?

他に読むべき本

▼仕事でAWSを使うならスルーしちゃダメです。