OXY NOTES

yumコマンドで外部リポジトリを指定して、最新のPHPにバージョンアップ

yumと外部リポジトリの力を借りれば、作業は数行のコマンドだけ

前回の投稿でも確認しましたが「CentOS Linux 5.8」のデフォルトだと「PHPが5.1.6」で、最新のWordPress動作条件を満たしていません。
この投稿ではパッケージ管理システムのyum外部リポジトリを利用して、PHPをバージョンアップする方法と、初期設定を解説します。


現在インストールされているPHPのバージョンを確認

バージョンの確認には「-v」オプションを利用します。

※コマンドラインの見方
コマンド」「引数、その他」「コメント」「#(rootユーザ)」「$(一般ユーザ)」

# php -v

PHP 5.1.6 (cli) (built: Jun 27 2012 12:21:13)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

5.1.6がインストールされていることがわかります。
新旧のファイルが混在すると思わぬ不具合が発生するため、PHPに関連する古いファイルを「1度アンインストールしてから、新しいファイルをインストール」します。

まずは「yumコマンド」でPHPをアンインストールします。解説では「eraseコマンド」を利用していますが、「removeコマンド」でも動作は同じです。好きな方を使ってください。

# yum erase php

Loaded plugins: downloadonly, fastestmirror, priorities
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.1.6-39.el5_8 set to be erased
--> Processing Dependency: php >= 5.1.6 for package: php-mcrypt
--> Running transaction check
---> Package php-mcrypt.x86_64 0:5.1.6-15.el5.centos.1 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================
 Package             Arch            Version                        Repository          Size
=============================================================================================
Removing:
 php                 x86_64          5.1.6-39.el5_8                 installed          6.3 M
Removing for dependencies:
 php-mcrypt          x86_64          5.1.6-15.el5.centos.1          installed           37 k

Transaction Summary
=============================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y ←アンインストールをしていいかYES/NOと聞かれるので「y」と入力してEnter
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : php-mcrypt                                                            1/2
  Erasing        : php                                                                   2/2

Removed:
  php.x86_64 0:5.1.6-39.el5_8

Dependency Removed:
  php-mcrypt.x86_64 0:5.1.6-15.el5.centos.1

Complete!

Complete!」と出れば正常にアンインストールされています。

Removing for dependencies:」の欄で「php-mcrypt」も同時にアンインストールされていることに注目してください。「yum」ではインストールまたはアンインストール時に、依存関係にあるファイルを同時に処理します。

注意しなくてはいけないのは、「php-mcrypt」の動作には「php」が必須ですが、「php」の動作には「php-mcrypt」が必須ではないということです。

つまり、「php」のアンインストール時に「php-mcrypt」も同時にアンインストールされますが、「php」の動作には「php-mcrypt」が必須ではないので、「php」のインストール時に、同時にインストールされません。そのため、同じ状態に戻すには「php」と「php-mcrypt」の2つを指定する必要があります。

このような事情から、Linuxでの作業に慣れるまでは、インストールやアンインストールしたソフトだけでなく、依存関係にあって処理されたソフトもメモを取ったほうが安心です。

最悪忘れた場合でも「yumコマンド」のログは「/var/log/yum.log」、インストール済みのパッケージは「/var/log/rpmpkgs」に一覧が保存されています。もしもの場合は、参照してみてください。

1度に必要な全てのソフトをアンインストールして、インストールし直すことも可能ですが、作業に慣れるために、あえて1つずつ順序立てて作業していきます。


既にインストールされているPHP関連のパッケージをアンインストール

PHPに関連するパッケージは「php」という名前が付いていることが多いため、以下のコマンドで探すことができます。

# rpm -qa | grep php

この特性を知っている場合は以下のコマンドで全ての関連ファイルを削除することもできます。
php」の後にある「*(アスタリスク)」は「phpの後にどんな言葉がきてもマッチ」するという意味になります。
つまり「phpという名前の付くパッケージを全て削除する」という指定になります。

# yum erase php*

