Server

CentOSにPHP5.3をインストール

Category

Server

CentOSにPHP5.3系をインストールする際、いくつか注意しないといけない点があります。
例えば、デフォルトのリポジトリを使ったインストールでは、"php53-mcrypt"が用意されていないため、そのままではphpMyAdminを使用することができません。また、"php53-pear"も用意されていないため、PEARのインストール時には、"php-pear"をインストールした後、バージョンアップを適応することでPHP5.3に対応させないといけません。
"何でこんなにややこしいことになっているのか?"というと、php(PHP5.1系)とphp53(PHP5.3系)の2つのパッケージに分離されてしまっていることが原因です(そのまま移行するには"いろんな面で影響が大き過ぎる"といったところなんでしょうけど...)。
先日、当サイトのサーバーにもPHP5.3系をインストールしましたので、phpMyAdminやPEARを使うことができるようにインストールする手順を自分の覚え書きとして残しておこうと思います。

Keyword:CentOS,PHP5.3,Linuxコマンド

CentOSにPHP5.3をインストール

以下を前提にインストールするものとします。

  • CentOS5系でのインストール手順
  • PHP5.3とMySQLをインストール
  • 基本、デフォルトのリポジトリ経由でインストール
  • php53-mcryptはデフォルトで用意されていないため、外部リポジトリを使用
  • PEARのインストール手順も一部紹介

サーバーの環境により、多少インストール手順が異なったり、既にインストールされているパッケージによっては依存関係の問題が生じる場合があります。
当サイトを参考にされる場合、自己責任でのご対応を宜しくお願いします(多少なりともLinuxコマンドやサーバーの知識は必要です)。

CentOSにPHP5.3とMySQLをインストールする

1.既存のPHPとMySQLのバージョン・インストールパッケージを確認

Linuxコマンド

#PHPのバージョンを確認
php -v

#MySQLのバージョンを確認
mysql --version

#PHPのインストールパッケージを確認
yum list installed | grep php*

#MySQLのインストールパッケージを確認
yum list installed | grep mysql*

補足

PHPとMySQLのバージョンを確認
既にPHPとMySQLがインストールされている場合、バージョンを確認します。
CentOS5系の場合、デフォルトのリポジトリ経由でPHPをインストールしている場合、バージョン5.1.6がインストールされていると思います(既にPHP5.3がインストールされている場合を除く)。

PHPとMySQLのインストールパッケージを確認
既存のインストールパッケージを確認して、PHPやMySQLに必要な他のパッケージも確認しておきます(PHP5.3系をインストールする場合、依存関係等の問題が生じる場合が多いため、一旦既存のPHPは削除した後にインストールすることをおすすめします。MySQLに関しては、インストール済みであればそのままでも構いません。私の場合、MySQLを外部リポジトリ経由でインストールしていたため、入れ直しました)。

2.アパッチとMySQLを停止

Linuxコマンド

#アパッチを停止
/etc/rc.d/init.d/httpd stop

#MySQLを停止
/etc/init.d/mysqld stop

補足

アパッチとMySQLを停止
既存のPHPとMySQLをアンインストールしてから、新たにインストールし直しますので、アッパチとMySQLを一旦停止させます。

3.既存のPHP・MySQL・関連するパッケージをアンインストール

Linuxコマンド

#PHPをアンインストール
yum remove php

#PHPに関連するパッケージをアンインストール
yum remove php-*

#MySQLをアンインストール
yum remove mysql

#MySQLに関連するパッケージをアンインストール
yum remove mysql-*

#依存関係を無視してアンインストール
rpm -e --nodeps [パッケージ名]

補足

PHP・MySQL・関連するパッケージをアンインストール
アンインストールの際、”-y”オプションを付けなければ、削除してもよいかの確認が表示されますので、問題がなければ”y”を入力しEnterキーを押します。
依存関係の問題で他のパッケージ等も一緒に削除しないといけない場合もありますので、しっかりと確認しましょう。

依存関係を無視してアンインストール
基本、依存関係にあるものは一緒にアンインストールした方が無難ですが、場合によっては「この一つだけ削除したい…」といった場合もあります。ですが”yum remove [パッケージ名]”では依存関係にあるものは一緒に削除されてしまいます。ですが、rpmコマンドを使うと依存関係を無視して特定のパッケージのみを削除することもできます。
※上記コマンドは、削除確認を出さずアンイストールしますのでご注意ください。
※依存関係を無視しますので、取り扱いには十分注意してください。

4.PHPと必要なパッケージをインストール

Linuxコマンド

#PHP5.3をインストール
yum install php53.x86_64

