サブディレクトリへの WordPress のインストール

hogehoge/fuga のように、サブディレクトリ構成のサイトを運営したい場合はこちらをご覧ください。

サブディレクトリへの WordPress のインストール

この手順はセルフホスティングをご利用の方のみが対象です。マネージドホスティングをご利用の方は弊社にて作業をいたしますので、 Amimoto ダッシュボードよりご連絡ください。

セルフホスティングの Amimoto AMI では、 wp-setup を使用することでバーチャルホストへの WordPress のインストールを簡単に行うことができます。
参考: [セルフホスティング] セルフホスティングでインスタンス・サーバへ SSH 接続をする方法

しかし、この wp-setup コマンドではサブディレクトリへの WordPress のインストールには対応していません。 サブディレクトリに WordPress をインストールし、利用できるようにするには wp-cli を使用して、以下の手順で行ってください。
すでに wp-setup コマンドを利用して example.com としてバーチャルホストの設定が行われているものとします。

 バーチャルホストの設定が終わっていない場合
/etc/nginx/conf.d/default.conf、/etc/nginx/conf.d/default.backend.conf をコピーして Nginx でのバーチャルホスト設定を行ってください。

コピーした設定ファイルでは server_name、root を書き換える必要があります。また listen の default という記述を削除してください。 設定ファイル作成後は sudo service nginx reload で設定ファイルへの変更を反映する必要がありますので、注意してください。

WordPress コアソースのダウンロード

まず、インストール先のディレクトリを作成して WordPress コアソースをダウンロードします。 インストール先は /var/www/vhoste/example.com/test とします。
 なお,コマンドを実行する場合、先頭の $ や # を入力する必要はありません。

$ sudo mkdir -p /var/www/vhoste/example.com/test
$ cd /var/www/vhoste/example.com/test
$ sudo wp --allow-root core download
$ sudo chown -R nginx:nginx /var/www/vhoste/example.com/test

データベースの作成 

次にデータベースと、データベースにアクセスすることのできるユーザを作成します。 ここでは MySQL のユーザ名が wp_user 、パスワードが wp_password 、作成するデータベース名は db_example_com_test  とします。 網元 AMIでは MySQL の root アカウントにパスワードを設定していませんので、以下のコマンドを実行することでデータベースを作成することができます。 (これは、外部からの 3306 ポートへの接続をデフォルトで無効にしているからです。運用上、気になる方は root アカウントへのパスワードを設定してください)
 なお,コマンドを実行する場合、先頭の $ や # を入力する必要はありません。

$ mysql -u root
mysql> create database db_example_com_test default character set utf8 collate utf8_general_ci;
mysql> grant all privileges on db_example_com_test.* to wp_user@localhost identified by 'wp_password';
mysql> exit
$ exit

WordPress コンフィグファイルの作成 

次に WordPress のコンフィグファイルを作成します。 ここでは MySQL のユーザ名が wp_user 、パスワードが wp_password 、作成するデータベース名は db_example_com_test  とします。

$ sudo wp --allow-root core config --dbname=db_example_com_test --dbuser=wp_user --dbpass=wp_password

nginx 設定ファイルの修正

最後に nginx のバックエンド側の設定ファイルを修正します。 サブディレクトリとして /test  にインストールした場合は以下のように location /test/ {}  を追加してください。

server {
    listen      unix:/var/run/nginx-backend.sock;
    server_name example.com;
    root        /var/www/vhosts/example.com;
    index       index.php index.html index.htm;

    access_log  /var/log/nginx/example.com.backend.access.log backend;

    keepalive_timeout 25;
    port_in_redirect  off;

    gzip              off;
    gzip_vary         off;

    location /test/ {
        try_files $uri $uri/ /test/index.php$is_args$args;
    }

    include /etc/nginx/wp-singlesite;
    #include /etc/nginx/wp-multisite-subdir;
}

設定ファイルの変更反映

nginx の設定ファイルの修正を行った後は sudo service nginx reload で設定ファイルの変更を反映してください。 以上でサブディレクトリへの WordPress のインストールは終了です。

以降はブラウザからアクセスして管理者ユーザの作成を行っても良いですし、このままコマンドラインから

$ wp core install --url= --title= --admin_user= --admin_password= --admin_email=

とコマンドでインストールしても良いです。