php网站内容管理系统(PHPCLI简单的运行一个小demo来验证代码或者轮子是否可用)
优采云 发布时间: 2022-01-15 03:05php网站内容管理系统(PHPCLI简单的运行一个小demo来验证代码或者轮子是否可用)
很多情况下,我们需要简单的运行一个小demo来验证是否有一些代码或者轮子可用,可以运行,但是配置nginx或者apache就很麻烦了。其实 PHP CLI 已经提供了一个简单的测试服务器,我们可以直接运行它来执行一些简单的测试。
直接启动内置服务器
php -S localhost:8081
直接使用-S命令选项,然后指定地址和端口号,我们就可以运行一个PHP内置的简单WEB服务器了。默认情况下,该地址会在当前目录中查找 index.php 或 index.html 文件。当我们在浏览器中输入指定文件时,就是访问指定文件。如果没有找到,会正常返回404错误。
控制台会输出当前服务器的访问状态,如下图所示:
这个内置服务器和使用nginx等服务器构建的应用服务器没有太大区别。可以正常获取$_SERVER等内容,使用include等函数也可以正常加载其他文件,也就是说这个内置的服务器WEB服务器运行一些框架是没有问题的。完全可以满足我们的测试要求。但是需要注意的是,这个内置的WEB服务器不能用于生产环境。毕竟它的功能还是太简单了,不是带有生产设备的高规格服务器应用。
指定内置服务器的运行目录
我们也可以在任意目录下运行指定目录的php代码,只需添加-t选项指定根目录即可运行服务器。
php -S localhost:8081 -t dev-blog/php/202004/source
这样,我们就可以运行一个以dev-blog/php/202004/source目录为根目录的测试环境服务器了。
使用路由脚本
如果我们直接为当前服务器指定一个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.php
echo "Hello Route1!";
// testRoute2.php
echo "Hello Route2!";
这两个测试文件只是简单地输出一段文本来区分加载的两个文件。上面代码的意思是当我们访问定义的两个路由路径时,会加载对应的文件,访问其他路径时会打印当前服务器的$_SERVER信息。
测试代码:
%E7%9A%84%E5%86%85%E7%BD%AEWEB%E6%9C%8D%E5%8A%A1%E5%99%A8.php
参考文档: