ラズパイ3のセットアップ(10) (h) WordPress: 環境構築

まずは、WordPress複製先となるラズパイ3の環境を WordPress が動作する構成に構築します。

何が必須なのかはよくわかりませんが、最低限でデータベース MySQL と PHP が必要なのだろうと思われるので、とりあえずそのインストールから実行しておきます。

$ sudo su -
# apt update
# apt install mysql-server php5 php5-mysqlnd

マニュアルの説明を頼りにして、まずは最新の日本語版 WordPress をダウンロードして展開して、利用するデータベースを生成するところから始めようと思います。

$ wget http://ja.wordpress.org/latest-ja.tar.gz
--2016-09-13 22:04:58-- http://ja.wordpress.org/latest-ja.tar.gz
ja.wordpress.org (ja.wordpress.org) をDNSに問いあわせています... 66.155.40.250, 66.155.40.249
  --- 途中省略 ---
`latest-ja.tar.gz' に保存中
latest-ja.tar.gz 100%[==============================================>] 8.01M 785KB/s 時間 14s
2016-09-13 22:05:13 (588 KB/s) - `latest-ja.tar.gz' へ保存完了 [8402893/8402893]

$ tar -xzvf latest-ja.tar.gz

日本語版 WordPress が、wordpress ディレクトリ以下に展開されていますので、ブラウザからアクセスした時に URL の /blog に対応するディレクトリ /share2/WordPress にコピーします。

# rsync -av /home/pi/wordpress/ /share2/WordPress/
# chown -R www-data:www-data /share2/WordPress

WordPress を格納するディレクトリツリーは、他と多少なりとも統一性を考えて /var/www/html がホームページ作成のデフォルトのようなのと、 webalizer が /var/www/webalizer なので、WordPress としては同様に /var/www/wordpress をディレクトリと決めました。
実際には独立したディスクパーティションを割り当ててルート直下の /share2 にマウントしています。その中に WordPress ディレクトリを作成して、そこを格納エリアとしました。そして /var/www/wordpress としてアクセスできるようにソフトリンクを行っています。

# ln -s /share2/WordPress /var/www/wordpress

先に一部の例として示したサイト定義 ‘001-三田-public.conf’ の中に、URL で /blog に対応する WordPress の定義を次に示しておきます。なお余談ですが、<RequireNone> の定義はアクセス拒否を行うつもりの接続先を列挙しています。

 ... 該当部分のみ ...

Alias /blog /var/www/wordpress
 <Directory /var/www/wordpress>
   DirectoryIndex index.html index.html.var index.php index.cgi
   AddHandler cgi-script .cgi .pl .php
   Options ExecCGI FollowSymLinks MultiViews
   <RequireAll>
    Require all granted
     <RequireNone>
      Require host huangxxxx08.com
      Require ip 91.200.12.xx
     </RequireNone>
   </RequireAll>
 </Directory>

続いて使用するデータベースの作成と、その情報を wp-config.php に記述して WordPress が稼働できる環境を作ります。データベース MySQL をインストールした時に設定した root とそのパスワードを使用して利用するデータベースを作成します。
余談ですが、インストールの時にパスワードを求められると適当に入力してしまいますが、後になって実際に使用する段階で、何を設定したのかわからなくなることが時々あります。我ながらいい加減な性格なのだろうと思います。データベースへのアクセスには、wpadm ユーザーを作成して利用することにします。

$ mysql -u root -p
Enter password: xxxxxx
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 60
Server version: 5.5.50-0+deb8u1 (Raspbian)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.06 sec)
mysql> CREATE USER 'wpadm'@'localhost' IDENTIFIED BY '..password..';
Query OK, 0 rows affected (0.59 sec)
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wpadm'@'localhost';
Query OK, 0 rows affected (0.57 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> EXIT
Bye

作成したデータベースにアクセスする方法を wp-config.php に記述しますが、このファイルは初期状態では存在しません。wp-config-sample.php ファイルをコピーするか名前を変更して作成します。

  ... データベースにアクセスするために必要な定義のみ ...

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'wordpress');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'wpadm');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', '..password..');
/** MySQL のホスト名 */
define('DB_HOST', 'localhost');
/** データベースのテーブルを作成する際のデータベースの文字セット */
define('DB_CHARSET', 'utf8');
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');
/**#@+
  ... 途中省略 ...
.. 次の部分はパスワード生成用のオンラインジェネレータをクリックするたびに生成されるパスワードで、該当行数の総入れ替えで更新してください。

 *
 * @since 2.6.0
 */
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
/**#@-*/

これで WordPress を新規にインストールできる環境が整いましたので、ブラウザから /blog/wp-admin/install.php を指定して新規のインストールを行います。管理で使用するユーザーを適当にユーザー登録して、ログインすると管理画面に入れます。
screenshot-from-2016-09-15-23-24-51
次に一般的なブラウザからアクセスした場合のデフォルトの初期画面を表示します。
screenshot-from-2016-09-15-23-25-30
いよいよ次回は、すでに運用済みの WordPress ホームページ複製を実行します。