#必要なパッケージをインストール
yum install php53-bcmath.x86_64 php53-dba.x86_64 php53-devel.x86_64 php53-gd.x86_64 php53-imap.x86_64 php53-mbstring.x86_64 php53-mysql.x86_64 php53-pdo.x86_64 php53-soap.x86_64 php53-xml.x86_64 php53-xmlrpc.x86_64

補足

PHP5.3をインストール
PHP5.3をインストールする場合、”yum install php”ではなく”yum install php53″とします。”53″を付けないとPHP5.1.6がインストールされてしまいます。
CentOS5.6リリース時からPHP5.3にも対応していますので、PHP5.3をインストールしたい場合”yum install php53″とバージョン5.3を指定しましょう。
“.x86_64″は64bit版OSを意味します。32ビット版の場合は”.i386″を指定します(場合によっては、64bit版なのに32bit版のものがインストールされてしまうこともありますので、予め指定しておいた方が無難です)。
PHP5.3をインストールすると、依存関係にある”php53-cli”と”php53-common”もインストールされますので、一緒にインストールします(2012.4.1時点では、バージョン5.3.3がインストールされます)。

必要なパッケージをインストール
パッケージに関しては、お使いのサーバーに必要なものを指定してください。
ここで問題となるのが、phpMyadminを利用する場合、”php53-mysql”と”php53-mcrypt”が必要である点です(厳密にいうと”php53-mbstring”も必要です)。
ですが、デフォルトのリポジトリには”php53-mcrypt”がありません
そこで、”php53-mcrypt”をインストールする方法を紹介します。

5.php53-mcryptをインストール

“php53-mcrypt”をインストールする方法は大きく分けて2つあります。
ソースからビルドする方法と外部リポジトリを使う方法です。
ソースからビルドする方法は、他のサイトでも紹介されていますので、EPELの外部リポジトリを使ってインストールする方法を紹介します。
ソースからビルドする方法は以下を参照してください。
⇒ Server Fault ~How to build missing PHP 5.3 extensions on CentOS 5.6~

Linuxコマンド

#EPELのリポジトリを追加
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

#リポジトリを確認
vi /etc/yum.repos.d/epel.repo

#リポジトリのパッケージを確認(php53-mcryptを確認)
yum --enablerepo=epel list | grep php53-*

#php53-mcryptをインストール
yum --enablerepo=epel install php53-mcrypt.x86_64

補足

サードパーティ製の外部リポジトリの有名どころでいうと、EPEL・Remi・RPMforge等があります。今回は、EPELのリポジトリを使用します。

EPELのリポジトリを追加
“/5/x86_64/~”の”5″はCentOS5、”x86_64″は64bit版OSを意味します。
“rpm -ivh http~”でパッケージをインストール、”rpm -Uvh http~”だとパッケージをアップデート(前バージョンのパッケージがない場合、パッケージをインストール)といった意味になります。

リポジトリを確認
viコマンドでEPELのリポジトリを開き、無効化します(“enabled = 0″とする)。これは、通常のインストールやアップデートの際はデフォルトのリポジトリを使うためです。EPELのリポジトリを使いたい場合だけ、コマンド入力時にenablerepoオプションを付加することで、EPELのリポジトリが使用されます。

リポジトリのパッケージを確認
php53-mcryptがあるかを確認します。
ここで注意点が一つ。PHP5.3をインストールした際、バージョン5.3.3がインストールされているので、php53-mcryptもバージョンが5.3.3であるか確認しましょう。

php53-mcryptをインストール
enablerepoオプションを付加し、EPELリポジトリ経由でphp53-mcryptをインストールします。

[参考リンク]
・EPEL RPMパッケージ(CentOS5 64bit)
・REMI RPMパッケージ
・RPMforge RPMパッケージ(CentOS5 64bit)

6.MySQLをインストール

Linuxコマンド

#パッケージを確認
yum list | grep mysql*

#MySQLをインストール
yum install mysql.x86_64

#必要なパッケージをインストール
yum install mysql-bench.x86_64 mysql-devel.x86_64 mysql-server.x86_64

補足

パッケージを確認
MySQLのパッケージをインストール前に確認しておきます。

MySQLをインストール
MySQLをインストールします。
2012.4.1時点では、バージョン5.0.95がインストールされるようです。
Remiのリポジトリ経由でインストールすると、新しいバージョンのMySQLもインストールできますが、極力外部リポジトリの使用は避けたいので、今回はデフォルトのリポジトリ経由でインストールします(Remi経由でインストールする場合、依存関係の問題もありますので、PHPもRemi経由でインストールした方が無難です。また、Remi+EPELリポジトリ経由で最新のPHPとMySQLをインストールする方法も紹介しようと思います)。

必要なパッケージをインストール
パッケージに関しては、お使いのサーバーに必要なものを指定してください。

7.インストール内容の確認とMySQL・アパッチの起動等

Linuxコマンド

