Locked

CentOS_TIPS_015

CentOS6/SCLによるapache/mod_php5.4対応

  • 公式サイトURL

https://wiki.centos.org/AdditionalResources/Repositories/SCL

  • 参考URL

http://developers.redhat.com/blog/2013/08/01/php-5-4-on-rhel-6-using-rhscl/

php5.4インストール

SCLリポジトリを使えるように設定しておきます。

既にphp5.3で利用している場合、インストール済みのパッケージを確認し、同じように5.4系のパッケージをインストールします。

$ rpm -qa php-*
(インストール済みのパッケージ群)

# yum list php54-php-*
(php54でインストール可能なパッケージ群)

WordPressを動作させている場合は、最低限、以下のパッケージが必要になるでしょう。

# yum install php54 php54-php php54-php-dba php54-php-gd php54-php-mbstring php54-php-mysqlnd php54-php-pdo

php.iniは/opt/rh/php54/root/etc/php.iniに配置され/適宜修正します。

$ ls /opt/rh/php54/root/etc/php.ini
/opt/rh/php54/root/etc/php.ini

PEARパッケージ更新

OS標準状態を確認。

$ php -v
PHP 5.3.3 (cli) (built: Feb  9 2016 10:36:17)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

$ pear list
Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.3.7   stable
Auth_SASL        1.0.6   stable
Console_Getopt   1.2.3   stable
Mail_Mime        1.8.4   stable
Mail_mimeDecode  1.5.5   stable
Net_IDNA2        0.1.1   beta
Net_SMTP         1.6.1   stable
Net_Sieve        1.3.4   stable
Net_Socket       1.0.10  stable
PEAR             1.9.4   stable
Structures_Graph 1.0.4   stable
XML_RPC          1.5.4   stable
XML_Util         1.2.1   stable

SCLによる環境切替を行い、必要に応じてPEARパッケージのインストール/更新を行います。
Roundcubemailを動作させている場合は、以下のような更新が必要になるでしょう。

# scl -l
php54

# scl enable php54 bash

# php -v
PHP 5.4.16 (cli) (built: Nov 19 2014 08:05:17)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

# pear channel-update pear.php.net

# pear list
Installed packages, channel pear.php.net:
=========================================
Package          Version State
Archive_Tar      1.3.11  stable
Console_Getopt   1.3.1   stable
PEAR             1.9.4   stable
Structures_Graph 1.0.4   stable
XML_Util         1.2.1   stable

大抵の場合は不要なはずですが、OS標準パッケージでの提供/更新が遅い場合等、強制的にバージョンアップが必要な場合。

# pear list-upgrades
pear.php.net Available Upgrades (stable):
=========================================
Channel      Package        Local          Remote          Size
...(略)
pear.php.net PEAR           1.9.4 (stable) 1.10.1 (stable) 285kB
...(略)

# pear upgrade --force PEAR-1.10.1

# pear list
Installed packages, channel pear.php.net:
=========================================
Package           Version State
Archive_Tar       1.4.2   stable
Console_Getopt    1.4.1   stable
PEAR              1.10.1  stable
Structures_Graph  1.1.1   stable
XML_Util          1.3.0   stable

# pear list-upgrades
Channel pear.php.net: No upgrades available

必要に応じてパッケージをインストール。

# pear install Mail_Mime
# pear install Mail_mimeDecode
# pear install MDB2
# pear install MDB2_Driver_mysql
# pear install Net_Socket
# pear install Net_SMTP
# pear install Auth_SASL
# pear install Net_Sieve
# pear install DB
# pear install XML_RPC
# pear install --force Net_IDNA2

# pear list
Installed packages, channel pear.php.net:
=========================================
Package           Version State
Archive_Tar       1.3.11  stable
Auth_SASL         1.0.6   stable
Console_Getopt    1.3.1   stable
DB                1.9.2   stable
MDB2              2.4.1   stable
MDB2_Driver_mysql 1.4.1   stable
Mail_Mime         1.10.0  stable
Mail_mimeDecode   1.5.5   stable
Net_IDNA2         0.1.1   beta
Net_SMTP          1.7.1   stable
Net_Sieve         1.3.4   stable
Net_Socket        1.0.14  stable
PEAR              1.9.4   stable
Structures_Graph  1.0.4   stable
XML_RPC           1.5.5   stable
XML_Util          1.2.1   stable

apacheへの適用

既にmod_php(5.3版)がインストールされて/使用している場合は、apache定義が重複するため、既存の設定ファイルを空にします。
ここでは、既存のファイルを「php.conf.org」とリネームしています。

# service httpd configtest
[Sun Mar 27 17:01:34 2016] [warn] module php5_module is already loaded, skipping
Syntax OK

# mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.org && touch /etc/httpd/conf.d/php.conf

# service httpd configtest
Syntax OK

apacheプロセスをリスタートして、ウェブアプリケーションの動作確認を行います。

# service httpd restart