上記の方法で関連するパッケージを全て指定してもいいですが、今回は依存関係にあるものを削除してくれるyumの特性を利用して「php-common」をアンインストールしてみます。

# yum erase php-common

Loaded plugins: downloadonly, fastestmirror, priorities
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package php-common.x86_64 0:5.1.6-39.el5_8 set to be erased
--> Processing Dependency: php-common = 5.1.6-39.el5_8 for package: php-mbstring
--> Processing Dependency: php-common = 5.1.6-39.el5_8 for package: php-gd
--> Processing Dependency: php-common = 5.1.6-39.el5_8 for package: php-pdo
--> Processing Dependency: php-common = 5.1.6-39.el5_8 for package: php-cli
--> Processing Dependency: php-common = 5.1.6-39.el5_8 for package: php-mysql
--> Running transaction check
---> Package php-cli.x86_64 0:5.1.6-39.el5_8 set to be erased
---> Package php-gd.x86_64 0:5.1.6-39.el5_8 set to be erased
---> Package php-mbstring.x86_64 0:5.1.6-39.el5_8 set to be erased
---> Package php-mysql.x86_64 0:5.1.6-39.el5_8 set to be erased
---> Package php-pdo.x86_64 0:5.1.6-39.el5_8 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================
 Package                Arch             Version                   Repository           Size
=============================================================================================
Removing:
 php-common             x86_64           5.1.6-39.el5_8            installed           397 k
Removing for dependencies:
 php-cli                x86_64           5.1.6-39.el5_8            installed           5.3 M
 php-gd                 x86_64           5.1.6-39.el5_8            installed           333 k
 php-mbstring           x86_64           5.1.6-39.el5_8            installed           1.8 M
 php-mysql              x86_64           5.1.6-39.el5_8            installed           196 k
 php-pdo                x86_64           5.1.6-39.el5_8            installed           114 k

Transaction Summary
=============================================================================================
Remove        6 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y ←アンインストールをしていいかYES/NOと聞かれるので「y」と入力してEnter
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : php-mysql                                                             1/6
  Erasing        : php-gd                                                                2/6
  Erasing        : php-pdo                                                               3/6
  Erasing        : php-cli                                                               4/6
  Erasing        : php-mbstring                                                          5/6
  Erasing        : php-common                                                            6/6

Removed:
  php-common.x86_64 0:5.1.6-39.el5_8

Dependency Removed:
  php-cli.x86_64 0:5.1.6-39.el5_8                php-gd.x86_64 0:5.1.6-39.el5_8
  php-mbstring.x86_64 0:5.1.6-39.el5_8           php-mysql.x86_64 0:5.1.6-39.el5_8
  php-pdo.x86_64 0:5.1.6-39.el5_8

Complete!

このように「yumコマンド」でアンインストールをすれば「php-common」と依存関係にある「php-mbstring」「php-cli」「php-pdo」「php-gd」「php-mysql」も同時に削除されます。
どのパッケージが依存関係にあるのかわからない時は、「yumコマンド」を利用すると後にパッケージが競合してしまうミスを防ぐことができます。


PHP5.4のインストール

ここで前回の投稿で追加した外部リポジトリを利用します。現在追加した外部リポジトリで提供されるものも含めて、インストール可能なパッケージの検索は以下のコマンドで確認できます。

# yum list | grep php

リストを見ると「PHP5.4」が1番新しいようなので、インストールします。

前回外部リポジトリの優先順位を設定した際に各リポジトリの設定を「enabled=0」で無効にしたため「–enablerepo=remi,epel,ius」オプションを追加して有効にします。

# yum install --enablerepo=remi,epel,ius php54

Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: mirror.centos.org
 * base: www.ftp.ne.jp
 * contrib: mirror.centos.org
 * epel: ftp.iij.ad.jp
 * extras: www.ftp.ne.jp
 * ius: mirror.rackspace.hk
 * updates: www.ftp.ne.jp
