而掌握台会输出当前做事器的访问情形,如下图所示:
这个内置做事器和用 nginx 等做事器搭起来的运用做事器实质上没有太大的差异,包括 $_SERVER 之类的内容都可以正常获取到,也可以正常利用 include 等功能加载其他文件,也便是说这个内置WEB做事器运行一些框架也是没有问题的。它是可以完备知足我们的测试哀求的。但是须要把稳的是,这个内置WEB做事器不能用于生产环境。毕竟它的功能还是太大略,不是一个生产配备的高规格做事器运用。
指定内置做事器的运行目录我们也可以在任何目录去运行指定目录的php代码,只须要再增加一个 -t 选项来指明要运行起做事器的根目录即可。
php-Slocalhost:8081-tdev-blog/php/202004/source
这样我们就可以运行起来一个以 dev-blog/php/202004/source 目录为根目录的测试环境做事器。
利用路由脚本php-Slocalhost:8081PHP的内置WEB做事器.php
如果我们给当前做事器直接指定了一个PHP文件,那么直接打开链接就会访问的是这个文件的内容,而不是去找 index.php 之类的文件。纵然我们连续给 URL 后台增加其他路径或者其他文件名,它依然会打开的是这个文件,也便是说,我们启动了一个单文件入口的运用做事器程序。就像各种框架的 index.php 文件一样,比如我们利用这个文件做一个大略的路由分发测试:
$routePages=['/testRoute2.php','/route/testRoute1.php'];if(in_array($_SERVER['REQUEST_URI'],$routePages)){include__DIR__.$_SERVER['REQUEST_URI'];}else{print_r($_SERVER);}
//route/testRoute1.phpecho"HelloRoute1!";//testRoute2.phpecho"HelloRoute2!";
两个测试文件只是大略的输出了一段笔墨用于差异分别加载了两个文件。上述代码的意思是我们访问定义好的两个路由路径时,就会加载对应的文件,访问其他路径则会打印当前做事器的 $_SERVER 信息。
测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202004/source/PHP%E7%9A%84%E5%86%85%E7%BD%AEWEB%E6%9C%8D%E5%8A%A1%E5%99%A8.php
参考文档:
https://www.php.net/manual/zh/features.commandline.webserver.php