普段思ったことや、雑記。

Menu & Search

NginxでのWordPress4.2のセットアップチュートリアル

2015年7月25日

たまーにWordpressのセットアップをやるので、セットアップ手順をメモがてら残すことにした。WordPressは当サイトでも使用している、世界的に最もメジャーなCMSの1つである。

チュートリアル形式なので、ドメインのレコード設定以外は再現可能なレベルで書くことにする。Apacheでの解説サイトならいくらでもあるけど、同時接続数をさばきたい目的がある人はWebサーバはNginxでいいと思うので、今回はNginxでのWordpressのセットアップ手順を紹介。

 

事前に準備しておくもの

下記のものを事前に準備してください

  • 利用可能な任意のドメイン(※なくてもいいけど、セキュリティ的な意味ではよろしくないので、ある前提でいきます)
  • WordPressをインストール可能なLinuxサーバ(今回はCentOS6.6でやります)

 

チュートリアル

順序的には、Webサーバとその周辺の設定→DB(データベース)設定→WordPress設定…という流れでチュートリアルを進めていきます。結構長いけど、がんばりましょう!

 

1. Nginxのインストール

WebサーバソフトウェアのNginxをインストールする。Nginxの特徴は、ざっくりいうと同時接続のアクセスを効率良くさばくためにそもそも作られているということ。僕も疎いので、あまり語れるところではないので、詳細は下記の記事を参考にして欲しい。

 

これから始める人のためのNginx(1):高速・軽量・高機能……Nginxの基礎知識 (1/2) – @IT

http://www.atmarkit.co.jp/ait/articles/1406/17/news013.html

 

普通に買おうとすると高価なロードバランサーとしても使えるNginxちゃん素晴らしい!ちなみに、気になるけど実際の運用に手を出せていない良さそうなWebサーバだと、H2Oなんてものもある。こちらの記事によると、あるベンチマークではH2Oは、ほとんどチューニングしないでも、チューニングしたNginxを越えるほどのパフォーマンスをたたき出したようだ!

…というわけで、脱線したけどインストール作業に戻ることにする。NginxはCentOS標準のリポジトリには存在しないので、普通に$sudo yum install nginxなどと入力してもインストールはできない。なので、Nginx入手先のリポジトリ追加からはじめる。こちらのリンクのCentOS6の箇所のURLがNginxの公式リポジトリとなっているので、これを追加する。

rpmコマンドはパッケージの追加・削除のためのコマンドである。rpmコマンドについての詳細はこちら。これで、マシンにリポジトリが追加されたので、

と入力し、インストール完了。

 

2. PHP-FPMのインストール

次にPHP-FPMをインストールする。PHP-FPMがNginxに必要な理由だが、前述の@ITの記事にもあったように下記のような理由である。

NginxはHTMLドキュメントや画像ファイルといった静的コンテンツは扱えるものの、Webアプリケーションのような動的コンテンツはSSI(Server Side Include)以外扱えません。代わりに、Nginxとは別プロセスでアプリケーションプログラムを稼働し、そのプロセスとUNIXドメインソケットで連携させることで、動的コンテンツに対応させることができます。

Nginxは軽量Webサーバなのである。というわけで、NginxでPHPを扱えるようにするため、PHP-FPMをインストールする。

 

3. PHPとその周辺環境のインストール

Webサーバ周りがインストールできたので、次はWordpressを動かすために必要なDBだったり、PHPの周辺環境のインストールをする。たくさんあるので、さくっと下記のコマンドで。

インストールしたものは、MySQL(DBサーバ)と、PHPとその周辺環境のモジュールだ。

 

4. Nginx、MySQLの起動

次に、インストール作業が完了したサーバソフトウェアを起動する。サーバ起動時に自動的に起動するように、chkconfigコマンドで設定もしておく。

ちなみに、自動起動するソフトウェアの確認はchkconfig  –listでできる。

 

5. PHP-FPMの設定と起動

インストールしたPHP-FPMを起動する。さしあたり、どうしても初期パラメータではマズい箇所があるので、PHP-FPMのみ先に設定を済ませてから起動をする。PHP-FPMの設定ファイルを編集する。

www.confファイルの39行目と41行目がPHP-FPMのプロセスをどのUNIXグループ/ユーザに割り当てるかの設定で、初期値が

となっているので、これを

と変更する。

あとは、ついでにパフォーマンスを上げるために少々パラメータを調整する。パラメータの変更は下記のサイトを参考におこなう。以前、初期パラメータのまま運用をしていたところ、いつからか劇的にサイトのレスポンスが遅くなったので、これは初めから変更推奨。

Nginxが重い? NginxにおけるPHP-FPMの設定 | WordPress入門倶楽部

http://wp.nyumon.club/1468.html

上記サイトを参考にwww.confを下記のように変更する。

以上で、PHP-FPMの初期設定は完了。PHP-FPMを自動起動に設定して、起動する。

また、NginxでPHP-FPMを扱うので、設定を反映するためにNginxを再起動しておく。

 

6.  WordPressで接続するDBのセットアップ

WordPressで扱うDBをセットアップする。MySQLにログインして設定を進める。初回はこれで入れるので、rootユーザに任意のパスワードを設定しておく。

次に、WordPressに接続するDBを作成する。任意の名称で構わないが、今回は便宜上、myblogという名称に設定する。

myblogという名称のDBが正しく作成されたかの確認は、下記のコマンドを使う。

次に、mublogのDBを使用できるユーザを設定する。ここでは、myblogというユーザを設定している。

myblogという名称のDBを操作できる、myblogというMySQLサーバのセットアップを完了した。exitコマンドでMySQLを終了する。ちなみに、上記コマンドの詳細だが、myblog.*のmyblogは先ほど作成したDB名称のことで、myblog@localhostはmyblogというMySQLユーザを示している。 identified by ‘myblog2015’で、myblogユーザのパスワードを設定している。

 

7. WordPressのダウンロード

ようやく、WordPress自体のインストール作業である。まずは、WordPressをセットアップをするディレクトリを作成する。既存の状態で/var/www配下に直接セットアップしてもよいが、中にはWordpressを何度も同じサーバにセットアップすること人もいると思うし、それを見越して/wordpressを作っておく。

しばらく、/wordpress配下での作業になるので、適切なユーザになっておく。このチュートリアルではrootユーザで作業。

次に/wordpressに最新版のWordrPressをダウンロードする。最新版のバージョンなどは、WordPress公式を確認。

ダウンロードしたWordpressファイルを解凍する。

wordpressという名称のディレクトリができる。次に、/wordpressの名称を変更する。今回はmyblogとする。

また、ダウンロードした圧縮ファイルは削除しておく。

 

8. WordPressの設定ファイル編集

次にWordPress側にMySQLのDBへの接続情報を設定する。確認だが、現在は/var/www/wordpress/myblogで作業をしている前提である。WordPressで最初から用意されている設定サンプルがあるので、それをもとに設定ファイルを作成する。サンプルファイルのコピーを作成、そのファイルを設定ファイルとする。

wp-config.phpの下記の箇所を

今回の場合、このように変更する。

これらは、MySQLのセットアップで設定した情報である。設定を間違えた時向けに、wp-config-sample.phpは残しておく。削除してもよい。

 

9. Nginxの設定

最後にNginxの設定を行う。本当にこれでサーバ周りの設定は終了!案外、まともにやると長いな。Nginxではもちろんヴァーチャルホストで設定するので、ディレクトリ設定もあるのであえて最後に回した。Nginxの設定ファイルは、/etc/nginx/conf.dにある。ここからは、ディレクトリは任意の箇所からの操作とする。さて、先ほど設定した/myblog向けのヴァーチャルホストの設定を記述していく。

下記のように記述をする

Nginxの設定ファイルはとりあえず魔法にしておいてください…、全部は僕も分かってないです。適宜環境によって変える箇所でいうと、server_nameを適切なドメインにするのと、root(WordPressのあるディレクトリの場所)の2箇所でしょう。そのほかはだいたいPHP-FPM関連の設定情報が書いてあります。

設定ファイルが正しいかは、下記のコマンドでチェックする。間違ってしまった場合、エラーメッセージを参考に修正する。逆にいうと、この確認をなしでノリでNginx再起動、サーバに設定反映!なんてことは危険なので絶対にやらないこと…絶対にだ。

 

