美文网首页
PHP的内置WEB服务器

PHP的内置WEB服务器

作者: ZyBlog | 来源:发表于2021-04-09 09:11 被阅读0次

在很多时候,我们需要简单的运行一个小 demo 来验证一些代码或者轮子是否可用,是否可以运行起来,但是去配 nginx 或者 apache 都很麻烦,其实,PHP CLI 已经提供了一个简单的测试服务器,我们直接就可以运行起来进行简单的一些测试工作。

直接启动一个内置服务器

php -S localhost:8081

直接使用 -S 命令选项,然后指定地址及端口号,我们就可以运行起来一个 PHP 内置的简易WEB服务器。默认情况下,这个地址会找当前目录下的 index.php 或 index.html 文件。当我们在浏览器输入指定的文件时,就是访问指定的文件,如果都没有找到会正常的返回404错误。

而控制台会输出当前服务器的访问情况,如下图所示:

https://img.haomeiwen.com/i10153099/bb8a177d06b32a31.png

这个内置服务器和用 nginx 等服务器搭起来的应用服务器本质上没有太大的区别,包括 $_SERVER 之类的内容都可以正常获取到,也可以正常使用 include 等功能加载其他文件,也就是说这个内置WEB服务器运行一些框架也是没有问题的。它是可以完全满足我们的测试要求的。但是需要注意的是,这个内置WEB服务器不能用于生产环境。毕竟它的功能还是太简单,不是一个生产配备的高规格服务器应用。

指定内置服务器的运行目录

我们也可以在任何目录去运行指定目录的php代码,只需要再增加一个 -t 选项来指明要运行起服务器的根目录即可。

php -S localhost:8081 -t dev-blog/php/202004/source

这样我们就可以运行起来一个以 dev-blog/php/202004/source 目录为根目录的测试环境服务器。

使用路由脚本

php -S localhost:8081 PHP的内置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.php
echo "Hello Route1!";

// testRoute2.php
echo "Hello Route2!";

两个测试文件只是简单的输出了一段文字用于区别分别加载了两个文件。上述代码的意思是我们访问定义好的两个路由路径时,就会加载对应的文件,访问其他路径则会打印当前服务器的 $_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

===========

各自媒体平台均可搜索【硬核项目经理】

相关文章

  • PHP的内置WEB服务器

    在很多时候,我们需要简单的运行一个小 demo 来验证一些代码或者轮子是否可用,是否可以运行起来,但是去配 ngi...

  • SpringBoot自动配置之——切换内置web服务器

    切换内置web服务器 springboot的web环境中默认使用tomcat作为内置服务器,其实springboo...

  • PHP初认识

    PHP简介 PHP 是运行在web服务器上的脚本语言,PHP应用服务器作为web服务器的辅助软件,专门解释PHP代...

  • 「php化整为零系列」四、内置Web服务器

    该系列我只写我的理解,非官方解释,如不够专业请见谅 从PHP5.4开始可以使用PHP的内置Web服务器对本地代码进...

  • 开发环境

    Apache Web 服务器和 PHP 都是 Mac OS X 中预装的。 PHP 页需要通过 Web 服务器处理...

  • php转换webp为jpg等格式

    一、ubuntu环境(php用Ubuntu内置版本): 安装php扩展 安装webp 重启php-fpm服务器完事...

  • PHP:内置Web Server

    php -S localhost:8080 -t public 命令参数解释: -S: 启动开发服务器(php5....

  • DVWA: Damn Vulerable Web Applica

    地址:http://www.dvwa.co.uk/ 基于 php 和 mysql 的虚拟 Web 应用,“内置”常...

  • PHP代码审计-常见ini配置

    配置文件 php.ini 在 PHP 启动时被读取。对于服务器模块版本的 PHP,仅在 web 服务器启动时读取一...

  • PHP

    PHP操作数据库 服务器:1.xampp(数据库服务器)2.web服务器(1)静态web服务器:HTML、css、...

网友评论

      本文标题:PHP的内置WEB服务器

      本文链接:https://www.haomeiwen.com/subject/fnfikltx.html