通知
すべてクリア

解決済みFTPで正常にファイルアップロードできない

投稿: 9
質問投稿者
コミュニティ参加日: 3か月前

現在Xserverで2台運用しています。
1つはプレミアムプランで、もう一つはビジネスプランです。
プレミアムプランで利用しているサーバー(Aサーバー)ではFTPが正常に利用できます。
しかしビジネスプランのサーバー(Bサーバー)ではカレントディレクトリが見つからないとエラーになり正常にアップロードできません。
接続自体は問題なくできているのですが、BサーバーとのFTPログでは下記のように文字化けしたレスポンスが返ってきます。

550 カレントディレクトリは "/testserver.com/public_html" です: そのようなファイルやディレクトリはありません

ソフトはNetBeans12.6を利用しております。
ソフトでのFTP接続設定についてはアカウントとディレクトリ情報以外はAサーバー、Bサーバーに相違がないことは何度も確認いたしました。
同じ内容ファイルでそれぞれにアップロードも試しましたが、Bサーバーだけが正常にアップロードできません。

何かお分かりになることがあればお知恵を拝借させてくださいますようよろしくお願いいたします。

対象サービス
14件の返信
還じい
投稿: 269
コミュニティ参加日: 1年前

メッセージの先頭に「550」というエラーコードらしきものが確認できるので、550について調べてみるとどちらかが原因のようです。

※サーバーパネルでエラーログが取得できる場合は、内容を確認した方がいいですね。

 

  1. アクセス権限
  2. ファイルシステム

 

アクセス権限では、アップロード先のディレクトリに書き込み権限がない。

ファイルシステムでは、サブFTPアカウントを使っている場合になりますが、そのアカウントに設定された容量がいっぱいになっている。

 

以上の2点が考えられるので、ご確認ください。

 

 

返信
1件の返信
コミュニティ参加日: 3か月前

投稿: 9

還じい様

ご回答いただきまして誠にありがとうございます。

Bサーバーについては利用開始直後で、現在アクセス権限はつけておりません。
また、ファイルマネージャでは正常にアップロードが可能なのですが、NetBeansからアップロードしようとするとエラーになります。

550エラーが出ているのは、おそらくログが文字化けしていることから、カレントディレクトリの指定を正常に渡せていないのか、サーバーで受け取れていないのではないかと推測し、サーバーまたはNetBeansの文字エンコードが何かしら関係しているのではないかと考え、
SSHでサーバーの文字エンコード、NetBeansのエンコード、どちらも調べてはみたのですが、どちらもUTF-8でした。
NetBeansが、アップロード先のサーバーによって勝手にエンコードを変えるとは思えないのですが、XサーバーのプランやサーバースペックによってFTPサーバーの設定が変わるものなのか、全く分からず現在も調査中です。

また何かお気づきの点ございましたらご助力いただけましたら幸いです。

どうぞよろしくお願い申し上げます。

返信
投稿: 182
コミュニティ参加日: 1年前

「Bサーバー」の「サーバーパネル」において、「FTP制限設定」は特に設定していない状態ですか。

▼FTP制限設定
https://www.xserver.ne.jp/manual/man_ftp_id.php

返信
3件の返信
コミュニティ参加日: 3か月前

投稿: 9

Vindo様

 

ご連絡ありがとうございます。

 

はい。FTPの制限は一切入れておりません。

Xserverからメールで届いた、メインFTPアカウントで接続しております。

ログを見た感じでは接続については問題なさそうですが、その後の転送の部分で

Bサーバーの場合は

PWD
257 カレントディレクトリは "/public_html" です
CWD カレントディレクトリは "/public_html" です
250 CWDコマンド 成功

といった感じで文字化けしております。

Aサーバーでは

PWD
257 "/testserver.com/public_html" is the current directory
CWD /testserver.com/public_html
250 CWD command successful

と正常に表示されます。

何かお気づきの点ございましたらご助言よろしくお願いいたします。

返信
コミュニティ参加日: 1年前

投稿: 182

NetBeansでどのような設定/どこまでの操作ができるかはわかりませんが、

・「サーバー上の初期ディレクトリ」に関する設定がある
・FFFTPやFileZillaなどのように、FTPソフト上で「サーバー側」のディレクトリを移動する操作が自由にできるようになっている(ツールによっては、設定画面上で指定したディレクトリへのアップロード以外、ユーザーからの操作を受け付けないものがあるかもしれないので…)

といった仕様の場合、

・「サーバー上の初期ディレクトリ」は空白にする(=FTP接続時にはホームディレクトリのフォルダ・ファイル一覧が表示される)
・そこからサーバー側のディレクトリをたどっていく

といった方法で、作業をしたいディレクトリまで移動できるか試してみてはいかがでしょうか。

 

質問文を見る限りでは、現状ではNetBeans側の初期設定で「サーバー側の初期ディレクトリ」に「下層ディレクトリ」を指定し、サーバーに接続したあと、直接下層ディレクトリにアクセスし、ファイルをアップロードするような操作をしているようにも見えたので、念のための確認です。

