概要
- 一つのサーバ上で複数のドメインを設定できます。
- site-availableでドメインごとに表示するページ設定を作成し、site-enabledにシンボリックリンクを貼ります。
- WordPressのファイルを置くディレクトリ構成が悪いと、うまく記事を編集できなくなります。
今回やること
ドメインを2つ使って別のブログやホームページを表示したい!しかしサーバーは一つにしたい。そんな時にどうしたら良いかを解説します。これまでAAAA.comを持っていた人がBBBB.comを追加するイメージです。NGINX, mySQL上にもう一つデータベースを追加して、二つのドメインを持つようにします。

インストールフォルダ構成
フォルダ構成について試してみたところ、Aの構成ではうまくいきませんでした。設定ファイルを変更しながら、一旦wordpressのインストールまで実施したのですが、結局記事の保存ができないエラーが出てしまい、手詰まりになりました。Bの構成では二つのドメインを使用することができました。Bの構成ですとあまり綺麗でないので、Cの構成にした方が統一感が出てすっきりするかと思います。

DatabaseとWordpressのファイルの作成
WordPressのインストールは下記の記事を参考にしてください。上記の図のBかCの構成にする必要があるので、var/wwwの下に新しいフォルダを作成して下さい。nginxとmySQLはインストール済みなので、新しいDBの作成とWordpressの最新ファイルのコピー後、wp-config.phpの設定まで行います。
Ubuntu20.04にnginx、mySQL、WordPressをインストールする | エンジニアの所感 (niseng.biz)
Wordpressのファイルのコピー前に下記のように打てばディレクトリが作成できます。下の例では2行目と4行目でディレクトリを作成して、Wordpressのファイルをtmpフォルダからコピーしてwww-dataに権限を与えています。以下BBBB.comを作成する前提で作業していきます。
$ cd /var/www
$ mkdir BBBB.com
$ cd /BBBB.com
$ mkdir html
$ mv /tmp/wordpress /var/www/BBBB.com/html/
$ chown www-data.www-data /var/www/BBBB.com/html/wordpress/* -R
nginxにサイト情報を設定
nginxにはサイト情報が登録されている場所があります。/etc/nginx/sites-availableです。もう一つ似たフォルダとしてsites-enabledがあります。sites-availableにサイトの設定ファイルを作成し、sites-enabeldにsites-availableの設定ファイルのリンクを貼り、nginxが起動時にsites-enabledの情報を読み込みに行っています。こうしておくと、sites-enabledのリンクを削除するだけで、サイトの設定ファイルをそのまま残しつつ、サイトを表示するかどうかコントロールすることができます。

サイト設定ファイルの作成方法
サイトの設定ファイルとして初期設定のdefaultが既に用意されていますので、これをコピーしてサイト設定ファイルを作っていきます。
$ cd /etc/nginx/sites-available
$ sudo cp default BBBB.com
$ sudo vim BBBB.com
sites-availableのBBBB.comファイルの中身は下記の太字のところを修正します。
server {
listen 80; #default_server; #default_serverの記載をコメントアウト
listen [::]:80; #default_server; #default_serverの記載をコメントアウト
root /var/www/BBBB.com/html; #rootのところをフォルダ構成に合わせて修正
# Add index.php to the list if you are using PHP
index index.php;
server_name BBBB.com www.BBBB.com; #サーバーネームを設定
location / {
try_files $uri $uri/ /index.php?args; #パーマリンク対策
}
次にsite-enabledにシンボリックリンクを貼ります。sites-enabledに移動して、site-availableのBBBB.comのリンクをBBBB.comという名前で作成します。
$ cd /etc/nginx/sites-enabled/
$ ln -s /etc/nginx/sites-available/BBBB.com BBBB.com
念のためnginxの設定に問題がないか下記コマンドで確認しておきましょう。default serverが2つ以上定義されている場合などは問題となります。確認後nginxの再起動もしてしまいましょう。
$ sudo nginx -t #nginxの設定の確認
$ service nginx restart #nginxの再起動
ドメイン名とIPアドレスの関連付け
もしもまだ新しいドメイン名がサイトのIPアドレスと関連付けされていない場合は関連付けしましょう。DDNSでなくても構いませんが、DDNSで関連付けする場合は以下の記事が参考になります。
DDNSサービスでドメイン名とIPアドレスを紐づける | エンジニアの所感 (niseng.biz)
WordPressのインストール
http://BBBB.com/wordpressと入力すればwordpressのインストール画面が表示されるはずです。
(2022/04/28更新)
myDNSのドメイン登録が間違っていたりしてうまくいかない場合は、sites-availableの中のdefaultファイルを修正し、IPアドレスを使ってwordpressのインストールができます。/etc/nginx/sites-available/defaultを修正します。4行目のrootフォルダを今回追加したフォルダに変更します。
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/BBBB.com/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
この設定をすれば、検索バーに「サーバのIPアドレス(192.168.1.2など)」/wordpressと入力すれば、wordpressのインストール画面が表示されるはずです。

今回はここまでです。お疲れ様でした。
参考リンク
今回参考にさせて頂いたサイト様です。ありがとうございました。