LAMPサーバ PHP バージョンアップ
CentOS5.6のPHPバージョンを5.3.6にアップグレードする
目的
CentOS5.6インストールで設定されるPHPバージョンは5.3.3である。
今回、yumを利用し、PHPのアップグレードを行う。
★最新版はバグも少なからず発生するため、バージョンアップは必要な場合のみに留めておくこと
構築条件
構築機器
- 仮想サーバ SUN VirtualBox 4.0 で構築
作成環境
OS | CentOS 5.6 64bit版 |
サーバ作成条件
サーバIP | 192.168.0.10/24 |
ホスト名 | hogehogeServer |
user | hogehoge |
userpasswd | hogehogepass |
作業エリア | /home/hogehoge |
手順記入ルール
- コマンド行頭記号で 「$」はユーザ権限 「#」はスーパーユーザー権限 を表示
- コマンドが長くなる場合は、行末に「\」を記述し複数行に記述。
ファイル入手
サイト
- にわかSEの独り言
http://wingse.blog57.fc2.com/
今回インストールしたファイル
- ダウンロードサイト
http://wing-net.ddo.jp/wing/
- インストールファイル
フォルダ内(yumで指定)
前準備
- CentOSインストール 実施
- yumリポジトリ設定 実施
- yumリポジトリ設定(独自) 実施 ★環境2:インタネットへのアクセス不可の場合
- 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を登録
[今回実施手順]
- 「/home/yum/rpm」内に以下htmlフォルダの全rpmをコピー
「http://wing-net.ddo.jp/wing/redhat/el5/」
- リポジトリ登録
# createrepo -v /home/yum/rpm/
環境3:イントラ内にリポジトリサーバ有り
★手順 yumリポジトリサーバ#server にてリポジトリサーバにrpmを登録
- 「/home/yum/rpm」内に以下htmlフォルダの全rpmをコピー
「http://wing-net.ddo.jp/wing/redhat/el5/」
- リポジトリ登録
# 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/