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コマンド
以下を前提にインストールするものとします。
- 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をアップデート
関連記事(※当記事と関連性が高いと思われる記事)
CentOSでPHPのバージョンをアップデート
2011/12/23PHP5.3のPEARをアップデート
2012/06/09APCでPHPの処理を高速化
2012/06/12PHPを5.3系にアップデートしました
2012/04/01RSSフィードを読み込むPHPスクリプト
2012/04/21おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)