犬ターネット

PHP 5.4.0 のビルトインウェブサーバーを試してみる

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 先生。


PHP-5.4.0 の Short syntax for arrays

たまに