275 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php54.x86_64 0:5.4.6-2.ius.el5 set to be updated
--> Processing Dependency: php54-common = 5.4.6-2.ius.el5 for package: php54
--> Processing Dependency: php54-cli = 5.4.6-2.ius.el5 for package: php54
--> Running transaction check
---> Package php54-cli.x86_64 0:5.4.6-2.ius.el5 set to be updated
--> Processing Dependency: libedit.so.0()(64bit) for package: php54-cli
---> Package php54-common.x86_64 0:5.4.6-2.ius.el5 set to be updated
--> Running transaction check
---> Package libedit.x86_64 0:2.11-2.20080712cvs.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================
 Package               Arch            Version                           Repository     Size
=============================================================================================
Installing:
 php54                 x86_64          5.4.6-2.ius.el5                   ius           3.1 M
Installing for dependencies:
 libedit               x86_64          2.11-2.20080712cvs.el5            epel           80 k
 php54-cli             x86_64          5.4.6-2.ius.el5                   ius           2.9 M
 php54-common          x86_64          5.4.6-2.ius.el5                   ius           1.0 M

Transaction Summary
=============================================================================================
Install       4 Package(s)
Upgrade       0 Package(s)

Total download size: 7.0 M
Is this ok [y/N]: y ←インストールをしていいかYES/NOと聞かれるので「y」と入力してEnter
Downloading Packages:
(1/4): libedit-2.11-2.20080712cvs.el5.x86_64.rpm                      |  80 kB     00:00
(2/4): php54-common-5.4.6-2.ius.el5.x86_64.rpm                        | 1.0 MB     00:02
(3/4): php54-cli-5.4.6-2.ius.el5.x86_64.rpm                           | 2.9 MB     00:03
(4/4): php54-5.4.6-2.ius.el5.x86_64.rpm                               | 3.1 MB     00:03
---------------------------------------------------------------------------------------------
Total                                                        654 kB/s | 7.0 MB     00:10
警告: rpmts_HdrFromFdno: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6
epel/gpgkey                                                           | 1.7 kB     00:00
Importing GPG key 0x217521F6 "Fedora EPEL " from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Is this ok [y/N]: y ←RPM-GPG-KEY-EPEL-KEYをインストールをしていいかYES/NOと聞かれるので「y」と入力してEnter
warning: rpmts_HdrFromFdno: Header V4 DSA signature: NOKEY, key ID 9cd4953f
ius/gpgkey                                                            | 1.3 kB     00:00
Importing GPG key 0x9CD4953F "IUS Community Project " from /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY
Is this ok [y/N]: y ←IUS-COMMUNITY-GPG-KEYをインストールをしていいかYES/NOと聞かれるので「y」と入力してEnter
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : php54-common                                                          1/4
  Installing     : libedit                                                               2/4
  Installing     : php54-cli                                                             3/4
  Installing     : php54                                                                 4/4

Installed:
  php54.x86_64 0:5.4.6-2.ius.el5

Dependency Installed:
  libedit.x86_64 0:2.11-2.20080712cvs.el5         php54-cli.x86_64 0:5.4.6-2.ius.el5
  php54-common.x86_64 0:5.4.6-2.ius.el5

Complete!

これで「php54」の他に依存関係にある「libedit」「php54-cli」「php54-common」も同時にインストールできました。

GPG-KEYについて補足

GPGキー」とは各リポジトリやディストリビューションの提供する「署名用の鍵」で、ファイルの偽造防止のために利用されます。
今回のように初回利用時にインストールされます。フィンガープリントを確認してインストールしたい場合は、各ディストリビューションのサイトにアクセスして入手してください。

参考までにRed Hatの例

https://access.redhat.com/security/team/key/

また、正当性の証明には「PGP Key Server」を利用しても確保できます。
鍵のID(上記の例で言えばEPELであれば0x217521F6)を入力して内容を確認します。

PGP Key Serverのリンク

http://pgp.mit.edu/
http://pgp.nic.ad.jp/pgp/

続けてアンインストールされて、まだインストールされていないパッケージをインストール

