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 […]