PHP built-in web server
As of PHP 5.4.0, the CLI SAPI provides a built-in web server.
This web server is designed for developmental purposes only, and should not be used in production.
URI requests are served from the current working directory where PHP was started, unless the -t option is used to specify an explicit document root.
If a URI request does not specify a file, then either index.php or index.html in the given directory are returned. If neither file exists, then a 404 response code is returned.
If a PHP file is given on the command line when the web server is started it is treated as a "router" script for the web server. The script is run at the start of each HTTP request. If this script returns FALSE, then the requested resource is returned as-is. Otherwise the script's output is returned to the browser.
Example #1 Starting the web server
$ cd ~/public_html$ php -S localhost:8000
The terminal will show:
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011Listening on localhost:8000Document root is /home/me/public_htmlPress Ctrl-C to quit
After URI requests for http://localhost:8000/ and http://localhost:8000/myscript.html the terminal will show something similar to:
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011Listening on localhost:8000Document root is /home/me/public_htmlPress Ctrl-C to quit.[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read
Example #2 Starting with a specific document root directory
$ cd ~/public_html$ php -S localhost:8000 -t foo/
The terminal will show:
PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011Listening on localhost:8000Document root is /home/me/public_html/fooPress Ctrl-C to quit
Example #3 Using a Router Script
Requests for images will display them, but requests for HTML files will display "Welcome to PHP"
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"]))
return false; // serve the requested resource as-is.
else {
echo "
Welcome to PHP
";}
?>
$ php -S localhost:8000 router.php
After several URI requests the terminal will show something similar to:
PHP 5.4.0 Development Server started at Thu Jul 21 10:53:19 2011Listening on localhost:8000Document root is /home/me/public_htmlPress Ctrl-C to quit.[Thu Jul 21 10:53:45 2011] ::1:55801 GET /mylogo.jpg - Request read[Thu Jul 21 10:53:52 2011] ::1:55803 GET /abc.html - Request read[Thu Jul 21 10:53:52 2011] ::1:55804 GET /favicon.ico - Request read
Author: php.net
Source: http://php.net/manual/en/features.commandline.webserver.php
上一篇: Access数据库开发技巧(一)
下一篇: PHP Mysql 注入的实现和防范示例
推荐阅读
-
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
-
Android App端与PHP Web端的简单数据交互实现示例
-
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
-
php Sql Server连接失败问题及解决办法
-
Apache实现Web Server负载均衡详解(不考虑Session版)
-
PHP使用NuSOAP调用Web服务的方法
-
php使用socket post数据到其它web服务器的方法
-
动态网站web开发 PHP、ASP还是ASP.NET
-
在Zeus Web Server中安装PHP语言支持
-
HTML5 实战PHP之Web页面表单设计