2011-07-29 php
おもしろい実装が PHP 5.4.0 に組み込まれることになった。
というわけでPHP builtin serverの残タスクはほぼ消化し終えたと思う。5.4でお披露目できそうです。 PHP: ビルトインウェブサーバー - Manual
さっそく PHP 5.4.0 アルファリリースで試してみる。
# cd /usr/local/src # wget http://snaps.php.net/php5.4-latest.tar.gz # tar -xzvf php5.4-latest.tar.gz # cd php5.4-201107282230/ # ./configure # make
インストールはしないで、とりあえず実行できるか確認。
# ./sapi/cli/php -v PHP 5.4.0alpha3-dev (cli) (built: Jul 26 2011 19:16:58) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2011 Zend Technologies
仮のドキュメントルートを作成。ついでにindex.phpも作成(日付表示するだけ)。
# mkdir /usr/local/src/php54docroot
# vim /usr/local/src/php54docroot/index.php
<?php
date_default_timezone_set( 'Asia/Tokyo' );
echo 'php webserver test.' , "\n";
echo date( 'Y-m-d H:i:s' ), "\n";
さっそく8000 ポートで起動してみる。
# ./sapi/cli/php -S localhost:8000 -t /usr/local/src/php54docroot PHP 5.4.0alpha3-dev Development Server started at Tue Jul 26 19:32:10 2011 Listening on localhost:8000 Document root is /usr/local/src/php54docroot Press Ctrl-C to quit.
別ターミナル開いて curl で http://localhost:8000/ にアクセス。おおお、でたでた。
# curl http://localhost:8000/ php webserver test. 2011-07-26 19:34:19
ログはこんな感じ。
[Tue Jul 26 19:33:12 2011] 127.0.0.1:38679 GET / - Request read [Tue Jul 26 19:33:12 2011] 127.0.0.1:38679 GET / - Response sent successfully (200)
存在しないファイルにアクセスするとこうなる。
# curl http://localhost:8000/unko.html <html><head><title>404 Not Found</title><style type="text/css"> body {background-color: #ffffff; color: #000000;} body, td, th, h1, h2 {font-family: sans-serif;} pre {margin: 0px; font-family: monospace;} a:link {color: #000099; text-decoration: none; background-color: #ffffff;} a:hover {text-decoration: underline;} table {border-collapse: collapse;} .center {text-align: center;} .center table { margin-left: auto; margin-right: auto; text-align: left;} .center th { text-align: center !important; } td, th { border: 1px solid #000000; font-size: 75%; vertical-align: baseline;} h1 {font-size: 150%;} h2 {font-size: 125%;} .p {text-align: left;} .e {background-color: #ccccff; font-weight: bold; color: #000000;} .h {background-color: #9999cc; font-weight: bold; color: #000000;} .v {background-color: #cccccc; color: #000000;} .vr {background-color: #cccccc; text-align: right; color: #000000;} img {float: right; border: 0px;} hr {width: 600px; background-color: #cccccc; border: 0px; height: 1px; color: #000000;} </style> </head><body><h1 class="h">Not Found</h1><p>The requested resource /unko.html was not found on this server.</p></body></html>
ログはこんな感じ。
[Tue Jul 26 19:40:50 2011] 127.0.0.1:51149 GET /unko.html - Request read [Tue Jul 26 19:40:50 2011] 127.0.0.1:51149 GET /unko.html - No such file or directory [Tue Jul 26 19:40:50 2011] 127.0.0.1:51149 GET /unko.html - Sending error page (404)
PHP自体がwebサーバになるってのはおもしろい。すごいすごい。さすがの moriyoshit 先生。