WordPress のインストールと Adminer の導入

前回までで、サーバに 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 で操作できるようにします。

WordPress のダウンロード

CentOS を minimal インストールをしていた場合、初期状態では wget がインストールされていない場合があるので、インストールします。

wget がインストールされていることが確認できたら、 下記のコマンドを使って WordPress をダウンロードします。

解凍

ダウンロードしたファイルを解凍し、所有者とグループを変更します。
更に、ディレクトリ名を “wordpress” から ドメイン名に変更します。

ブラウザでWordPressにアクセス

ブラウザで WordPress にアクセスし、通常のセットアップを行っていきます。

WordPress › 構成ファイルのセットアップ

WordPress のセットアップ

前回設定した、データベースのユーザ名とパスワードを使用してセットアップしていきます。

ウェブ上でのインストール作業そのものは通常と同じですので、作業内容の明記は割愛します。
が、この説明を最初から読んでマルチサイトの構築にチャレンジしている場合は、 Nginx のマルチサイト用の設定を忘れないでください。

WordPress のマルチサイト用の設定

マルチサイトの設定は、通常の WordPress のインストールが終わってから行います。

「編集が必要なのはここまでです」の上に次の記述を追加

いちど保存して、WordPress の管理画面をリロードします。

管理画面に、「ネットワークの設置」というメニューが出てくるのでクリックして設定を行います。
マルチサイトを設置する際には Nginx の設定が必要になってきますが、「さくらのクラウドに Nginx + PHP-FPM + MariaDB の環境を作る」で紹介している方法では、サブドメイン型とディレクトリ型の両方に対応しています。
サイトのネットワークの作成

上記画面が表示され、内容を確認できたら、サブドメイン型かサブディレクトリ型かを選択し、「インストール」ボタンをクリックします。
すると以下のような画面になるので、赤枠の中の文字(1.)を wp-config.php にコピーします。
(2.)は Apache サーバ用の設定なので必要ありません。

サイトのネットワークの作成2

マルチサイト設定全体だと、こんな感じ。

このあと子サイトを作ったら、データベースを操作します。(子サイトの作成部分は割愛・・・)

FTP 情報を求められたりファイルのアップロードができなかったりする

この段階で、 WordPress の管理画面から FTP 情報を求められたりファイルのアップロードが出来ないエラーが表示されたりすることがありますが、WordPress が入っているディレクトリの所有者を変更すると直ることがあります。
この対策には、さまざまなサイトで wp-config.php を書き換えたりディレクトリのパーミッションを変更したりといろいろな解説がありますが、私の場合は次のコマンドで解決しました。

データベース操作に Adminer を導入

通常、データベースを操作するためのソフトといえば、 phpMyAdmin が有名です。
殆どのレンタルサーバに導入されていて、手軽にデータベースを操作することができるので、人気のアプリケーションですね。
しかしその反面、セキュリティなどの観点から、 phpMyAdmin を使用することはおすすめできません。
常にインストールしておくものなので、 phpMyAdmin の URL が推測されやすかったり、推測されにくい URL だったとしても万が一見つかった時には、データベースを書き換えられてしまう危険性があります。

そこで今回使用するのが、 Adminer というデータベース管理ツール。
Adminer はたったひとつの PHP ファイルでできており、必要なときだけサーバにインストールして用事が済んだら手軽に削除することができる、データベース管理ツールです。
機能面でも phpMyAdmin と殆ど変わらず、 MySQL(MariaDB) だけでなく PostgreSQL、SQLite、更には Oracle にまで対応しているスグレモノです。

Adminer のインストール

早速、SSHで Adminer をサーバにインストールしてみましょう。

sourceforge から Adminer の最新版をダウンロードし、 adminer.php というファイル名でアクセスできるようにします。
念のため、適当な名前のディレクトリを作って、そこに Adminer をインストールするのが良いでしょう。
ここではわかりやすいように、 “management” とします。

2016年9月20日追記:
最新版のダウンロードリンクが変わったようです。今後は以下の方法で最新版のダウンロードができます。

これで、 http://(IPアドレス)/management/adminer.php という URL でアクセス出来るようになります。
実際にアクセスするとこんな感じ。

Adminer ログイン画面

照合順序の変更

Adminer のログイン画面で前回作ったユーザ名(root ではないもの)、パスワード、データベース名を入力してログインすると、 “information_schema” と、 WordPress インストールで使用したデータベースが表示されます。
前回作成したデータベースの名前をクリックしてみましょう。下記のようなテーブル一覧が表示されます。

データベースの中身
※ここでは例として、通常のインストールをした場合の WordPress のデータベース画面を出しています。

WordPress を日本語環境で使う場合、照合順序を “utf8_general_ci” もしくは “utf8mb4_general_ci” にして使用することが推奨されています。
しかし、この画面を見ると “utf8mb4_unicode_ci” が設定されています。

これを変更するためには、テーブル1つずつに変更を加える必要があるため、面倒ですが設定を変更していきます。

テーブル名をクリック

テーブル名をクリックすると、次のような表示がされるので赤枠の「テーブルの変更」をクリックします。
照合順序変更

テーブルの変更

テーブルの中身が表示されたら、テーブル全体の照合順序と、列に設定されている照合順序をそれぞれ、 “utf8mb4_general_ci” に変更します。
テーブルの変更

「不正なCSRFトークン。再送信してください」と表示される

テーブルの内容を変更するとき、「不正なCSRFトークン」と表示されることがあります。

不正なCSRFトークン

これは、 Adminer がサーバの Cookie にアクセス出来ないために発生するものです。このエラーが発生したときは、サーバの Cookie にアクセスできるよう、 session ディレクトリのグループを変更します。なお、私の場合はグループが apache の状態でのエラーが発生していました。

このコマンドを打つことで、正常に処理を行うことが出来るようになります。
テーブルを変更しました

もし、これでも直らない場合は、ブラウザをいったん終了して再起動すると直ることがあります。

もう一度「テーブルの変更」をクリックすると、変更をしたテーブルや列の照合順序が変更されていることがわかります。

Adminer を削除

データベースの操作が終わったら、安全のために Adminer と作業ディレクトリを削除しましょう。

お疲れ様でした

これで、 Nginx に WordPress をインストールできました。
どんどん使っていきましょう!

参考にしたサイト

MySQL管理ツール Adminerのインストール – Symfoware

nginx + MySQL + phpMyAdmin の環境を構築する方法 – Linux入門 – Webkaru

Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0

コメントを残す

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