PHP5.4在CLISAPI中内置了web服务器,但仅供开发测试使用,不推荐在生产环境中使用。因为这个服务器在接受和处理请求时是顺序执行的,所以不能并发处理。这个内置的web服务器使用起来非常方便,只需要执行如下命令:启动web服务器$php-Slocalhost:8000就可以访问了。这样启动后,默认的web服务目录就是当前执行命令的目录。如果不想使用当前目录,需要使用-t参数指定。启动web服务器时指定文档的根目录php-Slocalhost:8000-tfoo/使用路由器脚本在本例中,请求图像将返回相应的图像,但请求HTML文件会说“欢迎使用PHP”://router.phpif(preg_match('/\.(?:png|jpg|jpeg|gif)$/',$_SERVER["REQUEST_URI"])){returnfalse;//按原样提供请求的资源。}else{echo"
WelcometoPHP
";}$php-Slocalhost:8000router.php确定是否使用内置Web服务器通过程序判断在内置Web上调整同一个PHP路由脚本server和productionserver的不同行为//router.phpif(php_sapi_name()=='cli-server'){/*routestaticassetsandreturnfalse*/}/*继续正常的index.php操作*/$php-Slocalhost:8000router.php这个内置的网络服务器可以识别一些标准的MIME类型资源,它们的扩展名是:.css,.gif,.htm,.html,.jpe,.jpeg,.jpg、.js、.png、.svg和.txt。直到PHP5.4.4才支持对.htm和.svg扩展名的支持。处理不受支持的文件类型如果您希望Web服务器正确处理不受支持的MIME文件类型,请执行以下操作://router.php$path=pathinfo($_SERVER["SCRIPT_FILENAME"]);if($path["extension"]=="ogg"){header("Content-Type:video/ogg");readfile($_SERVER["SCRIPT_FILENAME"]);}else{returnFALSE;}$php-Slocalhost:8000router.php远程访问内置web服务器如果你想远程访问内置web服务器,你的启动命令需要改为如下:$php-S0.0.0.0:8000so你可以通过端口8000远程访问它访问内置的web服务器