15

私は、ファイルをダウンロードまたはアップロードするために FTP サーバーに接続する必要がある Web アプリを作成中です。アプリケーションは PHP で作成され、Linux サーバーでホストされています。

私が疑問に思っていたのは、SFTP サーバーのサポートも提供できるかどうかということですが、Google で簡単に検索したところ、これはそれほど単純ではないようです。

問題は、PHP 内から SFTP を使用する最良の方法は何でしょうか? 同じ関数を両方に使用できるように、SFTP だけでなく FTP もサポートできるクラスはありますか?

4

5 に答える 5

14

はい、 cURLでそれを行うことができます。FTP から SFTP に切り替えるには、プロトコル オプション フォームCURLPROTO_FTPをに変更するだけですCURLPROTO_SFTP

cURL は次のプロトコルをサポートします: HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TELNET、LDAP、LDAPS、DICT、FILE、TFTP。

ところで。SFTP を FTPS と混同しないでください。SFTP は SSH ファイル転送プロトコルであり、FTPS は FTP over SSL です。

于 2009-04-04T21:36:01.340 に答える
7

cURLがインストールされていない場合(私のホストはインストールされていません)、phpseclibを使用できます。

http://phpseclib.sourceforge.net/documentation/net.html#net_sftp

于 2009-07-01T17:13:13.880 に答える
4

In case someone end-up on this page.

You also may use the PHP Bindings for LIBSSH2 with PHP. It should be appropriately installed on the system.

In Ubuntu 10.04 and Debian Lenny, of course with all dependences

apt-get install libssh2-php
于 2011-01-04T10:36:27.847 に答える
3

Igorの推奨事項の問題は、とりわけ、移植性の低いコードを作成し(libssh2はあまり多くのホストにインストールされていない)、はるかに直感的なOOPベースのAPIを備えており、RSA認証が実際に理にかなっていることです(libssh2には公開鍵と秘密鍵をファイルシステムに別々に保存します。ほとんどの秘密鍵形式は公開鍵が含まれているため、別々に提供する必要があるという事実はばかげています)。

phpseclibも高速です:

http://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php/#comment_3759

于 2011-01-09T00:34:22.913 に答える