CentOS5にPHP5.4とMySQL5.5をインストールする

2013年4月10日

先週、こんな記事を読んでました。

PHP 5.3、トップシェア&サポート終了 | 開発・SE | マイナビニュース

自分のサーバーのPHPバージョンは何だったっけ?前回と違うコマンドでPHPのバージョンを確認してみます。

$ php -v
出てきた結果がこれ。
PHP 5.3.3 (cli) (built: Feb 22 2013 02:51:11)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
「PHP 5.3.3 (cli)」が現在のバージョン。
PHPにはCLI版とCGI版というものがあるようで(詳細省きますが)、これはCLI版ですね。

OsukiniサーバーにインストールされているPHPのバージョン

CentOSの場合の話になりますが、デフォルトでインストールされているPHPのバージョンは、OSのバージョンによって異なります。
2013年4月10日現在で
  • CentOS 5 ならPHPは 5.1.6
  • CentOS 6 ならPHPは 5.3.3
これはOsukiniサーバー(LT/ST2/GT2/XT2)でもOsukiniサーバーAir(05/10/20/40)でも同じです。

…で。CentOS5でお申し込みいただいたお客様から、先日こんなお問い合わせが。

VPS初心者です。
WordPressをインストールしたいので、PHPのバージョン5.1.6を5.2.4以上にしたいのですが、方法がわかりません。


サト的にはすごく嬉しいです。私と同じようにVPSでWordPressに挑戦している初心者さんがいらっしゃると思うと。
でも悲しいことにOsukiniサーバーはノンマネージド。容量の割に低価格であるかわりに、各種設定はお客様自身で行っていただくというサービス(もちろん障害はちゃんと対応します)。

ご質問の件についてはサポート範囲外となりますため、誠に恐れ入りますが、
お客様ご自身での調査や修正を行ってくださいますようお願いいたします。

また、設定ついては一般のサーバーと同様の設定によりご利用いただくことが
可能であり、弊社サービス独自の設定は不要ですので、インターネット上や
書籍などの情報も参考にしてください。


先日もお話しした通り、現状、ノンマネージドのサービスに関しては障害以外のテクニカルサポートは行えていません。
サポートセンターからは上記のような回答が返ってくることが多いです。

