CentOS5.6/PHP/バージョンアップ

Last-modified: 2011-04-29 (金) 10:10:12
最終更新:2011-04-29 (金) 10:10:12
アクセス数(合計):?
利用者; ? アクセス数(本日):? アクセス数(昨日):?

LAMPサーバ PHP バージョンアップ

CentOS5.6のPHPバージョンを5.3.6にアップグレードする


目的

CentOS5.6インストールで設定されるPHPバージョンは5.3.3である。
今回、yumを利用し、PHPのアップグレードを行う。

★最新版はバグも少なからず発生するため、バージョンアップは必要な場合のみに留めておくこと

構築条件

構築機器

作成環境

OS    CentOS 5.6 64bit版

サーバ作成条件

サーバIP192.168.0.10/24
ホスト名hogehogeServer
user   hogehoge
userpasswdhogehogepass
作業エリア/home/hogehoge

手順記入ルール

  • コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
  • コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。

ファイル入手

サイト

今回インストールしたファイル

  • インストールファイル
    フォルダ内(yumで指定)

前準備

  1. CentOSインストール 実施
  2. yumリポジトリ設定 実施
  3. yumリポジトリ設定(独自) 実施 ★環境2:インタネットへのアクセス不可の場合
  4. LAMPサーバ構築 実施

現バージョンの確認

【telnet】

  • rootでログイン
$ su
パスワード:
  • phpのバージョン確認
# php -v
PHP 5.3.3 (cli) (built: Mar 30 2011 13:51:54)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

リポジトリ登録

★サーバ環境にあわせてrpmのyumリポジトリ登録を実施

環境1:インターネットにアクセス可能

★以下サイト内の最新版リポジトリデータを確認。rpm入手はyumで実施

  • リポジトリ登録
# wget http://wing-net.ddo.jp/wing/wing.repo
# wget http://wing-net.ddo.jp/wing/wing-extras.repo
  • 確認
# ls -l
-rw-r--r-- 1 root     root       339  3月 11  2010 wing-extras.repo
-rw-r--r-- 1 root     root       311  1月 16  2010 wing.repo
  • ファイルコピー
# cp wing* /etc/yum.repos.d/

環境2:インタネットへのアクセス不可

★手順 yumリポジトリ設定(独自)#rpm にて独自リポジトリにrpmを登録


[今回実施手順]

  • リポジトリ登録
# createrepo -v /home/yum/rpm/

環境3:イントラ内にリポジトリサーバ有り

★手順 yumリポジトリサーバ#server にてリポジトリサーバにrpmを登録


  • リポジトリ登録
# createrepo -v /var/www/html/yum/rpm/

アップデート実施

(1)新PHPパッケージインストール

※PHPアップデート時の依存関係エラー回避のためMySQLのアップデートも実施する

  • MySQLアップデート(wing)
# yum --enablerepo=wing update mysql
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
  :
  • PHPアップデート (wing)
# yum --enablerepo=wing update php53
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
  :

(2)Apache再起動

  • MySQL再起動
# /etc/rc.d/init.d/mysqld restart
MySQL を停止中:                                            [  OK  ]
MySQL を起動中:                                            [  OK  ]
  • Apache再起動
# /etc/rc.d/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

(3)確認

  • PHPバージョン確認
# php -v
PHP 5.3.6 (cli) (built: Apr 10 2011 03:13:41)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies

※「PHP Startup: Unable to load dynamic library」エラー時は以下コマンド実施

# ln -s /usr/lib64/php/ /usr/lib/

  • 終了
# exit
exit
$

遭遇したトラブル

phpコマンドで「PHP Warning」発生

問題:

アップデート後phpコマンドを投入すると以下ワーニングが発生

# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/curl.so' -
 /usr/lib/php/modules/curl.so: cannot open shared object file:
 No such file or directory in Unknown on line 0

原因:

phpモジュールが、「/use/lib64/」配下にあるため

以下コマンドにてリンクを張る

# ln -s /usr/lib64/php/ /usr/lib/

リポジトリ登録でエラーとなる

問題:
今回と別手順であるが、rpmでリポジトリ登録時「転送に失敗」が出る

[例]

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm を取得中
エラー: http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
 をスキップします - 転送に失敗 - 不明または予期せぬエラー

 

原因:
指定アドレスにrpmがない。
※上記の場合だと「epel-release-5-3.noarch.rpm」が「epel-release-5-4.noarch.rpm」に変更になっている。

該当アドレスhttp://download.fedora.redhat.com/pub/epel/5/i386/にアクセスし該当ファイルが
あるか確認すること。

PHPバージョンアップ後MySQLが起動しない

問題:
今回と別リポジトリ利用時であるが、yumでMySQLアップデート後MYSQLが起動に失敗する

原因:
リポジトリでx64未対応のリポジトリを引き込んでいる。

[例]

# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
# wget http://rpms.famillecollet.com/el5.i386/remi-release-5-6.el5.remi.noarch.rpm

このため、「MySQL」がi386版のみ引き込みとなりx86_64版が引き込まれないためエラーとなる模様。
※i386とx86_64の両方が必要となる模様

謝辞

テキスト作成に当たり、以下サイトを参考にさせて頂きました。ありがとうございます。

http://wingse.blog57.fc2.com/blog-entry-227.html
http://www.proustcafe.com/2006/01/createrepoyum.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230812/