前回までで、サーバに WordPress をインストールできる環境が整いました。
このエントリーは「さくらのクラウドに Nginx + PHP-FPM + MariaDB の環境を作る」の続きです。
これから、 Nginx で WordPress をマルチサイトで動かすための設定を行っていきます。
といっても、一般的なレンタルサーバに WordPress をインストールするのとほとんど変わりありません。が、今回はブラウザ操作以外はコマンドでやっていくので、そこが違います。
目次
前回までのおさらい
CentOS 7 のインストールから Nginx などのサーバ環境を整えるまでのおさらいです。
さくらのクラウドに CentOS 7 をインストール
さくらのクラウドの CentOS 7 でユーザー作成とSSHの設定をする
CentOS 7 に Vim エディタをインストール
さくらのクラウドに Nginx + PHP-FPM + MariaDB の環境を作る
WordPress のインストール
さて、ようやくここまでたどり着きました。
まず、 ssh を使って、 WordPress の本体をサーバに直接ダウンロードします。
root ユーザになっていない場合は、 root で操作できるようにします。
1 2 |
su パスワード:(root のパスワード) |
WordPress のダウンロード
CentOS を minimal インストールをしていた場合、初期状態では wget がインストールされていない場合があるので、インストールします。
1 |
$ yum install wget |
wget がインストールされていることが確認できたら、 下記のコマンドを使って WordPress をダウンロードします。
1 2 |
$ cd /usr/share/nginx/ $ wget https://ja.wordpress.org/latest-ja.tar.gz |
解凍
ダウンロードしたファイルを解凍し、所有者とグループを変更します。
更に、ディレクトリ名を “wordpress” から ドメイン名に変更します。
1 2 3 |
$ tar xzfv latest-ja.tar.gz $ chown -R nginx:nginx wordpress $ mv wordpress example.jp |
ブラウザでWordPressにアクセス
ブラウザで WordPress にアクセスし、通常のセットアップを行っていきます。
WordPress のセットアップ
前回設定した、データベースのユーザ名とパスワードを使用してセットアップしていきます。
ウェブ上でのインストール作業そのものは通常と同じですので、作業内容の明記は割愛します。
が、この説明を最初から読んでマルチサイトの構築にチャレンジしている場合は、 Nginx のマルチサイト用の設定を忘れないでください。
WordPress のマルチサイト用の設定
マルチサイトの設定は、通常の WordPress のインストールが終わってから行います。
1 2 |
$ cd /usr/share/nginx/example.jp $ vim wp-config.php |
「編集が必要なのはここまでです」の上に次の記述を追加
1 2 |
/* マルチサイト設定 */ define('WP_ALLOW_MULTISITE', true); |
いちど保存して、WordPress の管理画面をリロードします。
管理画面に、「ネットワークの設置」というメニューが出てくるのでクリックして設定を行います。
マルチサイトを設置する際には Nginx の設定が必要になってきますが、「さくらのクラウドに Nginx + PHP-FPM + MariaDB の環境を作る」で紹介している方法では、サブドメイン型とディレクトリ型の両方に対応しています。
上記画面が表示され、内容を確認できたら、サブドメイン型かサブディレクトリ型かを選択し、「インストール」ボタンをクリックします。
すると以下のような画面になるので、赤枠の中の文字(1.)を wp-config.php にコピーします。
(2.)は Apache サーバ用の設定なので必要ありません。
マルチサイト設定全体だと、こんな感じ。
1 2 3 4 5 6 7 8 |
/* マルチサイト設定(サブドメイン) */ define('WP_ALLOW_MULTISITE', true); define('MULTISITE', true); define('SUBDOMAIN_INSTALL', false); define('DOMAIN_CURRENT_SITE', 'example.jp'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1); |
このあと子サイトを作ったら、データベースを操作します。(子サイトの作成部分は割愛・・・)
FTP 情報を求められたりファイルのアップロードができなかったりする
この段階で、 WordPress の管理画面から FTP 情報を求められたりファイルのアップロードが出来ないエラーが表示されたりすることがありますが、WordPress が入っているディレクトリの所有者を変更すると直ることがあります。
この対策には、さまざまなサイトで wp-config.php を書き換えたりディレクトリのパーミッションを変更したりといろいろな解説がありますが、私の場合は次のコマンドで解決しました。
1 2 |
$ cd /usr/share/nginx $ chown nginx:nginx example.jp |
データベース操作に Adminer を導入
通常、データベースを操作するためのソフトといえば、 phpMyAdmin が有名です。
殆どのレンタルサーバに導入されていて、手軽にデータベースを操作することができるので、人気のアプリケーションですね。
しかしその反面、セキュリティなどの観点から、 phpMyAdmin を使用することはおすすめできません。
常にインストールしておくものなので、 phpMyAdmin の URL が推測されやすかったり、推測されにくい URL だったとしても万が一見つかった時には、データベースを書き換えられてしまう危険性があります。
そこで今回使用するのが、 Adminer というデータベース管理ツール。
Adminer はたったひとつの PHP ファイルでできており、必要なときだけサーバにインストールして用事が済んだら手軽に削除することができる、データベース管理ツールです。
機能面でも phpMyAdmin と殆ど変わらず、 MySQL(MariaDB) だけでなく PostgreSQL、SQLite、更には Oracle にまで対応しているスグレモノです。
Adminer のインストール
早速、SSHで Adminer をサーバにインストールしてみましょう。
sourceforge から Adminer の最新版をダウンロードし、 adminer.php というファイル名でアクセスできるようにします。
念のため、適当な名前のディレクトリを作って、そこに Adminer をインストールするのが良いでしょう。
ここではわかりやすいように、 “management” とします。
1 2 3 4 |
$ cd /usr/share/nginx/html $ mkdir management $ cd management $ wget -O adminer.php https://sourceforge.net/projects/adminer/files/latest/download |
2016年9月20日追記:
最新版のダウンロードリンクが変わったようです。今後は以下の方法で最新版のダウンロードができます。
1 2 3 4 |
$ cd /usr/share/nginx/html $ mkdir management $ cd management $ wget -O adminer.php https://www.adminer.org/latest.php |
これで、 http://(IPアドレス)/management/adminer.php という URL でアクセス出来るようになります。
実際にアクセスするとこんな感じ。
照合順序の変更
Adminer のログイン画面で前回作ったユーザ名(root ではないもの)、パスワード、データベース名を入力してログインすると、 “information_schema” と、 WordPress インストールで使用したデータベースが表示されます。
前回作成したデータベースの名前をクリックしてみましょう。下記のようなテーブル一覧が表示されます。
※ここでは例として、通常のインストールをした場合の WordPress のデータベース画面を出しています。
WordPress を日本語環境で使う場合、照合順序を “utf8_general_ci” もしくは “utf8mb4_general_ci” にして使用することが推奨されています。
しかし、この画面を見ると “utf8mb4_unicode_ci” が設定されています。
これを変更するためには、テーブル1つずつに変更を加える必要があるため、面倒ですが設定を変更していきます。
テーブル名をクリック
テーブル名をクリックすると、次のような表示がされるので赤枠の「テーブルの変更」をクリックします。
テーブルの変更
テーブルの中身が表示されたら、テーブル全体の照合順序と、列に設定されている照合順序をそれぞれ、 “utf8mb4_general_ci” に変更します。
「不正なCSRFトークン。再送信してください」と表示される
テーブルの内容を変更するとき、「不正なCSRFトークン」と表示されることがあります。
これは、 Adminer がサーバの Cookie にアクセス出来ないために発生するものです。このエラーが発生したときは、サーバの Cookie にアクセスできるよう、 session ディレクトリのグループを変更します。なお、私の場合はグループが apache の状態でのエラーが発生していました。
1 2 |
cd /var/lib/php chown -R root:nginx session |
このコマンドを打つことで、正常に処理を行うことが出来るようになります。
もし、これでも直らない場合は、ブラウザをいったん終了して再起動すると直ることがあります。
もう一度「テーブルの変更」をクリックすると、変更をしたテーブルや列の照合順序が変更されていることがわかります。
Adminer を削除
データベースの操作が終わったら、安全のために Adminer と作業ディレクトリを削除しましょう。
1 2 |
cd /usr/share/nginx/html rm -rf management |
お疲れ様でした
これで、 Nginx に WordPress をインストールできました。
どんどん使っていきましょう!