-ChatGTPの助けを借りて-
自宅サーバー立ち上げで立ち上げたはずのサーバーがうまく動作しない。具体的には、WordPressインストールディレクトリを公開URLに表示させないようにしたところ、ディレクトリは公開されない設定には成功した。しかし、wordpressの標準でついてるブロックエディタ(Gutenberg)で編集した投稿内容が保存ができない。保存ボタンを押すと保存中のまま進行しない。
という状況に陥ってしまいました。いくらやっても解決しないので、困ったときのChatGTPだのみです。ChatGPT(GPT-5.5)に調査を依頼し、一緒に原因を一つずつ切り分けていくことにしました。
数時間にわたり、WordPress・Apache2の設定について順番に確認した結果、原因は、幾つかの設定ミスであったことが判りました。
同じ症状で困っている方の参考になればと思い、ChatGTPと一緒に解決した方法をまとめました。
構成
- OS:Ubuntu 24
- Webサーバー:Apache2
- WordPress本体:
/var/www/html/**** - 公開URL:
https://kagaku.info - WordPressアドレス:
https://kagaku.info/**** - サイトアドレス:
https://kagaku.info
発生した問題
WordPressのインストールディレクトリを公開URLに表示しない設定後、次の現象が発生しました。
- ブロックエディタ(Gutenberg)で保存すると「保存中」のまま終了しない
https://kagaku.info/wp-json/が Not Found- パーマリンクを「基本」以外に設定すると記事が Not Found になる
原因
- Apacheの
mod_rewriteが無効だったため、WordPressのリライトルールが機能していなかった。 000-default.confとwordpress.confの2つのVirtualHostが同時に有効になっており、DocumentRootが競合していた。000-default.confにAllowOverride Allの設定がなく、.htaccessのリライトルールが適用されていなかった。
解決方法
1. mod_rewrite を有効化
sudo a2enmod rewrite
sudo systemctl restart apache2
2. 000-default.conf を修正
DocumentRoot を /var/www/html とし、次の設定を追加。
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
3. wordpress.conf を無効化
sudo a2dissite wordpress.conf
sudo systemctl reload apache2
これにより、VirtualHostの競合を解消されました。
動作確認
以下を確認し、すべて正常に動作しました。
/wp-json/がJSONを返す- パーマリンクが正常に表示される
- ブロックエディタで保存できる
- サイトが
https://kagaku.infoで正常に表示される
現在の構成
- 有効なVirtualHost:
000-default.confのみ DocumentRoot:/var/www/html- WordPress本体:
/var/www/html/**** - ルートの
index.phpからwordpress/wp-blog-header.phpを読み込む構成
今回のトラブルは複数の要因が重なっていましたが、ChatGTPの力を借りて、一つずつ切り分けて原因を特定できたため、根本的な解決に至りました。今後同様の構成を構築する際にも役立つ手順になると思います。
