更新失敗の原因を追求
前回の日記で書いたWordpressの更新失敗。その後も原因を考えていました。まずは発生した現象を整理します。
突然Wordpressのインストールディレクトリや配下のwp-contentディレクトリが見えなくなった
FTPの接続情報を入力するところまでは今までと同じ。その後ファイルをダウンロードしようとするとディレクトリが見えなくなっている様子。
ちなみに前回のアップデートまではまったく問題なく動いていた。
2つ動かしているドメインのうち、一方は何もせず更新可能。もう一方は更新失敗。
これは大きな手掛かりになりそうな現象ですね。更新失敗して困っている間にも、もう一方のドメインではまったく問題なくアップデートできてしまったんです。
この2つはそれぞれに別のLinuxユーザを作成し、それぞれ別のディレクトリにWordpressをインストールしており、MySQLデータベースも別に作成してあるため全くの別物だと考えてよいもの。なので、今回の事例をみる限り原因になり得るのは
- ユーザに起因するもの
- インストールディレクトリに起因するもの
のどちらかであろうと推測。ここで前回Proftpdに対して行った設定変更を振り返ります。
Proftpdに対して行った設定変更の内容
以下のとおり2点を修正したのでした。
- 各ユーザは/home/ユーザ名/public_htmlより上の階層のディレクトリを見れないようにする
- FTPで接続した際、Proftpdのバージョンが表示されないよう修正
本来2番などは毎回行っていた設定なんですが、なぜかUbuntu18.04に入れ替えたとともにProFTPDを設定し直したときに漏れていた様子。今更ながら物騒なのでバージョンを隠すように変更しました。
そして…1番は思いっきり今回の原因になっていそうな変更点ですね…。発生した現象と合わせて調査した結果、すぐに分かりました。
WordPressのインストールディレクトリとユーザが見れるディレクトリの設定の乖離が原因でした
更新成功した方のWordpressは「/home/ユーザ名/public_html/」より下の階層にインストールされており、失敗した方のWordpressは/home/ユーザ名/public_html/」以下ではなく「/var/www/」以下の階層に置いているのです。
FTPの設定でユーザのホームディレクトリ下のpublic_html以下のディレクトリしか見えないようにしてしまったら/var/以下のディレクトリなど見れるはずもありませんね。
ということで上記1番の設定を以下のように修正しました。
「特定のユーザを除き/home/ユーザ名/public_htmlより上の階層のディレクトリを見れないようにする」
そしてまさに失敗した方のWordpressの所有者を上の条件の例外となるようにしたら直りました。
しばらくサーバの管理的なことをサボっていたらこんな簡単なミスを犯してしまったのでした。オハズカシイ…