2010年10月17日に投稿

[PHP] 共有サーバーで、FTP クライアントで消せなくなってしまったファイルやディレクトリを消す

共有サーバーを使っていると消せなくなってしまったファイルやディレクトリに出くわすことがあります。私の場合は、WEBブラウザを使ってPEARをインストールする方法を採りました。インストールには成功したものの削除しようと思っても所有者がapacheになってしまっているためか、PEARでインストールしたディレクトリが削除できなくなってしまいました。共有サーバーの場合、所有者の変更もできませんでした。このような状況に陥った場合、次の方法を試してみて下さい。

PHPには、シェルのコマンドを実行する関数が用意されています。shell_exec 関数にコマンドを引数として渡すことで、渡したコマンドを実行することができます。環境によっては使用できるコマンドとそうでないものがあるらしいのでご注意下さい。以下のコードは、同じディレクトリにあるPEARというディレクトリを削除する場合のコードです。

shell_exec 関数に渡している引数は、Linux のコマンドそのものになります。今回使用したコマンドはrmコマンドです。このコマンドはファイルやディレクトリを削除するときに使用されます。半角スペースに続いて -r とありますが、これはオプションと呼ばれ、rm コマンドの挙動に影響を与えます。rオプションはディレクトリの中にファイルやサブディレクトリが存在していても、再帰的に削除を行ないます。つまり、ディレクトリ丸ごと消すことができます。

関連記事

Leave a Reply