PHP 从5.4版本开始如何调试php服务器,CLI SAPI 提供了一个内置如何调试php服务器的Web Server,也就是说自带了一个小型如何调试php服务器的用于执行PHP代码的Web服务器,这个内置的Web Server主要用于本地开发使用,不可用于实际生产环境。
工作原理:
URI请求会被发送到PHP可执行文件所在的工作目录(Working Directory)进行处理,除非你使用了-t参数来自定义不同的目录,如果请求未指定执行哪个PHP文件,则默认执行目录内的index.php 或者 index.html。如果这两个文件都不存在,服务器会返回404错误。
启动方式:
通过命令行启动这个Web Server。如果指定了一个PHP文件,则这个文件会作为一个“路由”脚本,意味着每次请求都会先执行这个脚本。如果这个脚本返回 FALSE ,那么直接返回请求的文件(例如请求静态文件不作任何处理)。否则会把输出返回到浏览器。
// 以下代码必须在命令行或终端中执行php -S localhost:8000
启动时指定访问目录:
# cd /www# php -S localhost:8000 -t public/PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011Listening on localhost:8000Document root is /www/publicPress Ctrl-C to quit
该内置服务器默认只处理文本,如果客户端请求的是图片,则需要通过一个“路由”脚本进行处理:
# php -S localhost:8000 router.php<?php// router.php// 对于请求的是图片,return false即可直接返回请求的文件if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) { return false; // 直接返回请求的文件} else { echo "<p>Hello World!</p>";}
Windows下的演示: