ちょいと、実行権限に引っ張られて出来ない事があったので、この際SSH使おうかという事で。
PHP: Secure Shell2 関数 - Manual
SSH2関数を使うためには、拡張モジュールのインストールが必要。で、この拡張はまだPECLにあって、安定板の提供はまだらしい。インストールはドキュメントそのままで、特に困った事はなし。手元の環境では、PECLモジュールをpearでインストールできないので、peclコマンドを利用。それ以外では、出来上がったssh2.soをコピーする必要がなかった事かな。必要に応じて、要求される場所にコピーしたらよし。
ログインしてコマンド実行まで、ひとまずドキュメントを見ながらこなせた。戸惑ったのがコマンド実行時の戻りの処理。streamで戻ってくるということで、freadとかで読み取る必要がある。ファイルは触るけど、ソケットとかほとんど使った事がなかったのでいい勉強になった。STDIOとSTDERRを分割出来るようなので、エラー処理もその辺でやればいいらしい。
SCPとかSFTPの関数も用意されてるけど、基本的にログインとコマンド実行が出来れば問題ない気がする。ので、ここに書いてあるクラスを参考にしたらいいと思う。パスワード認証を許可してない場合は、公開鍵とかホスト公開鍵とかでの認証関数を利用する必要があるだろうけど。
今回は必要がなかったので、使ってないんだけど対話式のシェルも扱えるらしい。ターミナルの種類とか幅とか高さとか設定出来るらしい。ブラウザでリモートほげほげとかこの辺を使ってるのかな?(PHPじゃないにしてもね)
SSH2拡張はPECLのβ版ということで、なんでも出来るのかといわれるとどうなのか分からない。とりあえず、必要な処理を手元の環境でこなせればいいのかな、と。
SSH2拡張を触ってみて、ソケット処理(?)を勉強しないといけないなという危機感を覚えた。ソケットとか使えるようになれば、簡単なデーモンとか書けるようになるかな?デーモンはCとかで書くべき?