今回は「php54-mysql」「php54-gd」「php54-pdo」「php54-mbstring」です。続けて指定する時はスペースで区切ります。

# yum install --enablerepo=remi,epel,ius php54-mysql php54-gd php54-pdo php54-mbstring

Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: mirror.centos.org
 * base: www.ftp.ne.jp
 * contrib: mirror.centos.org
 * epel: ftp.iij.ad.jp
 * extras: www.ftp.ne.jp
 * ius: mirror.sothatswhy.org.uk
 * updates: www.ftp.ne.jp
0 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php54-gd.x86_64 0:5.4.6-2.ius.el5 set to be updated
--> Processing Dependency: libt1.so.5()(64bit) for package: php54-gd
--> Processing Dependency: libXpm.so.4()(64bit) for package: php54-gd
---> Package php54-mbstring.x86_64 0:5.4.6-2.ius.el5 set to be updated
---> Package php54-mysql.x86_64 0:5.4.6-2.ius.el5 set to be updated
---> Package php54-pdo.x86_64 0:5.4.6-2.ius.el5 set to be updated
--> Running transaction check
---> Package libXpm.x86_64 0:3.5.5-3 set to be updated
---> Package t1lib.x86_64 0:5.1.1-9.el5 set to be updated
--> Processing Dependency: libXaw.so.7()(64bit) for package: t1lib
--> Running transaction check
---> Package libXaw.x86_64 0:1.0.2-8.1 set to be updated
--> Processing Dependency: libXmu.so.6()(64bit) for package: libXaw
--> Running transaction check
---> Package libXmu.x86_64 0:1.0.2-5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================================================================================================
 Package                                   Arch                              Version                                      Repository                       Size
================================================================================================================================================================
Installing:
 php54-gd                                  x86_64                            5.4.6-2.ius.el5                              ius                             192 k
 php54-mbstring                            x86_64                            5.4.6-2.ius.el5                              ius                             1.2 M
 php54-mysql                               x86_64                            5.4.6-2.ius.el5                              ius                             157 k
 php54-pdo                                 x86_64                            5.4.6-2.ius.el5                              ius                             104 k
Installing for dependencies:
 libXaw                                    x86_64                            1.0.2-8.1                                    base                            329 k
 libXmu                                    x86_64                            1.0.2-5                                      base                             63 k
 libXpm                                    x86_64                            3.5.5-3                                      base                             44 k
 t1lib                                     x86_64                            5.1.1-9.el5                                  epel                            208 k

Transaction Summary
================================================================================================================================================================
Install       8 Package(s)
Upgrade       0 Package(s)

Total download size: 2.3 M
Is this ok [y/N]: y ←インストールをしていいかYES/NOと聞かれるので「y」と入力してEnter
Downloading Packages:
(1/8): libXpm-3.5.5-3.x86_64.rpm                                                                                                         |  44 kB     00:00
(2/8): libXmu-1.0.2-5.x86_64.rpm                                                                                                         |  63 kB     00:00
(3/8): php54-pdo-5.4.6-2.ius.el5.x86_64.rpm                                                                                              | 104 kB     00:00
(4/8): php54-mysql-5.4.6-2.ius.el5.x86_64.rpm                                                                                            | 157 kB     00:00
(5/8): php54-gd-5.4.6-2.ius.el5.x86_64.rpm                                                                                               | 192 kB     00:01
(6/8): t1lib-5.1.1-9.el5.x86_64.rpm                                                                                                      | 208 kB     00:00
(7/8): libXaw-1.0.2-8.1.x86_64.rpm                                                                                                       | 329 kB     00:00
(8/8): php54-mbstring-5.4.6-2.ius.el5.x86_64.rpm                                                                                         | 1.2 MB     00:01
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                           396 kB/s | 2.3 MB     00:05
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libXpm                                                                                                                                   1/8
  Installing     : libXmu                                                                                                                                   2/8
  Installing     : libXaw                                                                                                                                   3/8
  Installing     : t1lib                                                                                                                                    4/8
  Installing     : php54-pdo                                                                                                                                5/8
  Installing     : php54-mbstring                                                                                                                           6/8
  Installing     : php54-gd                                                                                                                                 7/8
  Installing     : php54-mysql                                                                                                                              8/8

