サブドメインとApache、WP-CLIを活用した複数のWordPress管理方法

WordPress

自宅サーバーのOSは Fedora Server 42、普段操作しているPCは Windows 11 Pro です。
※以下の手順は自己責任で行ってください。

背景

私は、保有している複数のドメインをレンタルサーバーと自宅サーバーの両方で利用しています。
これまでは、Windowsの hosts ファイルを編集することで、どちらのサーバーにアクセスするかを切り替えていました。

自宅サーバーでは /var/www/html/ 以下に複数の WordPress(例:wp1~wp3)をディレクトリ単位で配置しています。
各 WordPress サイトへは、HTMLファイルに記述したリンクからアクセスしていましたが、hosts ファイルを書き換える手間が煩雑でした。

そこで、サブドメインを活用してドメインを切り分け、
たとえば home.example.com(自宅)と www.example.com(レンタル)といった形で、
HTMLリンク側でアクセス先サーバーを切り替える方法を採用しました。
この方法により、hosts ファイルの再編集が不要になります。

【Windows側】hostsファイルの編集

192.168.x.x  home.example1.com
192.168.x.x  home.example2.com
192.168.x.x  home.example3.com

【自宅サーバー】Apacheの設定

/etc/httpd/conf/httpd.conf に以下のように記述(各ドメインごとにVirtualHostを設定):

<VirtualHost *:80>
    ServerName home.example1.com
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

同様の設定を home.example2.com や home.example3.com にも追加します。

設定を反映:

# systemctl restart httpd

【WP-CLIのインストール】(Linux向け)

# curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# php wp-cli.phar --info # 動作確認
# chmod +x wp-cli.phar
# mv wp-cli.phar /usr/local/bin/wp # システム全体で利用可能に

WordPress内URLの一括置換(WP-CLI使用)

WordPressを設置した各ディレクトリに移動し、wp-config.php のある場所で以下を実行:

# cd /var/www/html/wp1
# wp search-replace 'http://example1.com/wp1' 'http://home.example1.com/wp1' --all-tables --allow-root

同様に、以下の組み合わせも実行します:

example2.com → home.example2.com
example3.com → home.example3.com

(※wp2、wp3 にも同様の置換を実行)

HTMLリンクの記述例

<a href="http://home.example1.com/wp1/">home.example1.com/wp1</a>
<a href="http://home.example1.com/wp2/">home.example1.com/wp2</a>
<a href="http://home.example1.com/wp3/">home.example1.com/wp3</a>

<a href="http://home.example2.com/wp1/">home.example2.com/wp1</a>
...

ブラウザキャッシュのクリア

リンク切り替え後に表示が反映されない場合は、以下の方法でキャッシュをクリアしてください:

Ctrl + Shift + R(強制再読み込み)
Ctrl + F5

この方法を使えば、HTMLリンク側で自宅サーバー・レンタルサーバーを自由に切り替え可能です。
複数の WordPress を分かりやすく整理しつつ、手間なく運用できる構成になります。