返信
コミュニティ参加日: 3か月前

投稿: 9

Vindo様

度々のご助言ありがとうございます。

私自身、NetBeansを使いこなしているというわけではないのですが、FileZillaのようなFTPに特化したソフトではなく、システム開発ツールソフトでFTP機能がある感じで、リモートサーバー上に直接ディレクトリ等を作成・削除する機能が主立ってはございません。
新規ディレクトリをリモートサーバー上に作るには、ローカルでディレクトリを作ってそのままFTP機能でアップロードするという形になります。
リモートサーバー側と同期する機能はございますが、Bサーバーにおいてはサーバーとの同期も、ファイルのダウンロードもできない状況です。(Aサーバーではもちろんできます)

一応Xserverの管理画面で、ファイルディレクトリから新規ディレクトリを作成して、そのディレクトリを指定してもやはり文字化けして正常に動作しませんでした。

また何かお気づきの点ございましたら誤してくくださいますようよろしくお願いいたします。

返信
投稿: 4
コミュニティ参加日: 1年前

文字化け文字列を、もじばけらったのサイト( https://lab.kiki-verb.com/mojibakeratta/) で解読してみました。
もじばけらった使い方ブログ: http://smkn.xsrv.jp/blog/2012/02/mojibakeratta/
上部タブ(「保存される前の文字コードと思われるもの」):ISO-8859-1
下部タブ(「保存された後の文字コードと思われるもの」):UTF-8
で読めるようになりました。
======
string(160) "550 カレントディレクトリは "/testserver.com/public_html" です: そのようなファイルやディレクトリはありません"
======
このエラーメッセージを見る限り、権限とかではなく、ディレクトリ設定などの問題ではないでしょうか。

返信
3件の返信
コミュニティ参加日: 3か月前

投稿: 9

tonio様

私のために調査いただきまして誠にありがとうございます。

調査していただいたことから、おそらくBサーバーからのレスポンスの文字コードが「ISO-8859-1」
で、私のPC(NetBeans)でUTF-8で変換されてログで文字化けを起こしていると考えてよいでしょうかね?

私のPCで、全く同じディレクトリにあるファイルをAサーバーにアップロードすると正常で、Bサーバーではエラーになるので
Xserver(Bサーバー)のディレクトリかFTPの設定に何か問題があるということになりますでしょうか?
Xserverのディレクトリの文字エンコードはどうやって調べたらいいのか、
そしてBサーバーのFTPの転送設定が怪しい気もするのです、それを調べる方法がないかも調べてみます。

その他お気づきの点ございましたらまたご助力いただけましたら幸いです。

どうぞよろしくお願いいたします。

返信
コミュニティ参加日: 1年前

投稿: 4

文字化けはその理解で良いと思います。
正確には、サーバーのエラーの文字コードはサポートに確認すれば良いかと思いますがNetBeansが文字コードの判別ができていないためでしょう。

Aサーバーもプランは違えど同じXServerということなので、エラーになるのは不思議ですね。
私はNetBeansのFTPを使ったことがないので知らないのですが、FTPの詳細ログを取る設定があれば、
それを確認すれば、FTPがどういう動作をしようとしてどこでエラーが出ているのかがわかるかもしれません。

そういう手段がなければ、A,Bサーバーともに同じXServerということですから、Xserverのサポートに問い合わせされるのが一番早く解決すると思います。Xserver側ならば、FTPのエラーメッセージだけでなく、FTP実行時のサーバー側ログも確認されるはずですので。

返信
コミュニティ参加日: 3か月前

投稿: 9

tonio様

ご返信ありがとうございます。

調べ続けていると、Sublimeというテキストエディタソフトでも同様の現象が起きているようで、
その方のブログでは、同現象はサーバー番号が sv16302 以降の環境で発生しているとのことですがやはり解決には至ってはいなさそうでした。

ads.txtの作成でも、UTF-8で作成したにもかかわらず「“ISO-8859-1” は誤った文字コードです。utf-8で作成してください。」というエラーが出るようで、これについては.htaccessの設定で何とかなるようなのですが、似たような現象がXserverにて起こっているようですね。

サポートにも連絡しているのですが、なかなか回答が来ないので独自解決できないかと模索して皆様にご協力いただいた次第です。

もう少し独力でも調べつつ、サポートからの返信を待ちたいと思います。

解決されれば本件に何かしら御礼と回答を申し上げたいと思います。

返信
投稿: 9
質問投稿者
コミュニティ参加日: 3か月前

本件はいまだ解決しておりませんが、原因としては

AサーバーのFTPからのレスポンスには英語記載のみですが、新サーバーとなったBサーバーからは日本語に翻訳されたものがレスポンスされるようになってます。

Aサーバーの場合のレスポンス
入力コマンド: PWD
サーバーからのレスポンス: 257 "/testserver.com/public_html" is the current directory

Bサーバーの場合のレスポンス
入力コマンド: PWD
サーバーからのレスポンス: 257 カレントディレクトリは "/testserver.com/public_html" です

エックスサーバー側の設定で、FTPからのレスポンスを翻訳しないようにする方法がないか、どなたかご存じであればご教示お願いいたします。

返信
投稿: 182
コミュニティ参加日: 1年前

むー、まだ解決してしませんでしたか…

 

内容を拝見した感じでは、

・PWDコマンドで返ってきたワーキングディレクトリをNetBeansが解析し、直後にCWDコマンドで明示的にカレントディレクトリにする(技術面に明るくないため、このCWDにどのような意味があるのかはわかりませんが…)
・NetBeans側ではPWDで返ってきた「文字化けしたもの」の解析がうまくいかず、BサーバーではCWDで存在しないディレクトリを指定してしまっている(ためにエラーが返ってきた)
 ※「カレントディレクトリは "/testserver.com/public_html" です」というディレクトリ名を指定している

といった感じでしょうか。

 

FTP接続時のレスポンスが日本語になる可能性としては、

・FTPサーバー側(エックスサーバー側)の言語設定で日本語を指定しているケース
 ※サーバー側の言語設定によっては、最初から日本語で出力されるようです
・クライアント側の言語設定に引きずられ、FTPサーバーからのレスポンスが標準的な英語であっても、クライアント側で日本語に翻訳されているケース

があるようです。

これまでの内容からすると、「文字化けしたもの」は、
FTPサーバーから「UTF8の日本語」でレスポンスがあった→NetBeans側は「ISO-8859-1」で解釈しようとして文字化けした、
といった流れのように見えるため、前者(FTPサーバー側)に何かしらの原因がある可能性が高そうでしょうか。

 

FTPサーバー側(エックスサーバー側)の言語設定をユーザーのにゃるさんが変更することはできませんので、この場合は公式サポートに問い合わせ、

・sv●●サーバーとsv■■サーバーでFTPサーバーの言語設定に相違がないか
 ※マニュアルページなどで触れられている箇所もありますが、エックスサーバーでは契約時期によって、「最新のサーバー環境のサーバー」と「古いサーバー環境のサーバー」が混在しています。
  本件も「Aサーバー」と「Bサーバー」の環境が異なる可能性は十分に考えられます。
 ※こういったものはサーバー番号単位の設定なので、サーバー番号を伝えるほうが調査が早く進みます。
・相違がある場合、★★の環境に統一してもらうことは可能か

などを確認するしか方法はありません。

サポートにも連絡しているのですが、なかなか回答が来ないので独自解決できないかと模索して皆様にご協力いただいた次第です。

とのことで、すでにサポートにも問い合わせ済みだとは思いますが、そちらのやり取りに付け加える形で確認してみるとよいかもしれません。

 

本件が後者にあたる可能性は低そうですが、Aサーバー用、Bサーバー用でクライアントマシンなどの作業環境(作業用のPC)を分けている場合、NetBeansのFTP機能ではない部分で言語設定などに相違がないかを見てみるとよいかもしれません。

返信
投稿: 9
質問投稿者
コミュニティ参加日: 3か月前

Vindo様

いつもありがとうございます。

Vindo様のおっしゃられているとおりで、
tonio様からお教えいただいた「もじばけらった」でログを全て翻訳したところ、NetBeansでは指定したカレントディレクトリと、PWDで返ってきたカレントディレクトリを比較するようで

CWD /testserver.com/public_html
250 CWDコマンド 成功
PWD
257 カレントディレクトリは "/testserver.com/public_html" です
CWD カレントディレクトリは "/testserver.com/public_html" です

と、PWDで返ってきたパスで再度CWDしようとしてしまっているのが原因かと思います。

たしかにAサーバーについては、エックスサーバーで言うところの旧サーバーで、Bサーバーは最近新たに契約したものなので新サーバーのようです。
filezillaでも確認したのですが、filezillaでもAサーバーでは英語表記でログがレスポンスされ、Bサーバーでは日本語でログが表記されるのでサーバー側の設定の問題かと思っております。

やはりFTPサーバーは単なる1ユーザーでは設定変えられませんよね。。
プログラム開発では海外のオープンソースのエディタを使っている方も多いと思うので、日本語レスポンスは結構問題ありそうな気もするのでなんとか対応してほしいところです。

今回の調査を踏まえて再度サポートには連絡済みで現在回答待ち状態です。
結果については改めてご報告させていただきます。

皆様いろいろとありがとうございました。
とても勉強になりました。

返信
投稿: 9
質問投稿者
コミュニティ参加日: 3か月前

皆様

 

昨日、エックスサーバーサポートより連絡がありまして、サーバー側の設定の際を確認していただき、サーバーメンテナンスをしていただいた後無事NetBeansでもFTPを利用できるようになりました。

皆様のお力添えのおかげでございます。

また何かございましたらご助力いただけましたら幸いです。

 

この度はありがとうございました。

 

返信