cli能记日志web不能php,php 内置的 web 服务器

从 PHP 5.4.0 起,PHP内置了Web服务器,这对于认为需要Apache或Nginx才能预览PHP应用的开发者来说又是一个隐藏功能。这个内置的Web服务器不应该用于生产环境,但对于本地开发来说是个极好的工具。Laravel Valet 起初就是使用这个内置的服务器,但是在1.1.0版本后将其替换为Caddy(查看相关新闻)。

1、启动

这个内置的Web服务器很容易启动,打开终端(Windows下对应是cmd命令行),进入项目根目录,执行如下命令即可:

php -S localhost:8000

(注意点:要安装php,并且php是全局环境)

上述命令会新启动一个PHP Web服务器,地址是localhost,监听的端口是8000,当前所在目录就是这个Web服务器的根目录。

现在,打开浏览器,访问http://localhost:8000就可以预览应用了。(运行期间,doc窗口不能关闭!)在Web浏览器中浏览应用时,每个HTTP请求的信息都会记录到终端的标准输出中,因此我们可以查看应用是否抛出了404或500响应:

8ec872cce9ccb4f63b9af9b5af5364a2.png

有时候我们需要在同一局域网中的另一台设备中访问这个服务器(例如iPad或本地虚拟机),为此,我们可以把localhost换成0.0.0.0,让PHP Web服务器监听所有接口:

php -S 0.0.0.0:8000

要想停止Web服务器,可以关闭终端,也可以按Ctrl+C快捷键。

2、配置

应用常常需要使用专属的PHP配置文件,尤其是对内存使用、文件上传、分析或对字节码缓存有特殊要求时,一定要单独配置,我们可以使用-c选项,让PHP内置的服务器使用指定的配置文件:

php -S localhost:8000 -c app/config/php.ini

3、路由脚本

PHP内置服务器明显遗漏了一个功能:与Apache和Nginx不同,它不支持.htaccess文件,因此,这个服务器很难使用多数流行的PHP框架中常见的前端控制器(单一入口文件index.php,用于转发所有HTTP请求,现在主流PHP框架如Laravel、Symfony都是这样)。

PHP内置服务器使用路由脚本弥补了这一缺憾,处理每个HTTP请求前,会先执行这个路由脚本,如果结果为false,返回当前HTTP请求中引用的静态资源URI,否则会把路由脚本的执行结果当做HTTP响应主体返回。换句话说,路由脚本的作用其实和.htaccess一样。

路由脚本的用法很简单,只需要在启动PHP内置服务器时指定这个PHP脚本文件的路径即可:

php -S localhost:8000 router.php

4、判断函数

有时候需要知道PHP脚本使用的是PHP内置的Web服务器还是使用传统的Web服务器,这样方便我们为不同服务器设定不同的响应头。我们可以使用php_sapi_name()函数检查使用的是哪个PHP Web服务器,如果当前脚本使用的是PHP内置服务器,则该函数返回字符串cli-server:

if (php_sapi_name() == ‘cli-server') {

// PHP 内置 Web 服务器

} else {

// 其他Web服务器

}

5、缺点

PHP内置的Web服务器不能在生成环境使用,只能在本地开发环境中使用,这是因为其相比Apache或Nginx有诸多不足:

性能不佳。一次只能处理一个请求,其他请求会受到阻塞。如果某个进程耗时较长(数据库查询、远程API调用),则整个Web应用会陷入停顿状态。

支持媒体类型较少(这一点PHP 5.5.7以后有较大改进)。

路由脚本仅支持少量的URL重写,更高级则还是需要Apache或Nginx

转自:http://laravelacademy.org/post/4422.html

使用简单总结:

PHP在安装的时候会内置了服务器的功能,我们在使用的过程中如果只是调试,可以选择启动PHP内置的服务器,

下面是windows下PHP内置服务器的启动步骤:

1、将php的D:phpStudyphp54(

即php.exe所在目录

)添加到环境变量path中。

2、打开dos命令窗口输入(

其中D:phpStudyWWWaaa为项目目录

)

php -S localhost:80 -t D:phpStudyWWWaaa

3、服务开启成功(

运行期间该窗口不能关闭

)

C:UsersDELL>php -S localhost:80 -t D:phpStudyWWWaaa

PHP 5.4.26 Development Server started at Wed Aug 26 11:45:20 2015

Listening on http://localhost:80

Document root is D:phpStudyWWWaaa

Press Ctrl-C to quit.

4、使用localhost访问即可

转自:http://blog.csdn.net/jerry_dui/article/details/49367039

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值