#PHPとMySQLのバージョン・インストールパッケージを確認
php -v
mysql --version
yum list installed | grep php*
yum list installed | grep mysql*

#php.iniを編集
vi /etc/php.ini
;タイムゾーンを設定
date.timezone = Asia/Tokyo

#MySQLを起動
/etc/init.d/mysqld start

#アパッチを起動
/etc/rc.d/init.d/httpd start

#yumのキャッシュをクリア
yum clean all・・・すべてのキャッシュをクリア
cd /var/cache/yum
rm -rf epel・・・特定のリポジトリのキャッシュのみをクリア

補足

PHPとMySQLのバージョン・インストールパッケージを確認
PHPとMySQLのバージョンが変わっているか確認します。
また、必要なパッケージもインストールされているか確認します。

php.iniを編集
PHPをインストールし直しましたので、php.iniも編集し直す必要があります。
また、PHP5.3ではタイムゾーンの設定が必要なようですので、追記します。
PHP5.3でのエラーレベルについてですが、「’#’ではじまるコメントは .INI ファイルでは推奨されない」となっていますので、php.iniにコメントを入れたい時はセミコロンを使用します。
[参考サイト]
PHP5.3.xで推奨されない機能

MySQL・アパッチを起動
現状では、MySQLとアパッチは停止していますので起動させます。
phpMyAdminを使用したい場合は、サーバーにインストールします(phpMyAdminのインストール方法に関しては割愛します)。

yumのキャッシュをクリア
yumでアップデート等を行う際、yumのキャッシュのせいでアップデートがうまく実行できない場合がありますので、キャッシュをクリアしておきます。
特定のリポジトリのみキャッシュをクリアすることもできます(例では、EPELリポジトリのみのキャッシュをクリアしています)。

8.PEARをインストール

Linuxコマンド

#PEARをインストール
yum install php-pear

#PEAR本体と依存関係にあるパッケージをアップデート
pear upgrade --force Archive_Tar 
pear upgrade --force Console_Getopt 
pear upgrade PEAR

補足

PEARをインストール
php53-pearは用意されていないので、まずはphp-pearをインストールします。

PEAR本体と依存関係にあるパッケージをアップデート
php-pearをインストールしただけでは、PEARのパッケージを確認した際、大量のエラーが出力されてしまうので、PEAR本体と依存関係にあるパッケージをバージョンアップすることで、PHP5.3に対応させることができます。

PHP5.3をインストールした際のPEARのインストールに関しては、以下サイトがとても参考になります。
⇒ あかばね式 ~PHP5.3+PEAR インストール~
⇒ kota’s blog ~CentOS5にPHP5.3をインストール~

◎2012.6.10追記
PHP5.3でのPEARのアップデート手順を記事にしました。
よかったらそちらの記事もご覧ください。
PHP5.3のPEARをアップデート

List

関連記事(※当記事と関連性が高いと思われる記事)

CentOSでPHPのバージョンをアップデート

2011/12/23
CentOS
スコア:46 ※スコアの数値が大きいほど、関連性の高い記事です。 CentOSでyumを使ってPHPを5.2系にアップデートする手順 外部のリポジトリでよく聞くのは以下の2つだと思います。 ・Les RPM de Remi ・Utte... 続きを読む...

PHP5.3のPEARをアップデート

2012/06/09
PHP5.3のPEARをアップデート
スコア:23 ※スコアの数値が大きいほど、関連性の高い記事です。 PHP5.3のPEARアップデート手順 1.PEARのインストールパッケージを確認現在インストールされているPEARのパッケージを確認します。 コマンド # PEARの... 続きを読む...

APCでPHPの処理を高速化

2012/06/12
APCでPHPの処理を高速化
スコア:21 ※スコアの数値が大きいほど、関連性の高い記事です。 PHPアクセレーターAPCとは? PHPアクセレーターとは、PHPのスクリプトを最適化してコンパイルされた状態でデータをキャッシュし、以後同じデータにアクセスがあった際... 続きを読む...

PHPを5.3系にアップデートしました

2012/04/01
PHPを5.3系にアップデート
スコア:17 ※スコアの数値が大きいほど、関連性の高い記事です。 サーバー移行を行ったついでにPHPを5.3系にアップデートしました。 サイト公開時は、とりあえずWordPressの最新版がインストールできる環境(PHPはVer.5.... 続きを読む...

RSSフィードを読み込むPHPスクリプト

2012/04/21
RSSフィードを読み込むPHPスクリプト
スコア:16 ※スコアの数値が大きいほど、関連性の高い記事です。 以下の内容で紹介していきます。※テキストリンクをクリックするとその箇所までページがスクロールします。 Magpie RSSのダウンロードと設置 Magpie RSSを使... 続きを読む...

おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)

ページの先頭へ