ナム山

家最高 今年一年でサックスが吹けるようになるか観測中

Wordpressのインストールは成功したが表示が崩れたときのメモ

少し変わったサーバー設定で作業したら困ったのでメモ。

概要

コーポレートサイトにブログを新設したい、という案件。
CMSWordpress
現在の静的コンテンツが置かれているサーバー(A)とは別のサーバー(B)にWordpressだけ展開するというもの。
URLはサーバーAのブログ用ディレクトリと、サーバーBのルートが紐づいている、という仕組み。
(例)http://example.com/wp_dir/ = http://cgi-server/test/root/

症状

http://example.com/wp_dir/からインストールに進むも、その時点で表示が崩れている。※
とりあえず進めてインストール成功するもインデックス画面も表示が崩れている。※
ログインもできない。
※コンソールエラー「Failed to load resource: net::ERR_NAME_NOT_RESOLVED」が出ている。

原因

Wordpressを展開した方のサーバーBのリバースプロキシが原因で、Wordpressのパスが書き換えられてしまっていた。

そのためFailed to load resource: net::ERR_NAME_NOT_RESOLVEDのエラーで、「読み込めないよ」と言われているURLも
http://cgi-server/wp-admin/js/anguage-chooser.min.js
とか、直接サーバーBのしかもルートからパスを読んでエラーになっていた。
http://example.com/wp_dir/からアクセスしているのにここはどこなんだ、ということでした。

対処法

functions.phpからサイトURLを指定する。
冒頭に
update_option( 'siteurl', 'http://example.com/wp_dir/' );
update_option( 'home', 'http://example.com/wp_dir/' );
と実際に指定したいurlを絶対パスで記入する。
参考
サイト URL の変更 - WordPress Codex 日本語版

蛇足

Failed to load resource: net::ERR_NAME_NOT_RESOLVEDについて
見慣れないエラーなので調べたがあまり要領を得ず。

Chrome - net::ERR_INSECURE_RESPONSE のエラーが発生していてページ遷移できないことがある。|teratail

>違うサーバー名のホストがレスポンスしてきたぞ

とあるので、名前の通りサーバー名がちゃんと解決してないよ、ってことかなと。
実質404みたいなものなので、上記の通りパスが通れば良いというのは変わらず。
勉強になりました。