PHP 内置WEB服务器的简单使用

在很多时候,我们需要简单的运行一个小 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 -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 信息。

测试代码: github.com/zhangyue050…

参考文档: www.php.net/manual/zh/f

以上就是PHP 内置WEB服务器的简单使用的详细内容,更多关于PHP 内置服务器的使用的资料请关注我们其它相关文章!

(0)

相关推荐

  • PhpStorm连接服务器并实现自动上传功能

    连接服务器 菜单栏找到[工具/Tools]->[Deployment/部署]->[Confinguration-/配置-]. 点加号(+),添加一台服务器,填写名称,选择类型为SFTP,点击确定. 按下图提示,填写服务器信息. 填写完服务器链接信息,点击[Test SFTP Connection-]测试SFTP连接. 正在通过SFTP连接. 提示成功:成功地连接到*********(IP地址). 提示失败:连接到"*********(IP地址)"失败了.会话.连接:java

  • PHP5.4内置web服务器

    PHP是一种脚本语言,它需要PHP解释器来分析运行PHP文件.当把PHP做为CGI服务Web请求时,它需要被嵌入到某种Web服务器里,最常见的是集成到Apache或IIS里,这就是说,在使用PHP前,你需要安装Apache或IIS,并且正确的配置它们和PHP集成的参数.虽然这种配置已经很规范,文档非常丰富,但我们还是经常在安装Apache和PHP集成时遇到问题,而且,有时候我们只想测试一个简单的PHP特征,不想就为此安装.启动Apache服务. 但据官方文档上说,这个内置的Web服务器只是提供开

  • 微信小程序上传图片到php服务器的方法

    本文实例为大家分享了微信小程序上传图片到php服务器的具体代码,供大家参考,具体内容如下 js代码如下 submitPhoto(){ var that = this; wx.uploadFile({ url: 'http://xxx.cn/upload.php', //仅为示例,非真实的接口地址 filePath: imagePath, name: 'imgfile', success: function (res) { var data = JSON.parse(res.data);; con

  • PHP使用swoole编写简单的echo服务器示例

    本文实例讲述了PHP使用swoole编写简单的echo服务器.分享给大家供大家参考,具体如下: server.php代码如下: <?php class EchoServer { protected $serv = null; public function __construct() { $this->serv = new swoole_server('0.0.0.0', 8888); //配置参数 $this->serv->set(array( 'worker_num' =>

  • 在phpstudy集成环境下的nginx服务器下配置url重写

    直接在对应的vhosts.conf配置文件的location / {}中添加以下内容: location / { index index.html index.htm index.php; #autoindex on; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } 具体操作过程如下: 1.找到对应的vhosts.conf配置文件 2.选择所需要配置重写url的站点 总结 以上所述是小编给大家

  • php实现的简单多进程服务器类完整示例

    本文实例讲述了php实现的简单多进程服务器类.分享给大家供大家参考,具体如下: php写的一个简单的多进程服务器. <?php class server { public $port; public $ip; protected $server; public function __construct($ip = '0.0.0.0', $port) { $this->ip = $ip; $this->port = $port; $this->createSocket(); //创建

  • phpstorm远程连接服务器并实时更新发布代码(thinkphp6.0.7)

    想要phpstrom 远程连接上服务器,需要通过以下 步骤操作,具体操作跟随一起看看吧! Step1 打开phpstorm Tools->Deployment->Configuration Step2 开始配置连接参数,我的是阿里云的服务器, 有一个 Test Sftp connection 测试连接的可以先测试下 选择yes 接下来 Step3: Text-to-HTML conversion tool 后面继续连接到你的服务器,并next到最后即可 然后如果想实时更新 这个选项得点下 我用

  • PHP如何将图片文件上传到另外一台服务器上

    说,我有一个需求,就是一个临时功能.由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品图片等.后台商品添加的接口已经写完了,但是问题是目前没有后台页面,就是产品还没有出后台详细页面.前端已经完备了,上线了.后台还需要工作时间处理.所以目前的处理方法是在我们已经存在的A项目后台中,添加一个对B项目添加商品的功能. 一.当下问题 1.在我们已有的A项目中,新增一个添加商品的功能,这个本来是没有什么问题的,因为目前A项目中本身就已经

  • php服务器的系统详解

    PHP服务器使用什么操作系统 windows系统和Linux系统都可以的,他们各有各的好处. 1.windows服务器 windows服务器操作方便适用于php初学者,随着Windows Server2008服务器的普及,微软已经开发了适合于php的控件PHP Manager,可以用IIS7.5+PHP Manager+PHP5.3+Mysql5.5轻松搭建php环境,而且window是操作界面利用初学者维护和学习. 2.Linux服务器 Linux服务器适用于php成熟者,随着linux桌面工

  • Windows服务器中PHP如何安装redis扩展

    一.总结 一句话总结:下载扩展的dll,放入指定文件夹(php对应的扩展的目录php/ext),在配置文件php.ini中注册dll 尽量不要选择最新版php和redis扩展,下载时文件名的每一个字符尽量看懂意思 下载dll 放入php扩展插件文件夹 在配置文件php.ini中注册dll 1.查看教程是发现教程有错误的启示是什么,(3.解压缩后,将php_redis.dll和php_igbinary.dll拷贝至php的ext目录下)中的后一个文件教程里是错的? 多看几篇教程 发现出错,多多查看

随机推荐