CentOS 5 の場合、yumを使って デフォルトでインストールされるのは、PHP5.1系です。
また、CentOS 6 Scientific Linux 6 の場合、デフォルトでPHP5.3系がインストールされます。
ここでは、最新バージョンの5.4系の最新版 (現在(2012.07)では、5.4.4) をインストールしてみます。
php5.4系の最新版をインストール
php5.4系の最新版のあるリポジトリをインストールします。
現在、インストール済のphpをアンインストールします。
- 現在のインストール済phpパッケージを確認する。
$ rpm -qa | grep php
php-5.3.3-3.el6
php-common-5.3.3-3.el6
php-cli-5.3.3-3.el6
|
- インストール済phpパッケージをすべて削除する。
$ yum erase php-cli php-common php
yum remove php-cli php-common php php-ldap php
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.3.3-3.el6 set to be erased
---> Package php-cli.x86_64 0:5.3.3-3.el6 set to be erased
---> Package php-common.x86_64 0:5.3.3-3.el6 set to be erased
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package Arch Version Repository Size
==========================================================================================
Removing:
php x86_64 5.3.3-3.el6 installed 6.2 M
php-cli x86_64 5.3.3-3.el6 installed 5.3 M
php-common x86_64 5.3.3-3.el6 installed 397 k
Transaction Summary
==========================================================================================
Remove 3 Package(s)
Reinstall 0 Package(s)
Downgrade 0 Package(s)
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : php-cli 1/3
Erasing : php-common 2/3
Erasing : php 3/3
Removed:
php.x86_64 0:5.3.3-3.el6 php-cli.x86_64 0:5.3.3-3.el6
php-common.x86_64 0:5.3.3-3.el6
Complete!
|
php5.4系の最新版をインストールする。
$ yum -y install php54-cli php54-pdo php54-mysql php54-common php54 php54-cgi php54-fpm php54-devel php54-gd php54-mbstring php54-odbc php54-pear php54-snmp php54-bcmath php54-xmlrpc php54-tidy php54-xml php54-mssql php54-soap php54-pgsql
Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* epel: ftp.kddilabs.jp
* extras: centos.mirror.cdnetworks.com
* ius: mirror.sothatswhy.org.uk
* updates: www.ftp.ne.jp
67 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php54.i686 0:5.4.4-1.ius.el6 will be installed
--> Processing Dependency: httpd-mmn = 20051115 for package: php54-5.4.4-1.ius.el6.i686
--> Processing Dependency: httpd for package: php54-5.4.4-1.ius.el6.i686
---> Package php54-bcmath.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-cli.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-common.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-devel.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-fpm.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-gd.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-mbstring.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-mssql.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-mysql.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-odbc.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-pdo.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-pear.noarch 1:1.9.4-1.ius.el6 will be installed
---> Package php54-pgsql.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-snmp.i686 0:5.4.4-1.ius.el6 will be installed
--> Processing Dependency: net-snmp for package: php54-snmp-5.4.4-1.ius.el6.i686
---> Package php54-soap.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-tidy.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-xml.i686 0:5.4.4-1.ius.el6 will be installed
---> Package php54-xmlrpc.i686 0:5.4.4-1.ius.el6 will be installed
--> Running transaction check
---> Package httpd.i686 0:2.2.15-15.el6.centos.1 will be installed
--> Processing Dependency: httpd-tools = 2.2.15-15.el6.centos.1 for package: httpd-2.2.15-15.el6.centos.1.i686
---> Package net-snmp.i686 1:5.5-41.el6 will be installed
--> Running transaction check
---> Package httpd-tools.i686 0:2.2.15-15.el6.centos.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
php54 i686 5.4.4-1.ius.el6 ius 2.5 M
php54-bcmath i686 5.4.4-1.ius.el6 ius 21 k
php54-cli i686 5.4.4-1.ius.el6 ius 2.5 M
php54-common i686 5.4.4-1.ius.el6 ius 854 k
php54-devel i686 5.4.4-1.ius.el6 ius 2.4 M
php54-fpm i686 5.4.4-1.ius.el6 ius 1.3 M
php54-gd i686 5.4.4-1.ius.el6 ius 112 k
php54-mbstring i686 5.4.4-1.ius.el6 ius 901 k
php54-mssql i686 5.4.4-1.ius.el6 ius 34 k
php54-mysql i686 5.4.4-1.ius.el6 ius 101 k
php54-odbc i686 5.4.4-1.ius.el6 ius 46 k
php54-pdo i686 5.4.4-1.ius.el6 ius 87 k
php54-pear noarch 1:1.9.4-1.ius.el6 ius 380 k
php54-pgsql i686 5.4.4-1.ius.el6 ius 79 k
php54-snmp i686 5.4.4-1.ius.el6 ius 28 k
php54-soap i686 5.4.4-1.ius.el6 ius 186 k
php54-tidy i686 5.4.4-1.ius.el6 ius 26 k
php54-xml i686 5.4.4-1.ius.el6 ius 136 k
php54-xmlrpc i686 5.4.4-1.ius.el6 ius 43 k
Installing for dependencies:
httpd i686 2.2.15-15.el6.centos.1 base 819 k
httpd-tools i686 2.2.15-15.el6.centos.1 base 70 k
net-snmp i686 1:5.5-41.el6 base 301 k
Transaction Summary
================================================================================
Install 22 Package(s)
Total download size: 13 M
Installed size: 48 M
Downloading Packages:
(1/22): httpd-2.2.15-15.el6.centos.1.i686.rpm | 819 kB 00:00
(2/22): httpd-tools-2.2.15-15.el6.centos.1.i686.rpm | 70 kB 00:00
(3/22): net-snmp-5.5-41.el6.i686.rpm | 301 kB 00:00
(4/22): php54-5.4.4-1.ius.el6.i686.rpm | 2.5 MB 00:02
(5/22): php54-bcmath-5.4.4-1.ius.el6.i686.rpm | 21 kB 00:00
(6/22): php54-cli-5.4.4-1.ius.el6.i686.rpm | 2.5 MB 00:00
(7/22): php54-common-5.4.4-1.ius.el6.i686.rpm | 854 kB 00:00
(8/22): php54-devel-5.4.4-1.ius.el6.i686.rpm | 2.4 MB 00:00
(9/22): php54-fpm-5.4.4-1.ius.el6.i686.rpm | 1.3 MB 00:00
(10/22): php54-gd-5.4.4-1.ius.el6.i686.rpm | 112 kB 00:00
(11/22): php54-mbstring-5.4.4-1.ius.el6.i686.rpm | 901 kB 00:00
(12/22): php54-mssql-5.4.4-1.ius.el6.i686.rpm | 34 kB 00:00
(13/22): php54-mysql-5.4.4-1.ius.el6.i686.rpm | 101 kB 00:00
(14/22): php54-odbc-5.4.4-1.ius.el6.i686.rpm | 46 kB 00:00
(15/22): php54-pdo-5.4.4-1.ius.el6.i686.rpm | 87 kB 00:00
(16/22): php54-pear-1.9.4-1.ius.el6.noarch.rpm | 380 kB 00:00
(17/22): php54-pgsql-5.4.4-1.ius.el6.i686.rpm | 79 kB 00:00
(18/22): php54-snmp-5.4.4-1.ius.el6.i686.rpm | 28 kB 00:00
(19/22): php54-soap-5.4.4-1.ius.el6.i686.rpm | 186 kB 00:00
(20/22): php54-tidy-5.4.4-1.ius.el6.i686.rpm | 26 kB 00:00
(21/22): php54-xml-5.4.4-1.ius.el6.i686.rpm | 136 kB 00:00
(22/22): php54-xmlrpc-5.4.4-1.ius.el6.i686.rpm | 43 kB 00:00
--------------------------------------------------------------------------------
Total 1.2 MB/s | 13 MB 00:10
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php54-common-5.4.4-1.ius.el6.i686 1/22
Installing : php54-pdo-5.4.4-1.ius.el6.i686 2/22
Installing : php54-cli-5.4.4-1.ius.el6.i686 3/22
Installing : httpd-tools-2.2.15-15.el6.centos.1.i686 4/22
Installing : httpd-2.2.15-15.el6.centos.1.i686 5/22
Installing : php54-5.4.4-1.ius.el6.i686 6/22
Installing : 1:net-snmp-5.5-41.el6.i686 7/22
Installing : php54-snmp-5.4.4-1.ius.el6.i686 8/22
Installing : php54-devel-5.4.4-1.ius.el6.i686 9/22
Installing : 1:php54-pear-1.9.4-1.ius.el6.noarch 10/22
Installing : php54-pgsql-5.4.4-1.ius.el6.i686 11/22
Installing : php54-mysql-5.4.4-1.ius.el6.i686 12/22
Installing : php54-mssql-5.4.4-1.ius.el6.i686 13/22
Installing : php54-odbc-5.4.4-1.ius.el6.i686 14/22
Installing : php54-fpm-5.4.4-1.ius.el6.i686 15/22
Installing : php54-soap-5.4.4-1.ius.el6.i686 16/22
Installing : php54-mbstring-5.4.4-1.ius.el6.i686 17/22
Installing : php54-bcmath-5.4.4-1.ius.el6.i686 18/22
Installing : php54-tidy-5.4.4-1.ius.el6.i686 19/22
Installing : php54-xmlrpc-5.4.4-1.ius.el6.i686 20/22
Installing : php54-gd-5.4.4-1.ius.el6.i686 21/22
Installing : php54-xml-5.4.4-1.ius.el6.i686 22/22
Verifying : php54-pgsql-5.4.4-1.ius.el6.i686 1/22
Verifying : php54-fpm-5.4.4-1.ius.el6.i686 2/22
Verifying : php54-devel-5.4.4-1.ius.el6.i686 3/22
Verifying : php54-snmp-5.4.4-1.ius.el6.i686 4/22
Verifying : php54-soap-5.4.4-1.ius.el6.i686 5/22
Verifying : 1:net-snmp-5.5-41.el6.i686 6/22
Verifying : httpd-tools-2.2.15-15.el6.centos.1.i686 7/22
Verifying : php54-cli-5.4.4-1.ius.el6.i686 8/22
Verifying : httpd-2.2.15-15.el6.centos.1.i686 9/22
Verifying : php54-mbstring-5.4.4-1.ius.el6.i686 10/22
Verifying : php54-bcmath-5.4.4-1.ius.el6.i686 11/22
Verifying : php54-pdo-5.4.4-1.ius.el6.i686 12/22
Verifying : php54-mysql-5.4.4-1.ius.el6.i686 13/22
Verifying : php54-mssql-5.4.4-1.ius.el6.i686 14/22
Verifying : php54-tidy-5.4.4-1.ius.el6.i686 15/22
Verifying : php54-xmlrpc-5.4.4-1.ius.el6.i686 16/22
Verifying : php54-gd-5.4.4-1.ius.el6.i686 17/22
Verifying : php54-xml-5.4.4-1.ius.el6.i686 18/22
Verifying : 1:php54-pear-1.9.4-1.ius.el6.noarch 19/22
Verifying : php54-common-5.4.4-1.ius.el6.i686 20/22
Verifying : php54-5.4.4-1.ius.el6.i686 21/22
Verifying : php54-odbc-5.4.4-1.ius.el6.i686 22/22
Installed:
php54.i686 0:5.4.4-1.ius.el6 php54-bcmath.i686 0:5.4.4-1.ius.el6
php54-cli.i686 0:5.4.4-1.ius.el6 php54-common.i686 0:5.4.4-1.ius.el6
php54-devel.i686 0:5.4.4-1.ius.el6 php54-fpm.i686 0:5.4.4-1.ius.el6
php54-gd.i686 0:5.4.4-1.ius.el6 php54-mbstring.i686 0:5.4.4-1.ius.el6
php54-mssql.i686 0:5.4.4-1.ius.el6 php54-mysql.i686 0:5.4.4-1.ius.el6
php54-odbc.i686 0:5.4.4-1.ius.el6 php54-pdo.i686 0:5.4.4-1.ius.el6
php54-pear.noarch 1:1.9.4-1.ius.el6 php54-pgsql.i686 0:5.4.4-1.ius.el6
php54-snmp.i686 0:5.4.4-1.ius.el6 php54-soap.i686 0:5.4.4-1.ius.el6
php54-tidy.i686 0:5.4.4-1.ius.el6 php54-xml.i686 0:5.4.4-1.ius.el6
php54-xmlrpc.i686 0:5.4.4-1.ius.el6
Dependency Installed:
httpd.i686 0:2.2.15-15.el6.centos.1 httpd-tools.i686 0:2.2.15-15.el6.centos.1
net-snmp.i686 1:5.5-41.el6
Complete!
|
php をインストールした際、以下のようなエラーが出力されることがあります。
Error: Package: php54-mssql-5.4.4-1.ius.el6.i686 (ius)
Requires: libsybdb.so.5
|
これは、
sybdbというライブラリが存在しません・・ということなので、sybdbをインストールしてあげれば良いことになります。
sybdbライブラリは、
freetdsに含まれていますので、ここでは、freetdsをインストールします。
( freetdsは、リポジトリepelに存在します。)
freetds とは、
SybaseおよびMicrosoft SQL Serverのデータベースの通信ライブラリです。
まずは、リポジトリepelをインストールします。
$ wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
--2012-07-10 16:36:25-- http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
dl.fedoraproject.org をDNSに問いあわせています... 209.132.181.24, 209.132.181.25, 209.132.181.26, ...
dl.fedoraproject.org|209.132.181.24|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14496 (14K) [application/x-rpm]
`epel-release-6-7.noarch.rpm' に保存中
100%[======================================>] 14,496 --.-K/s 時間 0.1s
2012-07-10 16:36:25 (99.1 KB/s) - `epel-release-6-7.noarch.rpm' へ保存完了 [14496/14496]
$ rpm -Uvh epel-release-6-7.noarch.rpm
警告: epel-release-6-7.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中... ########################################### [100%]
1:epel-release ########################################### [100%]
$ vim /etc/yum.repos.d/epel.repo
...
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
...
|
リポジトリepel を有効にしたら、freetdsをインストールします。
$ yum install freetds
Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
epel/metalink | 4.7 kB 00:00
* base: www.ftp.ne.jp
* epel: ftp.kddilabs.jp
* extras: centos.mirror.cdnetworks.com
* ius: mirror.rackspace.hk
* updates: www.ftp.ne.jp
epel | 4.0 kB 00:00
epel/primary_db | 3.8 MB 00:00
67 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package freetds.i686 0:0.91-2.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
freetds i686 0.91-2.el6 epel 569 k
Transaction Summary
================================================================================
Install 1 Package(s)
Total download size: 569 k
Installed size: 2.6 M
Is this ok [y/N]: y
Downloading Packages:
freetds-0.91-2.el6.i686.rpm | 569 kB 00:00
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
Userid : EPEL (6)
Package: epel-release-6-7.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : freetds-0.91-2.el6.i686 1/1
Verifying : freetds-0.91-2.el6.i686 1/1
Installed:
freetds.i686 0:0.91-2.el6
Complete!
|
これでインストールできたはずですから、再度、phpのインストールを実行してみてください。
ここでは、必要と思われるパッケージを全てインストールしています。
既に不要なパッケージが分かっていれば、ここで削除しましょう。
最後にバージョンチェック
$ php -v
PHP 5.4.4 (cli) (built: Jun 14 2012 17:33:48)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
$ php-fpm -v
PHP 5.4.4 (fpm-fcgi) (built: Jun 14 2012 17:38:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
|
PHP 5.4.xx と出力されればOKです。
php-fpmも、ここでちゃんとインストールできているか確認しておきましょう。
現在(2012.07)の最新版は、5.4.4となります。
PHP
FPMとは、
FastCGI
Process
Manager の略で、PHP の FastCGI 実装・管理を行うためのものです。
(バージョン5.3.3以降PHPの公式ディストリビューションにバンドルされています。)
主に高負荷のサイトで有用な追加機能を用意していて、以下のような機能(特徴)があります。
-
異なる uid/gid/chroot/environment でのワーカーの開始、
異なるポートでのリスン、異なる php.ini の使用 (safe_mode の代替)
-
標準出力および標準エラー出力へのログ出力
-
opcode キャッシュが壊れた場合の緊急再起動
-
高速なアップロードのサポート
-
“slowlog” – 実行時間が非常に長いスクリプトの記録
(スクリプト名だけでなく、PHP バックトレースも記録します。バックトレースを取得するために、
ptrace やそれと同等の仕組みを使ってリモートプロセスの execute_data を読みます)
-
fastcgi_finish_request() – リクエストを終わらせてすべてのデータを出力した後で
何か時間のかかる処理 (動画の変換や統計情報の処理など)
をさせるための特殊な関数
-
動的/静的 な子プロセスの起動
-
基本的な SAPI の動作状況 (Apache の mod_status と同等)
-
php.ini ベースの設定ファイル
(出典: php公式サイト http://php.net/manual/ja/install.fpm.php )
バージョン確認時に以下のAPC関連のワーニングが出力されるかもしれません。
$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/apc.so' - /usr/lib/php/modules/apc.so: undefined symbol: php_pcre_exec in Unknown on line 0
PHP 5.4.4 (cli) (built: Jun 14 2012 17:33:48)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
|
これは、単純に古い(or バージョン不一致) APCライブラリがインストールされている場合に発生します。
つまりは、先の手順の中のphpのアンインストールで、全て削除しきれていなかったということです。少なくともapcに関しては、アンインストールできていないことになります。
単純にアンインストールすればOKです。
$ pecl uninstall apc
Unable to remove "extension=apc.so" from php.ini
uninstall ok: channel://pecl.php.net/APC-3.1.9
|
また、上記のphp5.4系のapcは、
pecl でインストールするとバージョンの不一致が発生しやすいので、
既に準備されているパッケージをインストールすることをおすすめします。
$ yum install php54-pecl-apc
Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: centos.mirror.cdnetworks.com
* epel: ftp.iij.ad.jp
* extras: centos.mirror.cdnetworks.com
* ius: mirror.rackspace.hk
* updates: centos.mirror.cdnetworks.com
67 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php54-pecl-apc.i686 0:3.1.10-1.ius.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
php54-pecl-apc i686 3.1.10-1.ius.el6 ius 96 k
Transaction Summary
================================================================================
Install 1 Package(s)
Total download size: 96 k
Installed size: 273 k
Is this ok [y/N]: y
Downloading Packages:
php54-pecl-apc-3.1.10-1.ius.el6.i686.rpm | 96 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php54-pecl-apc-3.1.10-1.ius.el6.i686 1/1
warning: /etc/php.d/apc.ini created as /etc/php.d/apc.ini.rpmnew
Verifying : php54-pecl-apc-3.1.10-1.ius.el6.i686 1/1
Installed:
php54-pecl-apc.i686 0:3.1.10-1.ius.el6
Complete!
|
先にも書きましたが、CentOS 6 Scientific Linux 6 の場合、デフォルトでPHP5.3系がインストールされます。
PHPも5.2系のメンテナンスは終了し、メインの安定バージョンは、5.4系となったこともあり、今回記事にしてみました。
5.4系は、機能アップに加えて 5.3系の処理速度の倍の速さ・・・という処理速度向上?(本当かどうか不明ですが、) そういうメリットもあるようです。
( 実際、非力な自宅のマシンへインストールしてみましたが、多少速くなったような・・・気がします。)
もちろん、アップグレードによる既存PHPコードの不具合は、避けられないかもしれませんが、いずれアップグレードをするのであれば、
既に5.4系の初期リリース(2011.03)から1年以上経過するので、そろそろ、5.4系への移行を考える時期に来ていると思います。
デフォルトでインストールされる 5.3 系も良いですが、ここは、5.4系の最新版をインストールしておくのも良いかもしれません。
まずは、お試しあれ。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事 :
コメントを投稿 :