だったらサトがアンオフィシャルにレポートしちゃえばいいじゃない。
自分でも調べながら書いていくので、上手くいかなくても怒らないで!(´Д`)
ということで、PHPとついでにMySQLのバージョンアップを行っていこうと思います。

CentOS5にPHP5.4とMySQL5.5をインストールする

私が普段使っているサーバーはCentOS 6.4なので、永続割を利用して(笑)CentOS 5のOsukiniサーバー10を別で用意しました。

バージョンの確認

OSのバージョン確認
$ cat /etc/redhat-release
CentOS release 5.9 (Final)
CentOS 5.9。
続いてPHPのバージョン確認
$ php -v
PHP 5.1.6 (cli) (built: Jun 27 2012 12:21:13)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
5.1.6。ちなみにインストールされているパッケージの確認は
$ rpm -qa | grep php
php-5.1.6-39.el5_8
php-mcrypt-5.1.6-15.el5.centos.1
php-cli-5.1.6-39.el5_8
php-mbstring-5.1.6-39.el5_8
php-common-5.1.6-39.el5_8
php-gd-5.1.6-39.el5_8
最後にMySQL。
$ mysql --version
mysql  Ver 14.12 Distrib 5.0.95, for redhat-linux-gnu (x86_64) using readline 5.1
# rpm -qa | grep mysql
mysql-5.0.95-5.el5_9
5.0。

リポジトリを追加する

リポジトリとは倉庫の意味。必要なものはそこからインストールするイメージ?
まずdl.iuscommunity.orgから、自分に適したリポジトリを選択します。私はCentOS5の64bit版なので、「5/」「x86_64/」のページへ。32bit版なら「i386/」をクリックします。
この中からEPELリポジトリとIUSリポジトリというものを追加します。
  • epel-release-5-4.noarch.rpm
  • ius-release-1.0-11.ius.el5.noarch.rpm
数字の部分は現時点での最新バージョン。上記ファイルのリンクアドレスをコピーして、wgetコマンドでダウンロードします。
まずはEPELリポジトリ。
$ su
パスワード:
# wget 5/x86_64/epel-release-5-4.noarch.rpm
--2013-04-09 15:12:49--  5/x86_64/epel-release-5-4.noarch.rpm
dl.iuscommunity.org をDNSに問いあわせています... 50.57.54.209
dl.iuscommunity.org|50.57.54.209|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 12275 (12K) [application/x-rpm]
`epel-release-5-4.noarch.rpm' に保存中

100%[======================================>] 12,275      78.6K/s 時間 0.2s

2013-04-09 15:12:50 (78.6 KB/s) - `epel-release-5-4.noarch.rpm' へ保存完了 [12275/12275]
続いてIUSリポジトリ。
# wget 5/x86_64/ius-release-1.0-11.ius.el5.noarch.rpm
--2013-04-09 15:13:42--  5/x86_64/ius-release-1.0-11.ius.el5.noarch.rpm
dl.iuscommunity.org をDNSに問いあわせています... 50.57.54.209
dl.iuscommunity.org|50.57.54.209|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 7458 (7.3K) [application/x-rpm]
`ius-release-1.0-11.ius.el5.noarch.rpm' に保存中

100%[======================================>] 7,458       28.1K/s 時間 0.3s

2013-04-09 15:13:43 (28.1 KB/s) - `ius-release-1.0-11.ius.el5.noarch.rpm' へ保存完了 [7458/7458]
次にrpmコマンドでこの2つをインストールします。
# rpm -Uvh *-release*rpm
警告: epel-release-5-4.noarch.rpm: ヘッダ V4 DSA signature: NOKEY, key ID 9cd4953f
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
   2:ius-release            ########################################### [100%]

インストール済みの既存ソフトをアンインストールする

既にインストールされているMySQL5.0とPHP5.1をアンインストールします。
まずMySQL
# yum remove mysql
Loaded plugins: downloadonly, fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package mysql.x86_64 0:5.0.95-5.el5_9 set to be erased

---省略---

Transaction Summary
================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]:
removeするのでYESの「y」を入力。
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : mysql                                                    1/2
  Erasing        : postfix                                                  2/2

Removed:
  mysql.x86_64 0:5.0.95-5.el5_9

Dependency Removed:
  postfix.x86_64 2:2.3.3-6.el5

Complete!
続いてPHP。PHPはパッケージの確認をしたときにいくつかファイルが入っていたので、「*(アスタリスク)」をつけて「名前にphpとつくファイル全て」を削除します。
# yum remove php*
Loaded plugins: downloadonly, fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.1.6-39.el5_8 set to be erased

---省略---

Transaction Summary
================================================================================
Remove        6 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : php-gd                                                   1/6
  Erasing        : php-mbstring                                             2/6
  Erasing        : php-cli                                                  3/6
  Erasing        : php-mcrypt                                               4/6
  Erasing        : php                                                      5/6
  Erasing        : php-common                                               6/6

Removed:
  php.x86_64 0:5.1.6-39.el5_8
  php-cli.x86_64 0:5.1.6-39.el5_8
  php-common.x86_64 0:5.1.6-39.el5_8
  php-gd.x86_64 0:5.1.6-39.el5_8
  php-mbstring.x86_64 0:5.1.6-39.el5_8
  php-mcrypt.x86_64 0:5.1.6-15.el5.centos.1

Complete!

最新版をインストールする

古いバージョンがアンインストールできたら、最新版をインストールします。
MySQLの最新版は5.5。
# yum install mysql55
Loaded plugins: downloadonly, fastestmirror
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql55.x86_64 0:5.5.30-1.ius.el5 set to be updated
--> Processing Dependency: mysql55-libs = 5.5.30-1.ius.el5 for package: mysql55

---省略---

Transaction Test Succeeded
Running Transaction
  Installing     : mysqlclient15                                            1/3
  Installing     : mysql55-libs                                             2/3
  Installing     : mysql55                                                  3/3

Installed:
  mysql55.x86_64 0:5.5.30-1.ius.el5

Dependency Installed:
  mysql55-libs.x86_64 0:5.5.30-1.ius.el5
  mysqlclient15.x86_64 0:5.0.92-3.ius.el5

Complete!
バージョン確認してみます。
# mysql --version
mysql  Ver 14.14 Distrib 5.5.30, for Linux (x86_64) using readline 5.1
OK!

続いてPHP。最新版の5.4を。
# yum install php54
Loaded plugins: downloadonly, fastestmirror
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php54.x86_64 0:5.4.13-1.ius.el5 set to be updated

---省略---

Installed:
  php54.x86_64 0:5.4.13-1.ius.el5

Dependency Installed:
  php54-cli.x86_64 0:5.4.13-1.ius.el5        php54-common.x86_64 0:5.4.13-1.ius.el5

Complete!
ここでインストールされたパッケージを確認してみると
# rpm -qa | grep php
php54-5.4.13-1.ius.el5
php54-cli-5.4.13-1.ius.el5
php54-common-5.4.13-1.ius.el5
アンインストールされたけどまだ最新版がインストールされていないものがありますね。「php-mcrypt」「php-mbstring」と「php-gd」。
# yum install php54-mcrypt php54-mbstring php54-gd
Loaded plugins: downloadonly, fastestmirror
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php54-gd.x86_64 0:5.4.13-1.ius.el5 set to be updated

---省略---

Installed:
  php54-gd.x86_64 0:5.4.13-1.ius.el5         php54-mbstring.x86_64 0:5.4.13-1.ius.el5
  php54-mcrypt.x86_64 0:5.4.13-1.ius.el5

Complete!
最後にバージョン確認。
# php -v
PHP 5.4.13 (cli) (built: Mar 15 2013 11:30:38)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
パッケージも5.1の頃と同じ項目で揃えてみました。
# rpm -qa | grep php
php54-mbstring-5.4.13-1.ius.el5
php54-common-5.4.13-1.ius.el5
php54-5.4.13-1.ius.el5
php54-mcrypt-5.4.13-1.ius.el5
php54-cli-5.4.13-1.ius.el5
php54-gd-5.4.13-1.ius.el5
できた♪


——————–

…とまぁこんなふうに一発では上手くいかなかったですね。
PHPのパッケージを個別追加ではなくて一括でインストールしようとして(yum install php54*)エラーを起こしたり。自分でも何をやってるのかわからなくなってきたらアンインストールし直して最初からやってました(笑)
yumとrpmの使い分けすらもいまいち把握できていませんが、それはまた追々備忘録的記事でも書くとして。
お問い合わせいただいた方がこの記事を読んで解決できることを祈っています。
長文で解り辛くてごめんねごめんねー( ´_ゝ`)