FTPソフトのFileZillaでサーバー上のあるファイルを削除しようとしたところ、550 No such file or directoryのエラーが出て削除できなかった時の話です。
エラーの対処法を調べてみると複数の対処法があったのでこちらにまとめます。
根本的なエラーの原因はアクセス権限か、要求したファイル/フォルダが見つからない事にあるようですが、解決まで時間がかかりました。
今回はFileZillaを使用していますが、他のFTPでも起こりえるエラーです。
この記事の目次
FTPで“550 No such file or directory”が出る時の対処法
FTP(FileZilla)を使ってサーバー上のファイル階層を変更していた時の事です。
ファイルの移動後に不要になったフォルダ(index.html)をFTP経由で削除しようとしたところ、550 No such file or directoryというエラーが出て詰まりました。
エラー時のコンソールの内容は以下のようなものです。
コマンド: CWD /ドメイン名/public_html レスポンス: 250 CWD command successful コマンド: PWD レスポンス: 257 "/ドメイン名/public_html" is the current directory コマンド: DELE index.html レスポンス: 550 index.html: No such file or directory 状態: "/ドメイン名/public_html" のディレクトリ リストを取得中... 状態: "/ドメイン名/public_html" のディレクトリ リストの表示成功
CWDコマンドは「250 CWD command successful」となっており、成功しています。
しかし、続くコマンドが「550 ファイル名: No such file or directory」となっており、失敗している様子...。
なぜかFTP経由で該当のフォルダ(index.html)を削除することが出来ません。
550 No such file or directoryが出る原因
調べたところ「550 No such file or directory」が出る原因には以下のようなものがあるようです。
- 該当ファイル/フォルダへのアクセス権限がない。
- 該当ファイル/フォルダとFTPの文字コードが異なる。
- 該当ファイル/フォルダに特殊文字が含まれている。
- ファイルが既に削除またはリネームされている。
「No such file or directory」は直訳すると「そのようなファイル、又はディレクトリはありません」という内容ですが、今回のように該当ファイルがFTPから閲覧できており、実際に存在している状態でもこのエラーが発生することがあるようです。
該当のファイル/フォルダに何らかの原因があり、FTPからサーバー上の該当ファイルにアクセスできない場合に発生するエラーみたいです。
ではそれぞれの原因と対処法を詳しく見ていきましょう。
アクセス権限がない場合
まずFTPからファイルに対するアクセス権限がない場合です。
この場合、FTPにはファイル/フォルダは表示されますが、操作に対する権限がないため「550 No such file or directory」というエラーで、サーバーから突っぱねられる事があるようです。
- サーバー設定などでFTPにIP制限をかけていないか?
- 該当ファイルのパーミッションの権限は適切か?
この2点を確認しましょう。
特にサーバー側の設定で、FTP接続に対してIPアドレスなどで接続制限をかけている場合、自分のIPが変わったことでIP制限に引っかかっている可能性があります。
FTPの文字コードが原因の場合
多くのFTPソフトでは文字コードは自動判別になっていますが、この設定が原因で「550 No such file or directory」というエラーが出ることもあるようです。
FTPの設定から、文字コードを「UTF-8」に変更して再トライしてみましょう。
FileZillaの場合は、
ファイル > サイトマネージャー > 文字コード
から「自動検出」や「UTF-8を強制」に切り替えられるので、試してみて下さい。
補足
操作が上手くいったら、この設定は元に戻しておきましょう。
FileZillaではデフォルト設定は「自動検出」です。
該当ファイルに特殊文字が含まれる場合
操作しようとしているファイル/フォルダに使用中のFTPで対応できない特殊文字が含まれいることが原因で「550 No such file or directory」が出ることもあるようです。
この場合可能なら、ファイル名をリネームして再トライしてみます。
リネーム操作も受けつけないなら、他のFTPソフトなどを試してみてください。
なお、FileZillaの場合は、転送設定から転送モードを「アクティブ」に変更することで解決できることがあるようです。
また、海外のフォーラムでFileZillaの暗号化方式を「平文」に変更することで、550 No such file or directoryのエラーを回避できたという報告を見つけましたが、これはリスクが高い(危険)なので個人的に非推奨です。
ダメなら他のFTPを試す
最後に僕が上手く言った方法のご紹介です。
実は今回、調べた上記の内容を全て試したのですが、決定打にはならず、依然として「550 No such file or directory」のエラーでフォルダの削除ができませんでした...。
そこで、WordPressプラグインの「File Manager」という、管理画面からFTPのようにサーバー上のファイルを操作できるプラグインを試したところ上手くいきました。
管理画面から「File Manager」をインストールして有効化し...
今回「550 No such file or directory」が出て削除不可能になっている「index.html」を削除してみたところ...アッサリ消え去りました・w・
何をやっても「550 No such file or directory」のエラーが出て上手くいかない場合は、他のFTPソフトを試してみると上手くいくかもしれません。
まとめ
以上、FTPソフト(今回はFileZilla)で「550 No such file or directory」が出て該当のファイル/フォルダを操作できない時の対処法でした。
調べたところ、1番多い原因がアクセス権限。続いて文字コードが原因という結果でしたが、僕の場合は何をやってもエラーが回避できませんでした。
FileZillaが原因とは言い切れませんが、何をやってもダメならFTPそのものを変更してトライしてみてください。WordPressをお使いの方は「File Manager」というプラグインを使えば僕のように上手くいくかもです。
結局はっきりとした原因が分からず気持ち悪いですが、上手くいったので良しとしておきます。ではではこのへんで・w・