おいらが、PHPをやりたいと思ったのが、「サーバーサイドのexe(実行可能)ファイルを実行したかった」から。
スマホなどのクライアントからサーバーにあるexeファイルを実行できないものかなぁと思っていた。Raspberrypiもあるから、それと組み合わせて、ホームセキュリティー+αのようなものを作りたいのだ。

Webアプリを使い、要となるサーバーをスマホで制御して、Raspberrypiなどの機器を制御するというのが、現時点での目標。
ネットで情報を調べてみるが、意外と敷居が高かったりする。
Raspberrypiだけでやる方が文献も多く、簡単なのかも。

で、無い知恵を絞って考えたのが、「Webアプリからexeファイルを実行し、Raspberrypiとやり取りする」方法。
これであれば、クライアントのプラットフォームは何であれ、確実に動作するはず。

ところがだ。Webアプリからexeファイルを実行する方法にも色々あるらしく、正直情報だけでお腹一杯って感じ。
そして、ようやっとたどり着いたのが、PHPを使う方法。
PHPはサーバーサイド(側)の言語なので、クライアントのOSには左右されないからだ。
うちはVPNが使えるので、リモートデスクトップでサーバーにあるブラウザを起動して動作させてもいいし、クライアント側のブラウザで動作させてもいい。、

実際に、使ってみると、次のようなことが分かった。

1.GUIアプリはサーバーのバックグラウンドで動くため、サーバー側・クライアント側どちらにも表示されない。PHPで動かすなら、CUIアプリの方がよさそう。
2.exeファイルを動作させると、PHPが「待機中」となるので、exeファイルを終了させない限りは、PHPが動作しっぱなしになる。つまりは、この状態を放置しておくと、実行するexeファイルやPHPを動かしているphp-cgi.exeが実行する度に増殖していくのだ。タスクマネージャーで見るとよく分かる。要らないアプリがいくつも起動するので、メモリーもアップアップ状態。いずれはサーバーダウンに繋がるに違いない。PHPが使い終わったら、リリースするようにする工夫が必要みたい。

PHPを使った、exeファイルを実行する方法は、

1.exec(“exeファイル名.exe”);
2.system(“exeファイル名.exe”);

の2種類あって、戻り値が取得できるアプリなら、戻り値をブラウザ上で表示させることが可能。詳しくは、PHPの公式サイトを参照しておくれ。

よーし、パパ頑張っちゃうぞぉー。