今回からApacheで動かしているWordPressをnginxに移行するための具体的な手順に入る。まずは移行するためのnginxの環境構築を行う。
全体の流れについては下記の概要記事を参照して欲しい。
全体の目次
- 概要
- nginxの準備 ←今回の記事
- PHP-FPMの準備
- 設定と移行
ポート開放
既に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
コメント
初めまして。funnycatと申します。
記事について質問がございます。
1. 「動作確認ができたら、この時点で一度nginxを停止しておく」とありますが、最後にapacheを停止してnginxを起動する時にはPort 80で接続するのでしょうか。それともPort 8080で接続するのでしょうか?
2. 「PHP-FPMの動作ユーザーをapacheにしておけば、WordPressのディレクトリの所有権をapacheからnginxに変更することなく移行できる」とありますが、所有権をapacheのままにした場合、何か副作用があったりするものなのでしょうか。
はじめまして、また返信が遅れまして申し訳ありません。
質問に回答しますね。
1→Port 80で接続します。Port 8080はテスト用ですので、実際の切替時はPort 80にします。
2→副作用は特にありません。nginxを動作させているのにディレクトリがapacheというのがちょっと違和感がある程度です。
[…] 下記サイトにとおりに作業する。 さくらのVPSで運用中のWordPressをApacheからnginxに移行する(その2 nginxの準備) | fujitaka.net […]