DTIのServersMan@VPSユーザのための30分でできるLAMPアップグレード術(CentOS編)


(田中社長の気を悪くしてしまったらすみません。私もいつかさくらのVPS使ってみますのでどうかお許しを。)

前提条件など


既にyumでPHP, MySQLのインストールは完了しているものとします。
この記事では、yumのリポジトリを追加(Fedora EPEL 、remi、RPMForge)してPHPとMySQLをバージョンアップする方法を中心に解説します。

これをやると、PHPが5.3に、MySQLが5.5になります。(2011/8/13現在)

アーキテクチャを確認


# uname -m
i686
# uname -i
i386

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 26
model name      : Intel(R) Xeon(R) CPU  L5520  @ 2.27GHz
stepping        : 5
cpu MHz         : 903.094
cache size      : 8192 KB
physical id     : 1
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 16
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc
 pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
bogomips        : 4522.09
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: [8]
i386とi686の違いは何でしょうか?

探してみたらどんぴしゃな答えがありました。
i686 版は Pentium Pro と互換性のあるマシンで動作します。
i386 版は それよりも古い 80386 と互換性のあるマシンで動作します。

つまり、Prentium Pro 以上の PC ではどちらの版でも問題なく動作しますが、
80386 以上、Pentium MMX 以下のマシンでは i386 版は動作しても i686 版は動作しないかもしれません。

逆に i686 版では古い i386 にはない命令を利用して、高度な最適化が行われているので、
i386 版よりも高速します (理屈上は・・・)。

最近の PC ではどちらの版でも動作するが、
i686 版の方が i386 版よりも速く動作するかもと行ったところでしょうか。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13334&forum=10

なるほどー。
つまり、i686のrpmがあればそれを使えばよいし、なければi386のrpmを使えばよいということですね。

yumのリポジトリ追加


Fedora EPEL 、remi、RPMForge の3つのrpmファイルを取得します。
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

yumにリポジトリを追加します。
# rpm -Uvh epel-release-5-4.noarch.rpm remi-release-5.rpm rpmforge-release-0.5.2-2.el5.rf.i386.rpm
warning: epel-release-5-4.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
warning: remi-release-5.rpm: Header V3 DSA signature: NOKEY, key ID 00f97f56
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [ 33%]
   2:remi-release           ########################################### [ 67%]
   3:rpmforge-release       warning: /etc/yum.repos.d/rpmforge.repo created as /etc/yum.repos.d/rpmforge.repo.rpmnew
########################################### [100%]
rpmforgeはもともと入ってたから追加する必要なかったのかも?
すいませんよくわかってないです。

レポジトリを追加したので、デフォルトを無効にします。
# nano /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 5 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch
failovermethod=priority
enabled=0  # ← 0にする
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
# nano /etc/yum.repos.d/rpmforge.repo.rpmnew
### Name: RPMforge RPM Repository for RHEL 5 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 0 # ← 0にする
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

remiについては、田中社長がおっしゃるとおりもともとenabled=0なので修正の必要はありませんでした。

yumでアップデートする


いよいよアップデートです。

# yum --enablerepo=remi,epel,rmpforge update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: rsync.atworks.co.jp
 * epel: ftp.iij.ad.jp
 * extras: rsync.atworks.co.jp
 * remi: remi-mirror.dedipower.com
 * updates: rsync.atworks.co.jp
epel                                                                                                                                                                                                                  | 3.7 kB     00:00
epel/primary_db                                                                                                                                                                                                       | 3.1 MB     00:00
remi                                                                                                                                                                                                                  | 2.5 kB     00:00
remi/primary_db                                                                                                                                                                                                       | 260 kB     00:01
Setting up Update Process
Resolving Dependencies
--> Running transaction check
--> Processing Dependency: libmysqlclient.so.15 for package: perl-DBD-MySQL
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: perl-DBD-MySQL
---> Package mysql.i386 0:5.5.15-1.el5.remi set to be updated
--> Processing Dependency: mysql-libs = 5.5.15-1.el5.remi for package: mysql
---> Package mysql-server.i386 0:5.5.15-1.el5.remi set to be updated
--> Processing Dependency: libaio.so.1(LIBAIO_0.4) for package: mysql-server
--> Processing Dependency: libaio.so.1(LIBAIO_0.1) for package: mysql-server
--> Processing Dependency: libaio.so.1 for package: mysql-server
---> Package php.i386 0:5.3.6-4.el5.remi set to be updated
---> Package php-cli.i386 0:5.3.6-4.el5.remi set to be updated
--> Processing Dependency: libedit.so.0 for package: php-cli
---> Package php-common.i386 0:5.3.6-4.el5.remi set to be updated
---> Package php-mbstring.i386 0:5.3.6-4.el5.remi set to be updated
---> Package php-mysql.i386 0:5.3.6-4.el5.remi set to be updated
---> Package php-pdo.i386 0:5.3.6-4.el5.remi set to be updated
--> Running transaction check
---> Package libaio.i386 0:0.3.106-5 set to be updated
---> Package libedit.i386 0:2.11-2.20080712cvs.el5 set to be updated
---> Package mysql-libs.i386 0:5.5.15-1.el5.remi set to be updated
---> Package mysqlclient15.i386 0:5.0.67-1.el5.remi set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================================================================
 Package                                                    Arch                                              Version                                                                Repository                                         Size
=============================================================================================================================================================================================================================================
Updating:
 mysql                                                      i386                                              5.5.15-1.el5.remi                                                      remi                                              7.5 M
 mysql-server                                               i386                                              5.5.15-1.el5.remi                                                      remi                                               12 M
 php                                                        i386                                              5.3.6-4.el5.remi                                                       remi                                              1.3 M
 php-cli                                                    i386                                              5.3.6-4.el5.remi                                                       remi                                              2.6 M
 php-common                                                 i386                                              5.3.6-4.el5.remi                                                       remi                                              970 k
 php-mbstring                                               i386                                              5.3.6-4.el5.remi                                                       remi                                              2.3 M
 php-mysql                                                  i386                                              5.3.6-4.el5.remi                                                       remi                                              148 k
 php-pdo                                                    i386                                              5.3.6-4.el5.remi                                                       remi                                              113 k
Installing for dependencies:
 libaio                                                     i386                                              0.3.106-5                                                              base                                               19 k
 libedit                                                    i386                                              2.11-2.20080712cvs.el5                                                 epel                                               79 k
 mysql-libs                                                 i386                                              5.5.15-1.el5.remi                                                      remi                                              1.1 M
 mysqlclient15                                              i386                                              5.0.67-1.el5.remi                                                      remi                                              1.3 M

Transaction Summary
=============================================================================================================================================================================================================================================
Install       4 Package(s)
Upgrade       8 Package(s)

Total download size: 30 M
Is this ok [y/N]:

ここで y を押すとインストールがずらずら始まります。

# php -v
PHP 5.3.6 (cli) (built: May 16 2011 19:18:00)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

おぉ!PHPがめでたく5.3にバージョンアップされました。
無名関数とか名前空間を使ってみたかったので、かなりうれしいです。

一方MySQLはというと、

# /etc/init.d/mysqld start
MySQL Daemon failed to start.
Starting mysqld:    [FAILED]

あらー起動失敗。
これについては別記事で解説しました↓下記のとおりにやれば解決できます。
[MySQL] "[ERROR] /usr/libexec/mysqld: unknown variable 'default-character-set=utf8"の対処法


以上です。
よくわかってない部分もあるので、間違いなどありましたらご指摘いただけると幸いです。
カテゴリ: