YouTubeやってます!
Categoriesまとめ

CentOS5.7のPHPをVer.5.3.3にしてみた

Date 2011/09/18 20:05  Modified date 2016/05/10 Author Yutaka  Tags Apache CentOS HowTo server 情報処理

 CentOS5.7にアップデートしたついでにphpもチェックしてみたら、php53とかいう見慣れないものがリストされてました。調べてみたらphp53はphp5.3系であるとのこと。これまで、utterramblingsのレポジトリで入れたphp5.2系を使っていて、別にそれで不便なこともなかったのですが、まあこの機会に、ってことでphp53をインストールしてみました。

 icoroとしても岡本としても久しぶりの投稿になってしまいました。ぼーっとしてたらいつの間にか1週間経過していたという。というわけでリハビリも兼ねた第一弾の記事はCentOSのお話。てか、もうIT系ってカテゴリ作っちゃおうかな……

アップデート手順

 というわけで、さっそくphp5.3系へのアップデート手順など。大まかな手順としては、

  1. 下準備
  2. httpdの停止
  3. phpのアンインストール
  4. php53のインストール
  5. mcryptのインストール
  6. apcのアップグレード
  7. httpdの起動

って感じです。

停止前の下準備

 現在動いているphpをアンインストールしちゃう前に、どのパッケージをインストールしているのかを調べてどっかにメモっておきましょう。これはphp53をインストールする際に必要になります。
 コンソールで以下のように入力すると、現在インストールされている「php」という文字列を含むパッケージをリストすることが出来ます。

$ yum list installed | grep php

 うちの場合は以下のように出てきました。基本、WordPress動かしてるだけなので、あんま特殊な物は入ってません。

php.x86_64            5.2.16-jason.1      installed
php-cli.x86_64        5.2.16-jason.1      installed
php-common.x86_64     5.2.16-jason.1      installed
php-devel.x86_64      5.2.16-jason.1      installed
php-gd.x86_64         5.2.16-jason.1      installed
php-mbstring.x86_64   5.2.16-jason.1      installed
php-mcrypt.x86_64     5.2.16-jason.1      installed
php-mhash.x86_64      5.2.16-jason.1      installed
php-mysql.x86_64      5.2.16-jason.1      installed
php-pdo.x86_64        5.2.16-jason.1      installed
php-pear.noarch       1:1.9.1-1.jason.1   installed

 ついでに、アップデート中はサーバを停止することになるので、停止しても混乱が起きないように前もって停止する旨をサイトで告知したり、あんまアクセスがない時間帯を選んだりしてアップデート作業を行いましょう(とか言ってる自分は、思いっきり思いつきでゴールデンタイムに作業してたり)。作業時間は、順調にいけば10分くらいでしょうか。そんなにかからないかも。

httpdを停止

 そんなわけで準備が完了したら、まずはhttpd(Apache)を停止します。以降の作業は、suコマンドでルートに化けてやってます。

service httpd stop

もしくは、

/etc/rc.d/init.d/httpd stop

どちらも効果は同じだと思います。serviceの方が覚えやすくて打ちやすいので、自分はserviceコマンドをよく使うんですけれども。

phpのアンインストール

 httpdを停止したら、phpをアンインストールします。

yum remove php php-*

とすれば、一度にまるっとアンインストール出来ます。

php53のインストール

 続いてphp53をインストールします。ここで、最初にメモったphpのインストールド・リストを参照しつつインストールしましょう。phpをphp53に置き換えればおk。ただし、php53-mcryptはyumではインストール出来ないので、ここでは除外しておきます。php53-pearはないみたいなので、php-pearのままです。

yum install php53 php53-cli php53-common php53-devel php53-gd php53-mbstring php53-mhash php53-mysql php53-pdo php-pear

 また、アップデートしただけだとphpを動かしたときに以下のような警告が出力されることがあります。要は、タイムゾーンを設定してくれと言うことらしいです。

PHP Warning:  phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.

 なので、php.iniを開いてタイムゾーンを設定します。日本住みじゃ無い人は「Asia/Tokyo」の部分を自分の環境に合わせて変更してね。

[Date]
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = "Asia/Tokyo"

mcryptのインストール

 phpMyAdminを使っている場合、mcryptは必須となっております。でも、yumではインストール出来ないので、ソースからビルドします。ちょっとめんどくさいです。でもやってやれないことはありません。

 まずは、php53-devel と libmcrypt-devel をインストールします。既にインストールされている場合はもちろん、この手順は飛ばします。

yum install php53-devel libmcrypt-devel

 つづいて、phpのソースをダウンロードします。

cd
wget http://museum.php.net/php5/php-5.3.3.tar.bz2

 ここでは最初にcdコマンドでホームディレクトリに移動して(別にホームディレクトリでなくても良いけど、なんとなくやりやすいかと思って)、その後wgetでphpのソースをダウンロードしています。PHPのソースをダウンロードして、その中にあるmcryptのコードだけを取り出してビルドする、って感じです。
 wgetのダウンロード先はインストールしたphpのバージョンに合わせて下さい。上はver.5.3.3の場合のダウンロードリンクです。バージョン別のphpのソースへのリンクは以下のページにあります。

 ダウンロード出来たら、あとはファイルを解凍してビルドするだけです。以下のようにコマンドを打っていけば完了するみたいです。

tar jxvf php-5.3.3.tar.bz2
cd php-5.3.3/ext/mcrypt/
phpize
aclocal
./configure
make
make install

 インストールが完了したら、php.iniに「extension=mcrypt.so」を追記して完了。
 ですが、php.iniに追記するのはいいけど、あとで何を追加したのか分かりにくくなるのがあんまり好きじゃないので、自分は以下のようにして、php.d に mcrypt.ini を追加しました。phpは起動時に php.d 内のファイルを参照するので、まあ同じ事かな、と。

echo "extension=mcrypt.so" > /etc/php.d/mcrypt.ini

 インストールが完了したら、ダウンロードしたphpのソースは用済みなので、削除しちゃっても良いと思います。

apcのアップデート

 phpをアップデートしたら、なんかapcが動かなくなったので、apcをアップデートしてみました。なんだか分かりませんがアップデートしたら動くようになったので、まあいいかな、と。。。
 APC使ってない人や普通に動いてるって人はこの手順は飛ばしておk。

pecl channel-update pecl.php.net
pecl upgrade apc

httpdの起動

 以上、設定が完了したら、httpdを起動します。

service httpd start

 起動後、phpinfoを見たり、設置したphpファイルがちゃんと動いてるのが確認出来たら状況終了です。

そんな感じ

 mcryptのインストールがちょいめんどい感じですが、実際やってみると思ったほどではありませんでした。書いてあるとおりにコマンドを入力すれば、いけます。
 ついでに言うとpearのところでなんかいろいろあったのですが、それはまた別の機会に、ということで。

参考

Back to Top