10.  ブラウザでWordPressサイトにアクセスしてサイト設定を入力

サーバでの設定周りは完了し、あとは実際にWordpressが動いているかを確認するまでだ。今回、この記事を書くにあたり、僕もセットアップを試しているので、下記の画像はそれの参考である。Nginxのconfファイルに設定した「server_name」の箇所のドメインのあとに続き、wordpressのインストール用スクリプトのパスを末尾につけてアクセスする。

今回のチュートリアルの例の場合だと、http://demo.mmiyauchi.com/wp-admin/install.phpが該当する。ブラウザの窓ではこうである。

さて、正しくインストールができていれば、http://(任意のドメイン)/wp-admin/install.phpにアクセスすると、このような画面が表示される。

オプションで、検索エンジンによるインデックスは最初は許可しなくてもよいかもしれない。なぜなら、未完成の体裁が悪い状態で、サイトを見られる人のも嫌な人もいるかもしれないので、ある程度サイトが完成したら公開でもま全く問題はない。この設定は、この後ログインする管理画面でいつでも変更ができる。

必要情報を入力しWordPressをインストールを押すと、下記のような画面が現れるはずだ。

このような画面が出てきて、ログインを押すと管理画面へのログインフォームが出てくる。

あとは、このデモブログの場合は、http://demo.mmiyauchi.com/にアクセスするとそのままブログのトップページが出てくる。これで、WordPressがちゃんと動くまでセットアップ完了。まだちょっと続きます。

 

11.  インストールの後処理とお好みでNginxの設定

WordPress自体のセットアップは完了したが、インストールが正しく完了しないと、片付けられないものがあるのでそれを片付ける。先ほど、インストール時にinstall.phpスクリプトが使われたが、今後はもうこのスクリプトは使われない。install.phpにアクセスされると再セットアップはされることはないが、念のために削除をしておく。

次に、ちょっとした設定である。これはお好みなので、読み飛ばしても構わない。

先ほどアクセスした管理画面で、バージョンによってはインストール直後からプラグインやWordpress自体に更新データがあると表示されていた人もいるだろう。WordPressのソフトウェア更新にはいくつかのやり方がある。代表的なやり方は、2つパターンだ。1つはWebで先ほどの管理画面にアクセスしてボタンをポチポチ押して更新をかける方法。2つめは、サーバに手動により新しいソフトウェアをダウンロードして上書きをしていく方法だ。後者はよいとして、今回は前者の自動更新の設定をお好みでおこなう。

自動更新をするには、該当のWordPressディレクトリとその配下のファイルの権限をWebサーバに設定してあげることが必要だ。今回の場合、/var/www/wordpress/myblogの権限の設定を変更する。もし着手する場合、これはNginxに/myblogに対する操作を許してしまうので、セキュリティ的にはリスクが大きくなる設定であることを理解して実行してほしい。

これで、Webでブログの管理画面の更新を押すとWeb上で更新処理が可能になっている。

 

終わりに

以上にて、NginxでのWordPressのセットアップ完了ー!!長かった。。

この記事を書くのに、Vagrantで最初はコマンド打ちながら確認をしていたが、途中ネットワーク設定に疎かったのでWebでアクセスするタイミングで、コケてしまった。結局、自分のサーバでやり直すという何度も面倒くさいことをやってしまった!なんにせよ、今公開されている、ネット上のWordPress4.X系セットアップで、Nginxでのセットアップのエントリーを見た感じ、当エントリーが一番丁寧にやっている自負があるので、誰か役に立てばそれで結構…。

長いチュートリアルなので、修正箇所や漏れなどあったら、コメントください。あと質問もお気軽にどうぞ。答えられる範囲で対応します。

Article Tags
mmiyauchi

プログラムを書きながらTranceを聴くのが良いですね。みなさんも聴いたほうがいいですよ、Trance。EDMよりハードトランスでしょ。

Related article

WordPress公式コンテナのError establishing a database connection(データベース接続確立エラー)の修復

Error esta…

Vagrant(Virtualbox)のデータベースへ、設定が正しくてもSequel proで接続できない場合の対処

ある時からふと、Se…

WordPressのディレクトリを変更したら404が出てしまったときの対処

突然の404、突然の…

Discussion about this post

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Type your search keyword, and press enter to search