Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP 5.4 内置Web服务器使用说明

PHP 5.4 内置Web服务器使用说明

作者头像
魏杰
发布于 2022-12-23 10:36:36
发布于 2022-12-23 10:36:36
1.8K0
举报

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 /publichtml 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 /publichtml 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)

$ 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

$ php -S localhost:8000 router.php

如果你希望能远程的访问这个内置的web服务器,你的启动命令需要改成下面这样:

例 #6 远程访问这个内置Web服务器

$ php -S 0.0.0.0:8000

这样你就可以通过 8000 端口远程的访问这个内置的web服务器了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS多线程——你要知道的NSOperation都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本系列文章主要讲解iOS中多线程的使用,包括:NSThread、GCD、NSOperation以及RunLoop的使用方法详解,本系列文章不涉及基础的线程/进程、同步/异步、阻塞/非阻塞、串行/并行,这些基础概念,有不明白的读者还请自行查阅。本系列文章将分以下几篇文章进行讲解,读者可按需查阅。 iOS
WWWWDotPNG
2018/04/10
1.7K0
iOS多线程——你要知道的NSOperation都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
iOS多线程之二:NSThread的使用
NSThread NSThread封装性最差,最偏向于底层,主要基于thread使用,生命周期需要手动管理,所以这套方案也是偶尔用用,比如 [NSThread currentThread],它可以获取当前线程类,你就可以知道当前线程的各种属性,用于调试十分方便。
s_在路上
2018/09/11
7200
iOS多线程之二:NSThread的使用
iOS多线程编程之二——NSOperation与NSOperationQueue
NSOperation是基于Object-C封装的一套管理与执行线程操作的类。这个类是一个抽象类,通常情况下,我们会使用NSInvocationOperation和NSBlockOperation这两个子类进行多线程的开发,当然我们也可以写继承于NSOperation的类,封装我们自己的操作类。
珲少
2018/08/16
3300
iOS多线程编程之二——NSOperation与NSOperationQueue
iOS多线程——你要知道的RunLoop都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本系列文章主要讲解iOS中多线程的使用,包括:NSThread、GCD、NSOperation以及RunLoop的使用方法详解,本系列文章不涉及基础的线程/进程、同步/异步、阻塞/非阻塞、串行/并行,这些基础概念,有不明白的读者还请自行查阅。本系列文章将分以下几篇文章进行讲解,读者可按需查阅。 iOS
WWWWDotPNG
2018/04/10
1.6K0
iOS多线程——你要知道的RunLoop都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
iOS多线程——你要知道的GCD都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本系列文章主要讲解iOS中多线程的使用,包括:NSThread、GCD、NSOperation以及RunLoop的使用方法详解,本系列文章不涉及基础的线程/进程、同步/异步、阻塞/非阻塞、串行/并行,这些基础概念,有不明白的读者还请自行查阅。本系列文章将分以下几篇文章进行讲解,读者可按需查阅。 iOS
WWWWDotPNG
2018/04/10
2.1K0
iOS多线程:『NSOperation、NSOperationQueue』详尽总结
本文首发于我的个人博客:『不羁阁』 文章链接:传送门 本文更新时间:2018年03月06日17:27:55 笔者对之前写的原文重新整理,修改了部分内容,又增加了许多关于 NSOperation、NSOperationQueue 的知识及用法,希望大家喜欢。 本文用来介绍 iOS 多线程中 NSOperation、NSOperationQueue 的相关知识以及使用方法。 通过本文,您将了解到: NSOperation、NSOperationQueue 简介、操作和操作队列、使用步骤和基本使用
程序员充电站
2018/05/31
9870
iOS多线程——RunLoop与GCD、AutoreleasePool你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本系列文章主要讲解iOS中多线程的使用,包括:NSThread、GCD、NSOperation以及RunLoop的使用方法详解,本系列文章不涉及基础的线程/进程、同步/异步、阻塞/非阻塞、串行/并行,这些基础概念,有不明白的读者还请自行查阅。本系列文章将分以下几篇文章进行讲解,读者可按需查阅。 iOS
WWWWDotPNG
2018/04/10
1.9K0
iOS多线程:『pthread、NSThread』详尽总结
本文首发于我的个人博客:『不羁阁』 文章链接:传送门 本文更新:2018年01月26日13:42:11 本文用来介绍 iOS 多线程中,pthread、NSThread 的使用方法及实现。 第一部分:pthread 的使用、其他相关方法。 第二部分:NSThread 的使用、线程相关用法、线程状态控制方法、线程之间的通信、线程安全和线程同步,以及线程的状态转换相关知识。 文中 Demo 我已放在了 Github 上,Demo 链接:传送门 1. pthread 1.1 pthread 简介
程序员充电站
2018/05/31
1.1K0
阿里、字节:一套高效的iOS面试题( 多线程 GCD底层原理篇)
dispatch_group_create() + dispatch_group_wait()
会写bug的程序员
2020/06/18
4.9K0
阿里、字节:一套高效的iOS面试题( 多线程 GCD底层原理篇)
iOS多线程:『GCD』详尽总结
本文首发于我的个人博客:『不羁阁』 文章链接:传送门 本文更新时间:2018-02-24 10:07:40 感谢大家对这篇文章的喜欢和支持。为了不辜负大家的喜欢,也为了更好的让大家了解 iOS 多线程,以及 GCD 的相关知识,我对这篇文章进行了重新梳理,在原有文章的基础上修改了原文存在的问题,并增加了更多关于 GCD 相关知识和使用方法,希望大家能够喜欢这篇新文章。 本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。这大概是史上最详细、清晰的关于 GCD 的详细讲解+总结的文
程序员充电站
2018/05/31
1.1K0
多线程-NSThread
在GCD和NSOperationQueue之前,iOS使用线程一般是用NSThread,而NSThread是对POSIX thread的封装。使用NSThread的一个最大的问题是:直接操纵线程,线程的生死完全交给开发者来控制。在大的工程中,模块间相互独立,如果线程数量持续增长,将会导致难以控制的问题。
進无尽
2018/09/12
6460
iOS_多线程三:NSOperation的使用
使用其子类:NSInvocationOperation 和 NSBlockOperation
mikimo
2022/07/20
5170
iOS - 多线程(二):pthread、NSThread
GitHub:https://github.com/dolphin1208/Thread
师大小海腾
2020/04/16
6880
iOS - 多线程(二):pthread、NSThread
浅析iOS多线程编程之NSOperation
前言 和NSThread、GCD一样,NSOperation也是Apple提供的一项多线程并发编程方案。和GCD不同的是,NSOperation是对GCD在OC层面的封装,NSOperation完全面向对象。 默认情况下,NSOperation并不具备封装操作的能力,NSOperation是一个基类,要想封装操作,必须使用它的子类。使用NSOperation子类的方式有3种: 1> NSInvocationOperation(系统提供) 2> NSBlockOperation (系统提供) 3> 自定
VV木公子
2018/06/05
8.3K0
RunLoop 总结:RunLoop的应用场景(一)保证线程长久存活
好的书籍都是值得反复看的,那好的文章,好的资料也值得我们反复看。我们在不同的阶段来相同的文章或资料或书籍都能有不同的收获,那它就是好文章,好书籍,好资料。 关于iOS 中的RunLoop资料非常的少,以下这些资料都是非常好的。
Haley_Wong
2018/08/22
7090
RunLoop 总结:RunLoop的应用场景(一)保证线程长久存活
iOS多线程编程之一——NSThread线程管理
NSTread是iOS中进行多线程开发的一个类,其结构逻辑清晰,使用十分方便,但其封装度和性能不高,线程周期,加锁等需要手动处理。
珲少
2018/08/16
3790
iOS多线程编程之一——NSThread线程管理
iOS OC你了解的锁有哪些
synchronized是互斥锁,在这里主要考虑的是线程安全的问题,使用这个关键字,可以将一段代码限制在一个线程内使用,如果有一个线程正在使用这块资源,那么别的线程想要使用的时候就必须等待这快线程执行完毕!
赵哥窟
2020/06/23
1.1K0
Bison眼中的iOS开发多线程是这样的(一)
allluckly.cn.jpg 不知道大家面试iOS软件工程师的时候有没有遇到问多线程的?反正我遇到的还是蛮多的。下面是我面试时候的一个小场景!有点不堪?,看完不许笑啊..... 面试官:你
Bison
2018/07/04
5570
iOS开发之多线程技术(NSThread、OperationQueue、GCD)
  在前面的博客中如果用到了异步请求的话,也是用到的第三方的东西,没有正儿八经的用过iOS中多线程的东西。其实多线程的东西还是蛮重要的,如果对于之前学过操作系统的小伙伴来说,理解多线程的东西还是比较容
lizelu
2018/01/11
8010
iOS开发之多线程技术(NSThread、OperationQueue、GCD)
block与GCD--43:NSOperation 与NSOperationQueue
注: 如果添加的操作多的话,blockOperationWithBlock: 中的操作也可能会在其他线程(非当前线程)中执行,这是由系统决定的,并不是说添加到 blockOperationWithBlock: 中的操作一定会在当前线程中执行
xy_ss
2023/11/22
1670
block与GCD--43:NSOperation 与NSOperationQueue
推荐阅读
相关推荐
iOS多线程——你要知道的NSOperation都在这里你要知道的iOS多线程NSThread、GCD、NSOperation、RunLoop都在这里
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档