さくらのVPS(CentOS 6.3)で運用中のWordPressをApacheからnginxに移行する(その2 nginxの準備)

nginx
今回からApacheで動かしているWordPressをnginxに移行するための具体的な手順に入る。まずは移行するためのnginxの環境構築を行う。
全体の流れについては下記の概要記事を参照して欲しい。

全体の目次

  1. 概要
  2. nginxの準備  ←今回の記事
  3. PHP-FPMの準備
  4. 設定と移行

ポート開放

既にApacheで80番ポートを利用しているので、暫定的に8080番ポートを利用してnginxの動作確認を行う。そのために8080番ポートの開放を行う。

# vi /etc/sysconfig/iptables

8080番ポートを開放する場合、下記の1行を追記すればOK。わからなければ「iptables ポート開放」で検索すれば詳細な手順を調べることができる。

-A SERVICES -p tcp --dport 8080 -j ACCEPT

リポジトリの追加

nginxをインストールするには、公式サイトのパッケージを導入するのが最も簡単である。パッケージを導入するために、公式サイトの手順を参照してリポジトリの追加を行う。
リポジトリファイルを作成する。

# vi /etc/yum.repos.d/nginx.repo

作成したリポジトリファイルはこちら。環境がCentOS 6.3なのでbaseurlは下記のようになるが、環境が異なる場合は変更する必要がある。詳細は公式ページ(nginx: Linux packages)を見るとわかる。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

nginxのインストール

リポジトリを追加したら、さっさとnginxをインストール。パッケージなのでyumコマンドでインストールできる。

# yum install nginx
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * epel: ftp.kddilabs.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package nginx.x86_64 0:1.4.3-1.el6.ngx will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================
 Package         Arch             Version                   Repository       Size
==================================================================================
Installing:
 nginx           x86_64           1.4.3-1.el6.ngx           nginx           311 k

Transaction Summary
==================================================================================
Install       1 Package(s)

Total download size: 311 k
Installed size: 770 k
Is this ok [y/N]: y
Downloading Packages:
nginx-1.4.3-1.el6.ngx.x86_64.rpm                           | 311 kB     00:01
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : nginx-1.4.3-1.el6.ngx.x86_64                                   1/1
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
  Verifying  : nginx-1.4.3-1.el6.ngx.x86_64                                   1/1

Installed:
  nginx.x86_64 0:1.4.3-1.el6.ngx

Complete!

上記のようにインストールが完了していればOK。引き続き動作確認に入る。

動作確認

何も設定せずにnginxを起動すると、運用中のApacheと同じ80番ポートで起動してしまうので、nginxの待ち受けポートを変更するために設定ファイルを編集する。

# vi /etc/nginx/conf.d/default.conf

変更後の設定ファイルがこちら。変更したのは2行目のlistenを80から8080に変更しただけ

server {
    listen       8080;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

後は起動するだけ。

# /etc/init.d/nginx start
nginx を起動中:                                            [  OK  ]

動作確認として、ブラウザでサーバーに8080番でアクセスする(自分の場合だと「http://fujitaka.net:8080」にアクセス)。nginxの初期画面が表示されればOK。これでnginxのインストールが完了する。
動作確認ができたら、この時点で一度nginxを停止しておく。

# /etc/init.d/nginx stop
nginx を停止中:                                            [  OK  ]

このタイミングでポート開放の設定も削除しておこう。次はPHP-FPMの準備!

fujitaka

コメント

  1. funnycat より:

    初めまして。funnycatと申します。

    記事について質問がございます。

    1. 「動作確認ができたら、この時点で一度nginxを停止しておく」とありますが、最後にapacheを停止してnginxを起動する時にはPort 80で接続するのでしょうか。それともPort 8080で接続するのでしょうか?

    2. 「PHP-FPMの動作ユーザーをapacheにしておけば、WordPressのディレクトリの所有権をapacheからnginxに変更することなく移行できる」とありますが、所有権をapacheのままにした場合、何か副作用があったりするものなのでしょうか。

    • fujitaka より:

      はじめまして、また返信が遅れまして申し訳ありません。
      質問に回答しますね。
      1→Port 80で接続します。Port 8080はテスト用ですので、実際の切替時はPort 80にします。
      2→副作用は特にありません。nginxを動作させているのにディレクトリがapacheというのがちょっと違和感がある程度です。

  2. […] 下記サイトにとおりに作業する。 さくらのVPSで運用中のWordPressをApacheからnginxに移行する(その2 nginxの準備) | fujitaka.net […]

タイトルとURLをコピーしました