FTPを使ってサーバーにファイルをアップロードしようとしたとき、突然「550エラー」が表示されて困った経験はないでしょうか。
このエラーはWebサイト制作者やサーバー管理者にとって比較的よく遭遇するトラブルのひとつですが、原因が複数あるため対処法を知らないと解決に時間がかかることもあります。
本記事では、550 FTPエラーの意味と原因を整理したうえで、具体的な対処法をわかりやすく解説していきます。
エラーメッセージの意味が理解できれば、冷静に対処できるようになるでしょう。
FTP操作に不慣れな方にも理解しやすいよう、基本的な部分から丁寧に解説しますので、ぜひ最後までご覧ください。
550 FTPエラーとはファイルアクセス拒否を示すサーバー応答コードである
それではまず、550 FTPエラーの基本的な定義と意味について解説していきます。
FTPの通信では、サーバーとクライアント間でさまざまな数字のレスポンスコード(応答コード)がやり取りされます。
このレスポンスコードは3桁の数字で構成されており、最初の数字によって応答の種類が分類されています。
「5xx」系のコードは恒久的なエラー(Permanent Negative Completion)を意味しており、コマンドが受け付けられなかったことを示します。
そのなかでも「550」は「Requested action not taken. File unavailable」と定義されており、日本語では「要求されたアクションが実行されませんでした。ファイルが利用できません」という意味です。
つまり、ファイルやディレクトリへのアクセスが何らかの理由で拒否されたことを示すエラーコードがFTP 550です。
FTPレスポンスコードの基本体系
550エラーをより深く理解するために、FTPレスポンスコードの体系について整理しましょう。
| コードの先頭数字 | 意味 | 代表的なコード |
|---|---|---|
| 1xx | 肯定的な予備応答(処理中) | 150(ファイル転送開始) |
| 2xx | 肯定的な完了応答(成功) | 200(コマンド成功)、226(転送完了) |
| 3xx | 肯定的な中間応答(追加情報要求) | 331(パスワード要求) |
| 4xx | 一時的なエラー(再試行可能) | 421(接続タイムアウト) |
| 5xx | 恒久的なエラー(コマンド拒否) | 550(ファイルアクセス拒否) |
550エラーは5xxの恒久的なエラーに分類されるため、同じコマンドを繰り返しても解決しないという特徴があります。
原因を特定して設定を修正しない限り、エラーは継続して発生します。
550エラーが発生する代表的な状況
550エラーが発生する状況はいくつかパターンがあります。
代表的なものを挙げると以下のとおりです。
550エラーが発生する主な状況
・ファイルのアップロード時にアクセス権限が不足している
・存在しないディレクトリへのアクセスを試みている
・サーバー側でファイル上書きが禁止されている
・ディスク容量が不足しているためファイルの書き込みができない
・ファイル名に使用できない文字が含まれている
これらの状況のどれに該当するかによって、対処法が異なります。
エラーメッセージをよく読み、状況を正確に把握することが解決への近道です。
550エラーと他のFTPエラーコードとの違い
よく混同される他のFTPエラーコードとの違いも確認しておきましょう。
「530 Not logged in」はユーザー認証失敗を示すエラーで、ユーザー名やパスワードが間違っていることが原因です。
「553 File name not allowed」はファイル名の問題で転送が拒否されたことを示し、550とは別の理由によるエラーです。
550は主にアクセス権限・ファイルの存在・ディスク容量に関するエラーであり、認証自体は成功しているにもかかわらず操作が拒否されているという点が特徴です。
550 FTPエラーの主な原因を詳しく確認しよう
続いては、550 FTPエラーが発生する主な原因について詳しく確認していきます。
原因を正確に把握することが、適切な対処につながります。
アクセス権限(パーミッション)の設定ミス
550エラーの原因として最も多いのがファイルやディレクトリのパーミッション(アクセス権限)設定の問題です。
Linuxサーバーでは、ファイルやディレクトリに対してオーナー・グループ・その他のユーザーのそれぞれに、読み取り(r)・書き込み(w)・実行(x)の3種類の権限が設定されています。
FTPでファイルをアップロードするユーザーに書き込み権限が付与されていない場合、サーバーはファイルの書き込みを拒否し、550エラーを返します。
特に新しいディレクトリを作成してそこにファイルをアップロードしようとする場合や、既存のファイルを上書きしようとする場合に発生しやすいトラブルです。
パーミッションは数値で表記され、たとえば「755」は「オーナーは全権限、グループとその他は読み取り・実行のみ」という意味になります。
ディレクトリやファイルが存在しない
指定したパス上にディレクトリやファイルが存在しない場合も、550エラーが発生することがあります。
FTPクライアントで接続先のディレクトリパスを誤って入力していたり、サーバー上で事前に作成すべきディレクトリが存在しなかったりする場合がこれに当たります。
大文字・小文字の違いでパスが一致しないことも原因のひとつです。
Linuxサーバーはファイルシステムが大文字・小文字を区別するため、「/public_html」と「/Public_Html」は別のパスとして扱われます。
ディスク容量の不足
サーバーのディスク容量が不足している場合にも、550エラーが返されることがあります。
ファイルをアップロードしようとしても、書き込む空き容量がなければサーバーはファイルの作成を拒否します。
共有サーバーを利用している場合は、割り当てられたディスク容量(クォータ)を超えているケースもあります。
管理パネルやサーバーの管理コマンドでディスク使用量を確認し、不要なファイルを削除するなどの対応が必要です。
550 FTPエラーの具体的な対処法と解決手順
続いては、550 FTPエラーの具体的な対処法と解決手順について解説していきます。
原因別に対処法が異なるため、順を追って確認していきましょう。
パーミッションの確認と修正方法
パーミッションの問題が原因の場合、まず現在のパーミッション設定を確認する必要があります。
FTPクライアント(FileZillaなど)では、ファイルを右クリックして「ファイルのパーミッション」を選択することでパーミッションを確認・変更できます。
一般的なパーミッション設定の目安
・ディレクトリ(フォルダ):755(rwxr-xr-x)
・PHPファイル・HTMLファイル:644(rw-r–r–)
・設定ファイル(wp-config.phpなど):600(rw——-)
・実行スクリプト:755(rwxr-xr-x)
Webサーバーがファイルを読み書きできるよう、Webサーバーの実行ユーザー(www-dataやapacheなど)に適切な権限が与えられているかどうかも確認しましょう。
SSHでサーバーにアクセスできる場合は、chmodコマンドを使ってパーミッションを変更することもできます。
ディレクトリの存在確認と作成
アップロード先のディレクトリが存在しない場合は、事前にディレクトリを作成する必要があります。
FTPクライアントのサーバー側パネルで対象のディレクトリが正しく存在するかどうかを目視で確認しましょう。
存在しない場合は「新しいディレクトリを作成」の機能を使って作成するか、SSHでmkdirコマンドを使って作成します。
また、パスの大文字・小文字が正しいかどうかも念入りに確認することが大切です。
ディスク容量の確認と対処
ディスク容量不足が原因の場合は、まず現在の使用状況を確認しましょう。
多くのレンタルサーバーでは管理パネルからディスク使用量を確認できます。
SSHが使える環境では「df -h」コマンドでディスクの使用状況、「du -sh /path/to/dir」コマンドで特定ディレクトリのサイズを確認できます。
古いバックアップファイルや不要なログファイルが大量に溜まっていることが原因であれば、それらを削除するだけで解決できます。
550 FTPエラー解決のための確認チェックリスト
□ アップロード先ディレクトリのパーミッションが書き込みを許可しているか
□ アップロード先のディレクトリが実際に存在しているか
□ パス指定に大文字・小文字のミスがないか
□ サーバーのディスク残量は十分にあるか
□ FTPユーザーのホームディレクトリ設定は正しいか
□ サーバー側でファイル上書き禁止の設定がされていないか
FTPクライアント別の550エラー対処法と設定確認
続いては、代表的なFTPクライアントソフトにおける550エラーの対処法と設定確認方法について解説していきます。
使用しているクライアントによって操作手順が異なりますので、該当するものを参照してください。
FileZillaでの550エラー対処法
FTPクライアントの中でも最も広く使われているFileZillaでの対処法を確認しましょう。
FileZillaでは、メッセージログウィンドウに550エラーの詳細が表示されます。
エラーメッセージを確認したうえで、サーバー側のファイル一覧を表示し、対象ディレクトリを右クリックして「ファイルのパーミッション」を選択することでパーミッションの確認と変更が可能です。
また、サイトマネージャーでの接続設定が正しいかどうかも確認してみましょう。
特にデフォルトのリモートディレクトリ設定が誤っている場合、接続後に意図しないディレクトリに移動してしまうことがあります。
WinSCPでの550エラー対処法
WinSCPはSFTPやFTPに対応したWindowsユーザーに人気のクライアントです。
WinSCPでは550エラーが発生した際、エラーダイアログにエラーの詳細が表示されます。
ログ機能を有効にすることで、より詳細なサーバーの応答内容を確認できるため、原因の特定に役立ちます。
パーミッション変更はファイルやフォルダを右クリックして「プロパティ」を選択することでおこなえます。
コマンドラインFTPでの550エラー確認
コマンドラインのFTPクライアントを使用している場合は、サーバーからの詳細なエラーメッセージがターミナルに直接表示されます。
「ls -la」コマンドを使ってディレクトリの詳細一覧を確認し、パーミッションの状態を把握することができます。
また、「pwd」コマンドで現在いるディレクトリのパスを確認し、意図したディレクトリに移動しているかどうかを確かめることも重要です。
まとめ
550 FTPエラーは、ファイルやディレクトリへのアクセスが拒否されたことを示すサーバー応答コードです。
原因としては、パーミッションの設定ミス・ディレクトリの不存在・ディスク容量不足・ファイル名の問題などが挙げられます。
エラーメッセージの内容を丁寧に確認し、原因を特定してから適切な対処をおこなうことが解決の近道です。
FileZillaなどのFTPクライアントを使用している場合は、ログやエラーダイアログを活用することで原因を絞り込みやすくなります。
本記事で紹介したチェックリストを参考に、550エラーが発生した際は順を追って確認・対処してみてください。