
Apacheで動かしているWordPressをnginxに移行するための具体的な手順の続き。今回はPHP-FPMを準備する。
やろうとしている全体の目次は下記の概要を参照してほしい。
全体の目次
リポジトリの追加
PHP-FPMはRemiリポジトリからしか導入できないらしいので、Remiリポジトリを追加する。尚、参考にしていたSourceForge.JP MagazineではEPELリポジトリも追加していたが、自分の環境では追加済のためインストール時にエラーとなった。
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm --2013-11-09 14:50:42-- http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm dl.fedoraproject.org をDNSに問いあわせています... 209.132.181.27, 209.132.181.23, 209.132.181.26, ... dl.fedoraproject.org|209.132.181.27|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 14540 (14K) [application/x-rpm] `epel-release-6-8.noarch.rpm' に保存中 100%[========================================>] 14,540 --.-K/s 時間 0.1s 2013-11-09 14:50:43 (107 KB/s) - `epel-release-6-8.noarch.rpm' へ保存完了 [14540/14540] # rpm -ivh epel-release-6-8.noarch.rpm 準備中... ########################################### [100%] パッケージ epel-release-6-8.noarch は既にインストールされています。
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm --2013-11-09 14:52:13-- http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpms.famillecollet.com をDNSに問いあわせています... 195.154.241.117, 2a01:e0b:1000:18:be30:5bff:fed0:614 rpms.famillecollet.com|195.154.241.117|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 5584 (5.5K) [application/x-rpm] `remi-release-6.rpm' に保存中 100%[========================================>] 5,584 --.-K/s 時間 0s 2013-11-09 14:52:13 (88.5 MB/s) - `remi-release-6.rpm' へ保存完了 [5584/5584] # rpm -ivh remi-release-6.rpm 警告: remi-release-6.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 00f97f56: NOKEY 準備中... ########################################### [100%] 1:remi-release ########################################### [100%]
これでRemiリポジトリの追加が完了。
PHP-FPMのインストール
リポジトリが追加されたのでyumコマンドでPHP-FPMをインストールする。コマンドはこの2つでOKのはず。
# yum --enablerepo=remi install php-fpm # yum --enablerepo=remi update php php-fpm
ちなみに、参考にしていたSourceForge.JP Magazineではインストールコマンドがなくアップデートのみだったが、これではPHP-FPMはインストールされない。自分はアップデートの後にPHP-FPMのインストールをしている。そのログは下記。
# yum --enablerepo=remi update php php-fpm
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* epel: ftp.kddilabs.jp
* extras: www.ftp.ne.jp
* remi: mirror.smartmedia.net.id
* updates: www.ftp.ne.jp
remi | 2.9 kB 00:00
remi/primary_db | 597 kB 00:03
Setting up Update Process
Package(s) php-fpm available, but not installed.
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.3.3-14.el6_3 will be updated
--> Processing Dependency: php = 5.3.3-14.el6_3 for package: php-devel-5.3.3-14.el6_3.x86_64
---> Package php.x86_64 0:5.4.21-2.el6.remi will be an update
--> Processing Dependency: php-common(x86-64) = 5.4.21-2.el6.remi for package: php-5.4.21-2.el6.remi.x86_64
--> Processing Dependency: php-cli(x86-64) = 5.4.21-2.el6.remi for package: php-5.4.21-2.el6.remi.x86_64
--> Running transaction check
---> Package php-cli.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-cli.x86_64 0:5.4.21-2.el6.remi will be an update
---> Package php-common.x86_64 0:5.3.3-14.el6_3 will be updated
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-mbstring-5.3.3-14.el6_3.x86_64
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-gd-5.3.3-14.el6_3.x86_64
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-pdo-5.3.3-14.el6_3.x86_64
--> Processing Dependency: php-common = 5.3.3-14.el6_3 for package: php-mysql-5.3.3-14.el6_3.x86_64
---> Package php-common.x86_64 0:5.4.21-2.el6.remi will be an update
---> Package php-devel.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-devel.x86_64 0:5.4.21-2.el6.remi will be an update
--> Running transaction check
---> Package php-gd.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-gd.x86_64 0:5.4.21-2.el6.remi will be an update
--> Processing Dependency: libjpeg.so.62(LIBJPEG_6.2)(64bit) for package: php-gd-5.4.21-2.el6.remi.x86_64
--> Processing Dependency: libt1.so.5()(64bit) for package: php-gd-5.4.21-2.el6.remi.x86_64
---> Package php-mbstring.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-mbstring.x86_64 0:5.4.21-2.el6.remi will be an update
---> Package php-mysql.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-mysql.x86_64 0:5.4.21-2.el6.remi will be an update
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: php-mysql-5.4.21-2.el6.remi.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_16)(64bit) for package: php-mysql-5.4.21-2.el6.remi.x86_64
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: php-mysql-5.4.21-2.el6.remi.x86_64
---> Package php-pdo.x86_64 0:5.3.3-14.el6_3 will be updated
---> Package php-pdo.x86_64 0:5.4.21-2.el6.remi will be an update
--> Running transaction check
---> Package libjpeg.x86_64 0:6b-46.el6 will be obsoleted
---> Package libjpeg-turbo.x86_64 0:1.2.1-1.el6 will be obsoleting
---> Package mysql-libs.x86_64 0:5.1.66-2.el6_3 will be updated
--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: mysql-5.1.66-2.el6_3.x86_64
--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: 2:postfix-2.6.6-2.2.el6_1.x86_64
--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: mysql-server-5.1.66-2.el6_3.x86_64
--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: perl-DBD-MySQL-4.013-3.el6.x86_64
--> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: perl-DBD-MySQL-4.013-3.el6.x86_64
--> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: 2:postfix-2.6.6-2.2.el6_1.x86_64
--> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: mysql-server-5.1.66-2.el6_3.x86_64
--> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: mysql-5.1.66-2.el6_3.x86_64
--> Processing Dependency: libmysqlclient_r.so.16()(64bit) for package: mysql-server-5.1.66-2.el6_3.x86_64
--> Processing Dependency: libmysqlclient_r.so.16()(64bit) for package: mysql-5.1.66-2.el6_3.x86_64
--> Processing Dependency: libmysqlclient_r.so.16(libmysqlclient_16)(64bit) for package: mysql-server-5.1.66-2.el6_3.x86_64
--> Processing Dependency: libmysqlclient_r.so.16(libmysqlclient_16)(64bit) for package: mysql-5.1.66-2.el6_3.x86_64
--> Processing Dependency: mysql-libs = 5.1.66-2.el6_3 for package: mysql-5.1.66-2.el6_3.x86_64
---> Package mysql-libs.x86_64 0:5.5.34-1.el6.remi will be an update
---> Package t1lib.x86_64 0:5.1.2-6.el6_2.1 will be installed
--> Running transaction check
---> Package compat-mysql51.x86_64 0:5.1.54-1.el6.remi will be installed
---> Package mysql.x86_64 0:5.1.66-2.el6_3 will be updated
---> Package mysql.x86_64 0:5.5.34-1.el6.remi will be an update
---> Package mysql-server.x86_64 0:5.1.66-2.el6_3 will be updated
---> Package mysql-server.x86_64 0:5.5.34-1.el6.remi will be an update
--> Processing Dependency: libz.so.1(ZLIB_1.2.0)(64bit) for package: mysql-server-5.5.34-1.el6.remi.x86_64
--> Running transaction check
---> Package zlib.x86_64 0:1.2.3-27.el6 will be updated
---> Package zlib.x86_64 0:1.2.3-29.el6 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================
Package Arch Version Repository Size
==================================================================================
Installing:
libjpeg-turbo x86_64 1.2.1-1.el6 base 174 k
replacing libjpeg.x86_64 6b-46.el6
Updating:
php x86_64 5.4.21-2.el6.remi remi 2.7 M
Installing for dependencies:
compat-mysql51 x86_64 5.1.54-1.el6.remi remi 1.4 M
t1lib x86_64 5.1.2-6.el6_2.1 base 160 k
Updating for dependencies:
mysql x86_64 5.5.34-1.el6.remi remi 5.8 M
mysql-libs x86_64 5.5.34-1.el6.remi remi 775 k
mysql-server x86_64 5.5.34-1.el6.remi remi 10 M
php-cli x86_64 5.4.21-2.el6.remi remi 2.6 M
php-common x86_64 5.4.21-2.el6.remi remi 925 k
php-devel x86_64 5.4.21-2.el6.remi remi 2.5 M
php-gd x86_64 5.4.21-2.el6.remi remi 142 k
php-mbstring x86_64 5.4.21-2.el6.remi remi 943 k
php-mysql x86_64 5.4.21-2.el6.remi remi 134 k
php-pdo x86_64 5.4.21-2.el6.remi remi 119 k
zlib x86_64 1.2.3-29.el6 base 73 k
Transaction Summary
==================================================================================
Install 3 Package(s)
Upgrade 12 Package(s)
Total download size: 28 M
Is this ok [y/N]: y
Downloading Packages:
(1/15): compat-mysql51-5.1.54-1.el6.remi.x86_64.rpm | 1.4 MB 00:07
(2/15): libjpeg-turbo-1.2.1-1.el6.x86_64.rpm | 174 kB 00:00
(3/15): mysql-5.5.34-1.el6.remi.x86_64.rpm | 5.8 MB 00:31
(4/15): mysql-libs-5.5.34-1.el6.remi.x86_64.rpm | 775 kB 00:05
(5/15): mysql-server-5.5.34-1.el6.remi.x86_64.rpm | 10 MB 00:58
(6/15): php-5.4.21-2.el6.remi.x86_64.rpm | 2.7 MB 00:14
(7/15): php-cli-5.4.21-2.el6.remi.x86_64.rpm | 2.6 MB 00:14
(8/15): php-common-5.4.21-2.el6.remi.x86_64.rpm | 925 kB 00:05
(9/15): php-devel-5.4.21-2.el6.remi.x86_64.rpm | 2.5 MB 00:14
(10/15): php-gd-5.4.21-2.el6.remi.x86_64.rpm | 142 kB 00:00
(11/15): php-mbstring-5.4.21-2.el6.remi.x86_64.rpm | 943 kB 00:05
(12/15): php-mysql-5.4.21-2.el6.remi.x86_64.rpm | 134 kB 00:00
(13/15): php-pdo-5.4.21-2.el6.remi.x86_64.rpm | 119 kB 00:00
(14/15): t1lib-5.1.2-6.el6_2.1.x86_64.rpm | 160 kB 00:00
(15/15): zlib-1.2.3-29.el6.x86_64.rpm | 73 kB 00:00
----------------------------------------------------------------------------------
Total 181 kB/s | 28 MB 02:41
warning: rpmts_HdrFromFdno: Header V3 DSA/SHA1 Signature, key ID 00f97f56: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Importing GPG key 0x00F97F56:
Userid : Remi Collet <RPMS@FamilleCollet.com>
Package: remi-release-6.4-1.el6.remi.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Updating : zlib-1.2.3-29.el6.x86_64 1/28
Updating : php-common-5.4.21-2.el6.remi.x86_64 2/28
WARNING : These php-* RPM are not official Fedora / Red Hat build and
overrides the official ones. Don't file bugs on Fedora Project nor Red Hat.
Use dedicated forums http://forums.famillecollet.com/
warning: /etc/php.ini created as /etc/php.ini.rpmnew
Updating : mysql-libs-5.5.34-1.el6.remi.x86_64 3/28
WARNING : This MySQL RPM is not an official Fedora / Red Hat build and it
overrides the official one. Don't file bugs on Fedora Project nor Red Hat.
Use dedicated forums http://forums.famillecollet.com/
warning: /etc/my.cnf created as /etc/my.cnf.rpmnew
Updating : php-cli-5.4.21-2.el6.remi.x86_64 4/28
Updating : mysql-5.5.34-1.el6.remi.x86_64 5/28
Updating : php-pdo-5.4.21-2.el6.remi.x86_64 6/28
Installing : t1lib-5.1.2-6.el6_2.1.x86_64 7/28
Installing : libjpeg-turbo-1.2.1-1.el6.x86_64 8/28
Updating : php-gd-5.4.21-2.el6.remi.x86_64 9/28
Updating : php-mysql-5.4.21-2.el6.remi.x86_64 10/28
Updating : mysql-server-5.5.34-1.el6.remi.x86_64 11/28
Updating : php-devel-5.4.21-2.el6.remi.x86_64 12/28
Updating : php-5.4.21-2.el6.remi.x86_64 13/28
Updating : php-mbstring-5.4.21-2.el6.remi.x86_64 14/28
Installing : compat-mysql51-5.1.54-1.el6.remi.x86_64 15/28
Cleanup : php-devel-5.3.3-14.el6_3.x86_64 16/28
Cleanup : php-mysql-5.3.3-14.el6_3.x86_64 17/28
Cleanup : php-5.3.3-14.el6_3.x86_64 18/28
Cleanup : php-gd-5.3.3-14.el6_3.x86_64 19/28
Cleanup : mysql-server-5.1.66-2.el6_3.x86_64 20/28
Cleanup : mysql-5.1.66-2.el6_3.x86_64 21/28
Cleanup : php-cli-5.3.3-14.el6_3.x86_64 22/28
Cleanup : mysql-libs-5.1.66-2.el6_3.x86_64 23/28
Cleanup : php-pdo-5.3.3-14.el6_3.x86_64 24/28
Cleanup : php-mbstring-5.3.3-14.el6_3.x86_64 25/28
Cleanup : php-common-5.3.3-14.el6_3.x86_64 26/28
Cleanup : zlib-1.2.3-27.el6.x86_64 27/28
Erasing : libjpeg-6b-46.el6.x86_64 28/28
Verifying : libjpeg-turbo-1.2.1-1.el6.x86_64 1/28
Verifying : php-cli-5.4.21-2.el6.remi.x86_64 2/28
Verifying : php-mbstring-5.4.21-2.el6.remi.x86_64 3/28
Verifying : mysql-libs-5.5.34-1.el6.remi.x86_64 4/28
Verifying : php-pdo-5.4.21-2.el6.remi.x86_64 5/28
Verifying : compat-mysql51-5.1.54-1.el6.remi.x86_64 6/28
Verifying : php-common-5.4.21-2.el6.remi.x86_64 7/28
Verifying : t1lib-5.1.2-6.el6_2.1.x86_64 8/28
Verifying : mysql-5.5.34-1.el6.remi.x86_64 9/28
Verifying : php-devel-5.4.21-2.el6.remi.x86_64 10/28
Verifying : mysql-server-5.5.34-1.el6.remi.x86_64 11/28
Verifying : php-gd-5.4.21-2.el6.remi.x86_64 12/28
Verifying : zlib-1.2.3-29.el6.x86_64 13/28
Verifying : php-5.4.21-2.el6.remi.x86_64 14/28
Verifying : php-mysql-5.4.21-2.el6.remi.x86_64 15/28
Verifying : php-common-5.3.3-14.el6_3.x86_64 16/28
Verifying : mysql-5.1.66-2.el6_3.x86_64 17/28
Verifying : php-gd-5.3.3-14.el6_3.x86_64 18/28
Verifying : zlib-1.2.3-27.el6.x86_64 19/28
Verifying : php-cli-5.3.3-14.el6_3.x86_64 20/28
Verifying : mysql-server-5.1.66-2.el6_3.x86_64 21/28
Verifying : php-5.3.3-14.el6_3.x86_64 22/28
Verifying : php-pdo-5.3.3-14.el6_3.x86_64 23/28
Verifying : php-devel-5.3.3-14.el6_3.x86_64 24/28
Verifying : mysql-libs-5.1.66-2.el6_3.x86_64 25/28
Verifying : php-mysql-5.3.3-14.el6_3.x86_64 26/28
Verifying : libjpeg-6b-46.el6.x86_64 27/28
Verifying : php-mbstring-5.3.3-14.el6_3.x86_64 28/28
Installed:
libjpeg-turbo.x86_64 0:1.2.1-1.el6
Dependency Installed:
compat-mysql51.x86_64 0:5.1.54-1.el6.remi t1lib.x86_64 0:5.1.2-6.el6_2.1
Updated:
php.x86_64 0:5.4.21-2.el6.remi
Dependency Updated:
mysql.x86_64 0:5.5.34-1.el6.remi mysql-libs.x86_64 0:5.5.34-1.el6.remi
mysql-server.x86_64 0:5.5.34-1.el6.remi php-cli.x86_64 0:5.4.21-2.el6.remi
php-common.x86_64 0:5.4.21-2.el6.remi php-devel.x86_64 0:5.4.21-2.el6.remi
php-gd.x86_64 0:5.4.21-2.el6.remi php-mbstring.x86_64 0:5.4.21-2.el6.remi
php-mysql.x86_64 0:5.4.21-2.el6.remi php-pdo.x86_64 0:5.4.21-2.el6.remi
zlib.x86_64 0:1.2.3-29.el6
Replaced:
libjpeg.x86_64 0:6b-46.el6
Complete!
# yum --enablerepo=remi install php-fpm
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* epel: ftp.kddilabs.jp
* extras: www.ftp.ne.jp
* remi: mirror.smartmedia.net.id
* updates: www.ftp.ne.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-fpm.x86_64 0:5.4.21-2.el6.remi will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==================================================================================
Package Arch Version Repository Size
==================================================================================
Installing:
php-fpm x86_64 5.4.21-2.el6.remi remi 1.3 M
Transaction Summary
==================================================================================
Install 1 Package(s)
Total download size: 1.3 M
Installed size: 3.9 M
Is this ok [y/N]: y
Downloading Packages:
php-fpm-5.4.21-2.el6.remi.x86_64.rpm | 1.3 MB 00:07
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : php-fpm-5.4.21-2.el6.remi.x86_64 1/1
Verifying : php-fpm-5.4.21-2.el6.remi.x86_64 1/1
Installed:
php-fpm.x86_64 0:5.4.21-2.el6.remi
Complete!
データベースのアップグレード
PHPのアップデートに伴いMySQLもアップデートされるので、データベースのアップデートを行う必要があるらしい。下記のコマンドでデータベースのアップデートを行う。尚、パスワードを要求されるので事前に確認しておこう。
# mysql_upgrade -u root -p Enter password: Looking for 'mysql' as: mysql Looking for 'mysqlcheck' as: mysqlcheck Running 'mysqlcheck with default connection arguments Running 'mysqlcheck with default connection arguments mysql.columns_priv OK mysql.db OK mysql.event OK mysql.func OK mysql.general_log OK mysql.help_category OK mysql.help_keyword OK mysql.help_relation OK mysql.help_topic OK mysql.host OK mysql.ndb_binlog_index OK mysql.plugin OK mysql.proc OK mysql.procs_priv OK mysql.servers OK mysql.slow_log OK mysql.tables_priv OK mysql.time_zone OK mysql.time_zone_leap_second OK mysql.time_zone_name OK mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK wordpress_db.wp_blc_filters OK wordpress_db.wp_blc_instances OK wordpress_db.wp_blc_links OK wordpress_db.wp_blc_synch OK wordpress_db.wp_cbnetpo_ping_optimizer OK wordpress_db.wp_cntctfrm_field OK wordpress_db.wp_commentmeta OK wordpress_db.wp_comments OK wordpress_db.wp_links OK wordpress_db.wp_options OK wordpress_db.wp_postmeta OK wordpress_db.wp_posts OK wordpress_db.wp_term_relationships OK wordpress_db.wp_term_taxonomy OK wordpress_db.wp_terms OK wordpress_db.wp_usermeta OK wordpress_db.wp_users OK Running 'mysql_fix_privilege_tables'... OK
PHP-FPMの設定
PHP-FPMのインストールが終われば、引き続きPHP-FPMの設定ファイルを編集する。
# vi /etc/php-fpm.d/www.conf
編集内容は参考にしたSourceForge.JP Magazineとほぼ同じ。ただし1点異なる点がある。
listen = /var/run/php-fpm/php-fpm.sock user = apache group = apache pm.max_children = 15 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 5
今回、userとgroupをnginxではなくapacheにしている。これは、運用中のWordPressへの影響を最小限にするためだ。
PHP-FPMの動作ユーザーをapacheにしておけば、WordPressのディレクトリの所有権をapacheからnginxに変更することなく移行できる。
仮にWordPressのディレクトリをnginxに変更してしまうと運用中のWordPressに影響が出る。ディレクトリのアクセス権によるが、例えば画像のアップデートができない等の影響が出た。
PHP-FPMの起動
最後に、設定したPHP-FPMを起動させて常駐させておく。これでPHP-FPMの準備は完了!
# /etc/init.d/php-fpm start php-fpm を起動中: [ OK ] # chkconfig php-fpm on
fujitaka

コメント
[…] さくらのVPSで運用中のWordPressをApacheからnginxに移行する(その3 PHP-FPMの準備) | fujitaka.net […]