Installed:
  php54-gd.x86_64 0:5.4.6-2.ius.el5    php54-mbstring.x86_64 0:5.4.6-2.ius.el5    php54-mysql.x86_64 0:5.4.6-2.ius.el5    php54-pdo.x86_64 0:5.4.6-2.ius.el5

Dependency Installed:
  libXaw.x86_64 0:1.0.2-8.1               libXmu.x86_64 0:1.0.2-5               libXpm.x86_64 0:3.5.5-3               t1lib.x86_64 0:5.1.1-9.el5

Complete!

これでPHP関連のパッケージは新しくなりました。

しかしこのままだと後に設定する「MySQL」で「mcrypt 拡張をロードできません。PHP の設定を確認してください」とアラートが出るので、ついでに「mcrypt」もインストールしておきます。

# yum install --enablerepo=remi,epel,ius php54-mcrypt

Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: mirror.centos.org
 * base: www.ftp.ne.jp
 * contrib: mirror.centos.org
 * epel: ftp.iij.ad.jp
 * extras: www.ftp.ne.jp
 * ius: mirror.sothatswhy.org.uk
 * updates: www.ftp.ne.jp
0 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php54-mcrypt.x86_64 0:5.4.6-2.ius.el5 set to be updated
--> Processing Dependency: libltdl.so.3()(64bit) for package: php54-mcrypt
--> Running transaction check
---> Package libtool-ltdl.x86_64 0:1.5.22-7.el5_4 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================================================================================================
 Package                                  Arch                               Version                                     Repository                        Size
================================================================================================================================================================
Installing:
 php54-mcrypt                             x86_64                             5.4.6-2.ius.el5                             ius                               31 k
Installing for dependencies:
 libtool-ltdl                             x86_64                             1.5.22-7.el5_4                              base                              38 k

Transaction Summary
================================================================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 69 k
Is this ok [y/N]: y ←インストールをしていいかYES/NOと聞かれるので「y」と入力してEnter
Downloading Packages:
(1/2): php54-mcrypt-5.4.6-2.ius.el5.x86_64.rpm                                                                                           |  31 kB     00:00
(2/2): libtool-ltdl-1.5.22-7.el5_4.x86_64.rpm                                                                                            |  38 kB     00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                            52 kB/s |  69 kB     00:01
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libtool-ltdl                                                                                                                             1/2
  Installing     : php54-mcrypt                                                                                                                             2/2

Installed:
  php54-mcrypt.x86_64 0:5.4.6-2.ius.el5

Dependency Installed:
  libtool-ltdl.x86_64 0:1.5.22-7.el5_4

Complete!

依存関係にある「libtool-ltdl」も同時にインストールされています。
これでPHPに関連したインストール作業は終わりです。


インストールしたPHPのバージョンを確認

下記のコマンドで、インストールしたバージョンを確認します。

# php -v

PHP 5.4.6 (cli) (built: Aug 21 2012 10:04:55)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies

バージョンが確認できたら、Apacheを再起動してPHPを有効にします。

# /etc/rc.d/init.d/httpd restart

phpinfoファイルを作ってApache上で動作確認

Apacheの公開ディレクトリ(例ではhoge)に「phpinfo.php」を作成します。

# vi /var/www/hoge/phpinfo.php

viエディタでファイルを作成して以下の内容で保存してください。またはローカルでファイルを作成して、WinSCP等で公開ディレクトリへファイルをアップロードしてください。

<?php
  phpinfo();
?>

編集が終了したらアクセスして確認します。(example.comは自分のドメインに置き換えてください)

http://example.com/phpinfo.php

以下のような画面が出たら正常に動作しています。


PHPの初期設定

PHPのバージョンを確認できたので、基本的な設定をしていきます。設定ファイルは「/etc/php.ini」にあります。
まずは設定ファイルを編集する前のセオリー、バックアップを作成してから、viで編集します。

