XREAサーバーでディレクトリやフォルダが削除できない

一昨日のMovable Typeのアップグレードで一部の作業をミスしたため、XREAサーバーでディレクトリやフォルダが削除できないというトラブルに遭遇しました。

ブログのバックアップ後にアプリケーションディレクトリ(mt.cgiなどがあるディレクトリ)のリネームを行います。自分の場合はpublic_html直下にmt.cgiなどを置いているので、@mt–ディレクトリを作成してそこにpublic_html内のディレクトリとファイルを全部移動しました。

後から考えれば、この「全部」というのが今回のトラブルの原因でした。「全部」の中には、Movable Typeとは関係ないlogディレクトリ(XREA側から提供されているアクセス解析のログを保存するために使うディレクトリ)も含まれています。そう、logディレクトリを除いておけば問題は起こらなかったのです。

新バージョンのプログラム一式をpublic_htmlにアップロードし、その後、mt-config.cgiをローカルからpublic_html直下にアップロードしました。この時、logディレクトリもローカルからpublic_html内にアップロードしました。そう、@mt–ディレクトリ内のlogディレクトリを移動すれば問題は起こらなかったのです。ここまでの作業の結果、public_html内と@mt–ディレクトリ内の両方にlogディレクトリが存在することになります。

Movable Typeのアップグレードが無事終了したので、不要となった@mt–ディレクトリをFTPソフトのNextFTP4で削除しようとしたところ、logディレクトリ内のimagesディレクトリとその中にある画像ファイル(gifとpng)が削除できません。同じlogディレクトリ内のphpmyadminディレクトリは削除できているのにどうして?(後から気が付いたことですが、ディレクトリとファイルの所有者が違うためにこのようになったようです。pmyadminディレクトリの所有者は自分ですが、imagesディレクトリの所有者はrootでした。)

FTPソフトでは削除できないのかと考え、「xreaにsshでシェルログイン」を参考にして、Tera Termのインストールとシェルログインを行い、UNIXコマンドで対処することにしました。しかし、”Permission denied”で削除はできませんでした。

もうお手上げとサポートに該当のディレクトリを削除していただくか、所有者の変更をしていただくか、どちらでもいいのでとお願いすることにしました。回答は、CGIから削除できる可能性があるのでCGIを変更して実行するか、SSHでログインしてrmコマンドで削除せよ、とのこと。

さっき自分でしたのと同じじゃないかと思いながらも、何かが変わっているかも(何か作業をしていただいたのかも)と、SSHでログインしてrmコマンドを叩きましたが、やはり、”Permission denied”で削除はできませんでした。

その旨を書いて、さらにご指導をいただくべくサポート氏にお願いをしたのですが、回答はありませんでした。仕方がないので、あれこれ調べて「ひょっとしたら、自分で所有者の変更ができるかもしれない。」と考え、SSHでログインしてchownコマンドを試してみました。”chown -R (自分のID) images”とコマンドを叩いたところ、エラーは表示されず、無事成功です。その後、NextFTP4で所有者がrootから自分に変わっていることを確認し、削除を行いました。

ふぅ~、長かったけれど、やっと解決したよ~!! サポート氏へは最初に所有者の件を伝えていたのに、書き方が悪かったのか気付いてもらえなかったようです、残念。後から調べてわかったのですが、「XREAサーバー内に出来る消せないimagesディレクトリ | ねこんち」に書かれているように、サーバー管理画面内データベースページで、PhpMyAdmin か PhpPgAdmin を(再)インストールすれば権限が変わり消せるようになるようです。上記で消せちゃったので確認ができませんが・・・

(SSHって初めてなもので、けっこうヒヤヒヤしてしまいました。ヒヤヒヤしながらやってしまうところが、素人かもしれませんが・・・ もうこんなヒヤヒヤは味わいたくないので、次のアップグレードの際はlogファイルはそのまま残しておくようにしないと。)