PHP是一种剧本说话,它必要PHP表明器来说明运行PHP文件。当把PHP做为CGI处事Web哀求时,它必要被嵌入到某种Web处事器里,最常见的是集成到Apache或IIS里,这就是说,在行使PHP前,你必要安装Apache或IIS,而且正确的设置它们和PHP集成的参数。固然这种设置已经很类型,文档很是富厚,但我们照旧常常在安装Apache和PHP集成时碰着题目,并且,偶然辰我们只想测试一个简朴的PHP特性,不想就为此安装、启动Apache处事。
但据官方文档上说,这个内置的Web处事器只是提供开拓测试行使,不保举行使中出产情形中。由于这个处事器接管处理赏罚哀求时次序执行的,不能并发处理赏罚。
这个内置的web处事器行使起来很是的利便,你只必要执行下面的呼吁:
$ php -S localhost:8000
然后就可以会见了。这样启动后,默认的web处事目次是执行呼吁的当前目次,假如不想行使当前目次,你必要行使 -t 参数来指定。
例 #1 启动Web处事器
$ cd ~/public_html
$ php -S localhost:8000
终端输出信息:
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit
当哀求了 http://localhost:8000/ 和 http://localhost:8000/myscript.html 地点后,终端输出相同如下的信息:
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press 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
例 #2 启动web处事器时指定文档的根目次
$ cd ~/public_html
$ php -S localhost:8000 -t foo/
终端表现信息:
PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit
假如你在启动呼吁行后头附加一个php剧本文件,那这个文件将会被当成一个“路由器”剧本。这个剧本将认真全部的HTTP哀求,假如这个剧本执行时返回FALSE,则被哀求的资源会正常的返回。假如不是FALSE,赏识里表现的将会是这个剧本发生的内容。
例 #3 行使路由器剧本
在这个例子中,对图片的哀求会返回响应的图片,但对HTML文件的哀求会表现“Welcome to PHP”:
<?php // router.php if (preg_match('/.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) { return false; // serve the requested resource as-is. } else { echo "<p>Welcome to PHP</p>"; } ?>
$ php -S localhost:8000 router.php
例 #4 判定是否是在行使内置web处事器
通过措施判定来调解统一个PHP路由器剧本在内置Web处事器中和在出产处事器中的差异举动:
<?php // router.php if (php_sapi_name() == 'cli-server') { /* route static assets and return false */ } /* go on with normal index.php operations */ ?>
$ php -S localhost:8000 router.php
这个内置的web处事器能辨认一些尺度的MIME范例资源,它们的扩展有:.css, .gif, .htm, .html, .jpe, .jpeg, .jpg, .js, .png, .svg, and .txt。对.htm 和 .svg 扩展到支持是在PHP 5.4.4之后才支持的。
例 #5 处理赏罚不支持的文件范例
假如你但愿这个Web处事器可以或许正确的处理赏罚不被支持的MIME文件范例,这样做:
<?php // router.php $path = pathinfo($_SERVER["SCRIPT_FILENAME"]); if ($path["extension"] == "ogg") { header("Content-Type: video/ogg"); readfile($_SERVER["SCRIPT_FILENAME"]); } else { return FALSE; } ?>
$ php -S localhost:8000 router.php
假如你但愿能长途的会见这个内置的web处事器,你的启动呼吁必要改成下面这样:
例 #6 长途会见这个内置Web处事器
$ php -S 0.0.0.0:8000
这样你就可以通过 8000 端口长途的会见这个内置的web处事器了.
文:外刊IT评述 (编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|