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

セルフホスティングの Amimoto AMI では wp-setup を使用することでバーチャルホストへの WordPress のインストールを簡単に行うことができます。

なお、マネージドホスティングをご利用の場合、この手順で WordPress のサブディレクトリへのインストールはできません。弊社にて作業いたしますので、 Amimoto ダッシュボードよりご連絡ください。

しかし、この 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_nameroot を書き換える必要があります。また 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 とします。

AmimotoAMIでは 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
$

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?$args;
    }

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

nginx の設定ファイルの修正を行った後は sudo service nginx reload で設定ファイルの変更を反映してください。
以上でサブディレクトリへの WordPress のインストールは終了です。
以降はブラウザからアクセスして管理者ユーザの作成を行っても良いですし、このままコマンドラインから wp core install --url=<url> --title=<site-title> --admin_user=<username> --admin_password=<password> --admin_email=<email> コマンドでインストールしても良いです。