# cd /etc
# cp php.ini php.ini.org
# vi php.ini

viで「php.ini」を開いたらコマンドモードで以下のコマンドを打つと行番号が表示されます。解説にある○行目という場所を探す際にご利用ください。

:set number

もしくはコマンドモードで「/(スラッシュ)」の後に検索したいワードを入力して、Enterでヒットした場所に移動することもできます。(以下はdate.timezoneを検索する例)

/date.timezone ←コマンドモードで入力したらEnter

タイムゾーンの設定

タイムゾーンが設定されていないと、時間で動作するプログラムが誤作動する危険があります。
880行目当たり[Date]セクションにある「date.timezone」を編集します。

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
date.timezone = Asia/Tokyo

エラーログの設定

デバック作業の強い味方、エラーログについて設定します。

584行目あたりを外して編集します。ログを書きだす場所はどこでもいいですが、せっかくログ用のディレクトリが用意されているので「/var/log/」にまとめておきます。

; Example:
;error_log = php_errors.log
error_log = /var/log/php_errors.log
; Log errors to syslog (Event Log on NT, not valid in Windows 95).

日本語を利用できるように設定

マルチバイト文字を利用できるようにします。(php_mbstring.dllはWindows用のものなので設定の必要はありません)
1679行目あたり、[mbstring]セクションを編集します。
mbstring.language」のコメントアウトを削除。
mbstring.internal_encoding」のコメントアウトを削除して、「UTF-8」へ変更。
mbstring.http_input」と「bstring.http_output」は「pass」に変更。

[mbstring]
; language for internal character representation.
; http://php.net/mbstring.language
;mbstring.language = Japanese
mbstring.language = Japanese

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
; http://php.net/mbstring.internal-encoding
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8

; http input encoding.
; http://php.net/mbstring.http-input
;mbstring.http_input = auto
mbstring.http_input = pass

; http output encoding. mb_output_handler must be
; registered as output buffer to function
; http://php.net/mbstring.http-output
;mbstring.http_output = SJIS
mbstring.http_output = pass

1679行目あたり「mbstring.detect_order」を「auto」から「UTF-8,EUC-JP,SJIS,JIS,ASCII」へ変更。autoだとアスキーなどのエンコードが優先されるため、明示的に指定します。

; automatic encoding detection order.
; auto means
; http://php.net/mbstring.detect-order
;mbstring.detect_order = auto
mbstring.detect_order = UTF-8,EUC-JP,SJIS,JIS,ASCII

イースタエッグ隠し!

遊び心を殺すようで心苦しいですが、余計な表示は出ないほうがいいので、1688行目あたり「expose_php」を「Off」にします。

; http://php.net/expose-php
;expose_php = On
expose_php = Off

モジュールのパスを設定

最後に確認で770行目あたり、モジュールのパスが設定されているか調べてください。

extension_dir = /usr/lib64/php/modules

32bitの場合は「/usr/lib/php/modules」になります。

以上で基本的なPHPの設定は完了です。変更した設定ファイルを保存してください。

ログファイルを作成

先ほど設定したログファイルを作成してPHPの実行ユーザー(Apacheの実行ユーザー)に書き込みの権限を与えます。

# touch /var/log/php_errors.log ←空のログファイルを作成
# chown root:www /var/log/php_errors.log ←rootとグループにwww(Apacheの実行ユーザー)を追加
# chmod 660 /var/log/php_errors.log ←グループユーザーにも書き込み権限を与える

最後にApacheを再起動します。

# /etc/rc.d/init.d/httpd restart

最後に「phpinfo.php」で設定が有効になっているか確認してください。

確認が終わったら「phpinfo.php」を削除、または外部からアクセスできない場所に移動しておいてください。悪意ある利用者に不要な情報を与えるため、セキュリティ上のリスクになります。

これでPHPのバージョンアップが完了しました。
次は「目を見張るスピードで進化を続けるMySQLのバージョンアップと初期設定」を解説します。