概要
- PHP5.3を最新版ではなく5.6(もしくは何らかのバージョン)指定でアップデートしたい時の方法です
- PHP5.3はApache2.2系、PHP5.6はApache2.4系と依存関係があるので、一緒にアップデートする必要があります
- Apache再インストールの際にダウンタイムが発生するので、必要であればメンテナンス時間を設けましょう
流れ
- サーバーの状態を確認
- 現在のPHP,Apacheをアンインストール
- アップデート対象バージョンのPHP,Apacheをインストール
- (必要な場合)Apacheのhttpd.confを修正
- Apacheを起動
手順
OSの確認
対象サーバーにSSHでログインして以下コマンドを実行
# cat /etc/system-release
PHPバージョンの確認
# php -v
PHP 5.3.29 (cli) (built: May 12 2015 22:42:19)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
インストールされているPHPおよびライブラリのバージョン確認
# yum list installed | grep php
php.x86_64 5.3.29-1.8.amzn1 @amzn-main
php-cli.x86_64 5.3.29-1.8.amzn1 @amzn-main
php-common.x86_64 5.3.29-1.8.amzn1 @amzn-main
php-mbstring.x86_64 5.3.29-1.8.amzn1 @amzn-main
php-mysql.x86_64 5.3.29-1.8.amzn1 @amzn-main
php-pdo.x86_64 5.3.29-1.8.amzn1 @amzn-main
php-xml.x86_64 5.3.29-1.8.amzn1 @amzn-main
インストールされているApacheのバージョン確認
# yum list installed | grep httpd
httpd.x86_64 2.2.34-1.16.amzn1 @amzn-updates
httpd-tools.x86_64 2.2.34-1.16.amzn1 @amzn-updates
インストール可能なPHPおよびライブラリのバージョン確認
# yum list available | grep php
(〜中略〜)
php56.x86_64 5.6.40-1.143.amzn1 amzn-updates
php56-cli.x86_64 5.6.40-1.143.amzn1 amzn-updates
php56-common.x86_64 5.6.40-1.143.amzn1 amzn-updates
php56-mbstring.x86_64 5.6.40-1.143.amzn1 amzn-updates
php56-pdo.x86_64 5.6.40-1.143.amzn1 amzn-updates
php56-xml.x86_64 5.6.40-1.143.amzn1 amzn-updates
php56-mysqlnd.x86_64 5.6.40-1.143.amzn1 amzn-updates
(〜以下略〜)
php.iniのバックアップ
# cp /etc/php.ini /home/php.ini.yyyymmdd
httpd.confのバックアップ
# cp /etc/httpd/conf/httpd.conf /home/httpd.conf.yyyymmdd
インストール済みPHPおよびライブラリの削除
# yum remove php
# yum remove php-common
# yum remove php-cli
# yum remove httpd
# yum remove httpd-tools
PHP5.6およびライブラリのインストール
※Apacheは依存関係で自動的にインストールされる
# yum install php56 php56-common php56-cli
httpd.confの修正
バックアップしたhttpd.confを読み解き、必要な設定を加える
# vi /etc/httpd/conf/httpd.conf
2.2系と2.4系でアクセス許可設定の記法が変わっているので注意
(参考:https://qiita.com/nwsoyogi/items/c8eb1fedef3c00c5fbac)
2.2系
<Directory "/home/xxx/htdocs">
Order allow,deny
Allow from all
</Directory>
2.4系
<Directory "/home/xxx/htdocs">
Require all granted
</Directory>
Apache起動
# service httpd start
確認
PHPのサンプルコードやPHPアプリケーション(phpmyadminなど)で動作確認ができたらOKです