PHPはWebサーバーになる。
PHPはWEBRickのようにWebサーバーとして動かすことができます。
$ php -S addr:port
実行例
root@gealach:~# php -S localhost:8081
PHP 5.6.9-0+deb8u1 Development Server started at Fri Jul 24 05:24:42 2015
Listening on http://localhost:8081
Document root is /root
Press Ctrl-C to quit.
ApacheだかNginxだかの面倒くさい設定をせずにカジュアルにPHPを動かせますね!
PHP + 黒魔術
ApacheやNginxの入っていないリモートサーバーでPHPをイントラ向けのWebサーバーとして動かし、SSHのポートフォワードでクライアントPCからブラウズするということをやったのでメモ。
こんなイメージ
サーバー側の設定
phpをWebサーバーとして動かすだけ。
root@gealach:~# php -S localhost:8081
PHP 5.6.9-0+deb8u1 Development Server started at Fri Jul 24 05:24:42 2015
Listening on http://localhost:8081
Document root is /root
Press Ctrl-C to quit.
クライアント側の設定
2つの踏み台サーバー越しに8081番をポートフォワードします。
クライアントはMacで踏み台、リモートサーバーはLinux。
$ ssh -A -t -L 8081:localhost:8081 user1@humidai1.example.jp ssh -i .ssh/id_rsa -p 22022 -A -t -L 8081:localhost:8081 bacchi@humidai2.example.jp ssh -i .ssh/id_rsa -p 20022 -A -N -L 8081:localhost:8081 root@tergethost.example.jp
なかなかの黒魔術っぷりだと思います。
とりあえず、トンネル部分は-A -t -L
のオプションで、目的のサーバーは-A -N -L
でつなげばよいです。
ポートフォワードについてはいずれまとめようと思います。
これで、クライアントのlocalhost:8081につなぐとはるか遠くのサーバーのlocalhost:8081を見ることができます。
試しにphpinfoでも見てみる。
ログもこんな感じで出る。
root@gealach:~# php -S localhost:8081
PHP 5.6.9-0+deb8u1 Development Server started at Thu Fri 24 05:33:15 2015
Listening on http://localhost:8081
Document root is /root
Press Ctrl-C to quit.
[Fri Jul 24 05:34:20 2015] ::1:38452 [200]: /info.php
[Fri Jul 24 05:34:20 2015] ::1:38453 [404]: /favicon.ico - No such file or directory
[Fri Jul 24 05:34:20 2015] ::1:38454 [404]: /apple-touch-icon-precomposed.png - No such file or directory
[Fri Jul 24 05:34:21 2015] ::1:38455 [404]: /apple-touch-icon.png - No such file or directory