[PHP-users 30821] Re: ftp_pwdができてftp_rawlistができません

Shu Sawada luna @ lunanet.gr.jp
2006年 11月 29日 (水) 03:43:53 JST


さわだと申します。

> 上記を実行して(1)は、正しくディレクトリ名が表示されます。
> 従って ftp_pwd はうまくいっていると理解しております。
> しかし、(2)および(3)は表示されません。
> (4)は 'bool(false)' が表示されます。

結論から先に言うと、
- ACTIVEモードで接続できる環境なのかどうかを確認してください
- あるいは、passiveモードで通信してみてください
  http://jp2.php.net/ja/ftp_pasv

(1)が表示されるのであれば、ログインまではうまく行っていると思います。
pwdコマンドの応答は、たとえば
257 "/" is current directory.
といったものです。
これはftp-controlのポート(21番)で通信しています。
ftpへのいわゆる「接続」「ログイン」というのは、21番での通信です。

対して、ディレクトリ一覧はLISTコマンドで実行されます。
ってことは、PORTコマンドです。
ftpについては説明すると面倒なので適当にぐぐって頂ければと思います。
(たとえば、http://x68000.q-e-d.net/~68user/net/ftp-1.html)

PWDは通るがLISTが通らないという状況から推測するに、外部からPHPスクリプト
を動作させている計算機に対してコネクションを張れない状況なのでは
ないでしょうか?

PHPスクリプトがftpサーバと何をやっているか見たければ、ターミナルを
2つ用意して
# tcpdump -i eth0 -X > tlog
とかやればわかると思います。

-- 
Shu Sawada
http://luna.lunanet.gr.jp/
http://www.cycleof5th.com/


PHP-users メーリングリストの案内