【php】Windows環境のphpでWebページからのSFTPアップロード
phpを用いてwebページからSFTP転送で
ファイルをサーバーにアップするという
課題でハマりました。
というのも
Windowsでphpをつかっていること
SFTPというレアな方法を用いていること
でネットでも情報量がすくなかったので
記録しておきます。
php_shh2.dllのダウンロード
ネットで検索したところSFTP転送には
ssh2_なんちゃらという関数を使います。
早速phpファイルにコードを入れたところ
そんな関数ないわ!と言われてしまいました。
デフォルトでは同梱されていないので
下記サイトでdllファイルをダウンロードします。
PECL :: Package :: ssh2
さて、ここで
使っているphpのバージョンは7.2だけど
最新版は7.1しかない、、
そう、(2018年11月現在)7.1までしか
対応していないので、いたしかたなく
phpのバージョンを7.1に下げました。
32bitのWindowsなので×86バージョンを、
Apacheをつかっているので
Thread Safeバージョンを選択します。
ダウンロードしたdllファイルを
phpのextsフォルダにいれて
php.iniに
extension=php_ssh2.dll
と追記します。
ここまでやれば動くはず…なのですが、
Appacheの起動時に
LIBEAY32.dllがありません
というエラーがでるようになり
うまく動作しませんでした。
dllファイルはなんのことはない
php.exeのあるフォルダのなかに
存在していたので
とりあえずApacheのフォルダに
入れてみたところ
起動時エラーはなくなって
phpで関数が有効になりました。
以上、phpでssh2関数が使えるようになるまでの話でした。