LoginSignup
9
6

More than 5 years have passed since last update.

ec2のPHPのバージョンを5.3→7.2に無停止でアップする

Posted at

前提

$hoge = [];

って書いたらエラーが出たのでもう我慢なりませんでした。
タイトルは5.3だけど、beforeのバージョンはなんでもいい。

手順

現行EC2のコピーを作る

丸コピです。
AWSのEC2コンソールのインスタンス画面より、

  • アクション>イメージ>イメージの作成

で、現在のEC2のイメージを作成。(場合によっては1時間くらいかかりますのでお茶を入れます)
作成できたら、イメージ>AMI から、イメージより作成を行います。
その際に、いい機会なのでインスタンスタイプを見直すのもいいかも。

新EC2でPHPバージョンアップ

以下、旧EC2のIPをXX.XX.XX.1
新EC2のIPをXX.XX.XX.2
とする。(ElasticIPで設定済とする)

新EC2にアクセスし、PHPのバージョンをアップする。
旧EC2でやったら死ぬのでご注意!!!!

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum remove ImageMagick
yum remove php*
yum install --disablerepo=amzn-main --enablerepo=remi-php72 \
php php-opcache php-devel php-mbstring php-mcrypt \
php-phpseclib-crypt-blowfish php-pecl-apc php-gd php-mysqlnd php-xml
yum install ImageMagick

 テストテストテストー

旧EC2のapacheだにnginxだのの自動起動がちゃんとされていれば、hosts設定で新EC2は
アクセス可能なはずなので、ローカルPCのhostsに設定を行う

vi /etc/hosts
XX.XX.XX.2 hoge.co.jp hoge.jp fuga.jp

てすとてすとてすとーー

 移行中に更新されたコンテンツの移行

今回移行したのがRDS接続のWordPressが大量に乗ったWEBサーバだったので
移行作業やらテスト中に更新された画像等のデータを移行する必要があります。
今回は /var/www/html以下にすべて集約されていたので、そこ以下をrsyncすることでOK

旧EC2の.ssh/configを設定します。

Host new-server
  Hostname XX.XX.XX.2
  User ec2-user
  IdentityFile ~/.ssh/XXX.pem

rsyncします。

テスト用(デバッグ用パラメータnをつける)

/usr/bin/rsync -rltDvzn --omit-dir-times -e "ssh " \
 --exclude '.svn' \
 --exclude '.git' \
 --exclude '.env' \
 --exclude 'autoptimize' \
 --exclude 'cache' \
 --exclude 'log' \
 /var/www/html/ new-server:/var/www/html/

本番用(nなし)

/usr/bin/rsync -rltDvz --omit-dir-times -e "ssh " \
 --exclude '.svn' \
 --exclude '.git' \
 --exclude '.env' \
 --exclude 'autoptimize' \
 --exclude 'cache' \
 --exclude 'log' \
 /var/www/html/ new-server:/var/www/html/

↑パラメータが多いのは、パーミッションが違うファイルが結構あって
それを差分に出さないため。パラメータaで置き換えても大丈夫です。

 IPの移行

テストで満足できたら、移行作業です。
移行は簡単で、新EC2のIPを旧EC2のIPに付け替えるだけ。

EC2コンソールの ネットワーク&セキュリティ>ElasticIP 画面で

  • 新EC2に設定済のIPを外す(XX.XX.XX.2)
  • 旧EC2のIP(XX.XX.XX.1)を新EC2に割り当てる
  • 新EC2が旧EC2のIPを引き継ぐので、各ドメインのAレコード設定は不要。

いーーじょーー

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6