30代半ばの事務職員がITエンジニアになった話

おおよそタイトルのとおり、30代半ばにしてITエンジニアのタマゴになってしまった会社員の話

【php】Windows環境のphpでWebページからのSFTPアップロード

phpを用いてwebページからSFTP転送で
ファイルをサーバーにアップするという
課題でハマりました。

というのも
Windowsphpをつかっていること
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関数が使えるようになるまでの話でした。