libssh2の罠

PHPsshを使ったファイル転送をしようとしてハマる。

エラーを検索してたどりついたのがここ
http://www.flatz.jp/archives/317

LIBSSH2_APINO was removed from the public header file

なんて書かれていて、0.16以降のlibssh2ではコンパイルできないのではないかと思われます。

あちらの方と同じく、ver0.15をインストールしようと思ったのだけど・・・

ない!
最早sourceforgeには最新の0.18しか残っておりませぬ。
しかし、要はLIBSSH2_APINOを渡していないだけのこと。
だったら自分で書けばよし
peclでssh2のソースを拾ってきて(http://jp2.php.net/manual/ja/ssh2.installation.phpの「PEAR コマンドを使用しないで PECL/ssh2 をコンパイルする」参照)

ssh2.cの470行あたりに

    • -

#define LIBSSH2_APINO 200701010101

    • -

1行追加する。(とりあえず、値は200503221619より大きければOK)
でmakeは通った。
検証はこれから〜

      • -

11/21追記
 成功しました。
 認証方法は・・・鍵を作っていろいろやってみたけどうまくいかず、ssh2_auth_password()を使うことに・・・大丈夫だよね?