CORESERVERで消えないファイルがある (レンタルサーバー)


文字コードの関係か、 ファイル名 の一部に日本語(2バイト文字)を使ったファイルが消せなくなりました。リネームもできない状態でした。net2ftpでも文字化けした状態で、文字コードを強制的にShift-JISにすると、ファイル名は表示されましたが、削除はできませんでした。(ファイル名以外のメニュー等は当然文字化けします。)

解決方法としてはCGIを作ってワイルドカードで削除することができるということでしたので、それにならって削除することにしました。

CGIは以下の通りです。こちらの記事やこちらの掲示板を参考にしました。属性は755とし、/public_htmlに設置しました。

#!/usr/bin/perl

system("rm -rf /virtual/IDIDID/public_html/DDDDDD/FFFFFF");
print "Content-Type: text/html\n\n";
print "OK!!";
exit;

IDIDIDはアカウント名、DDDDDDはディレクトリ名、FFFFFFはファイル名です。例えば○○.jpgというファイルをすべて削除するル場合はFFFFFFは*.jpgになります。

とここまでは良かったのですが、実行するとエラーが表示されます。

Script Error

The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file.

なにかのエラーが出ているようですが、内容はわかりません。こちらのサイトを参考に、.htaccessに以下を追加してエラーの内容を表示するようにしました。

<Files del.cgi>
AddHandler cgi-script-debug .cgi
</Files>

1行目のdel.cgiは今回作成した削除用のスクリプト名です。
これで、cgiを実行して、エラーがあれば画面下の方に表示されます。

Output of script follows:
=====================================================
Content-Type: text/html

OK!!

エラーがなければ一番下にこのような表示がでます。

今回はコピー&ペーストしたスクリプトに全角スペースがあったことが原因でした。
訂正して実行した結果、文字化けしたファイルは無事に削除されました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

SPAM防止のため数字と漢数字の算数の計算をお願いします。 * Time limit is exhausted. Please reload CAPTCHA.