3

ログインの詳細を含む安全な FTP サーバーがあり、PHP から関数を使用してその安全な FTP サーバーに接続しようとしてftp_ssl_connect/ftp_connectおりftp_login、すべてのパラメーターを関数に適切に渡していますが、接続されていないことに驚いています。

ssh を使用してコマンド ラインから安全な FTP サーバーに接続しようとすると接続できますが、php コードを介して接続しようとすると接続できないため、なぜこれが起こっているのかわかりません。

また、PHP を使用してセキュア FTP サーバーに接続する他の方法は何ですか?

編集:使用してみssh2_sftpましたが、それでも安全な FTP サーバーに接続できませんでした。

EDIT 2:PHPでSFTPを実行する他の方法はありますか、アドバイスしてください。

更新: ssh2_sftp を使用して安全な FTP サーバーに接続するコードを追加しましたが、機能せず、プログラムがメッセージで終了しましたCannot connect to Server

<?php
$connection = ssh2_connect('www.server.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection) or die ("Cannot connect to server");

$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
?>
4

3 に答える 3

1

FTP/S (FTP over SSL) は SFTP (FTP over SSH) とはまったく異なるプロトコルであり、SSL ライブラリを使用して SFTP サーバーに接続することはできません (またはその逆)。

私は PHP プログラマーではありませんが、SSH サーバーに接続するためのいくつかのオプションが、お使いのプラットフォームでネイティブに利用できるようです

于 2010-01-31T05:55:25.757 に答える
1

mdb が言ったように、PHP で ssh2 拡張機能を使用する必要があります。Linux を使用している場合は、sudo pecl install ssh2 と非常に簡単です。OS X を使用している場合は、svn チェックアウトを実行するか、次の手順に従う必要があります。 10-6/

于 2010-01-31T05:58:36.743 に答える
1

私は、純粋な PHP SFTP 実装である phpseclib でかなりの成功を収めました。PECL エクステンションはインストールが難しいだけでなく、信頼性が低く、移植性が低いという事実を気にしないでください。

于 2011-02-04T05:37:12.167 に答える