06月27, 2017

PHP内置Web Server研究

记得刚开始接触node.js的时候写的第一段代码就是起一个nodejs的服务。很清楚的记得当初写的就是下面这货

var http = require('http');

http.createServer(function (request, response) {
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    response.end('Hello World\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8080/');

然后把上面代码保存到一个叫server.js 的文件里面,使用命令node server.js就能够启用一个8080的web服务。

上面代码可以看出nodejs不需要其他web服务器的支持,可以直接启用一个web服务来进行开发及测试。平时开发PHP的时候基本都是在完整的环境(lnmp || lamp)下面进行的。

那么问题来了,如果仅仅只是想跑一下部分代码,这个时候就要悲催的去启动一下Nginx或者是Apache。当然你也可以在命令行里面使用PHP的cli模式执行。不过这样不太方便,个人还是喜欢使用webserver。 其实PHP本身也是可以启用一个简单的web服务的,利用下面的命令就可以做到

cd $ROOT_PATH //进入你的项目根目录

php -S php -S localhost:8000 //然后执行这条命令,端口可以自己指定

看看下面这个栗子:

alt

上面的操作可以简化, 可以使用-t参数来指定根目录,如下:

命令 php -S localhost:8080 -t $ROOT_PATH

alt

以上启动的服务只能够在本机访问,当我们想使用其他设备访问的时候我们可以使用

php -S 0.0.0.0:port -t $ROOT_PATH;

alt

PHP该内置的Web Server用于个人测试及小网站的开发是没有任何问题的,不是大型应用还是要配合Nginx或Apache以达到最高效率。

参考:

本文链接:http://codepowers.com/post/php-web-server.html

-- EOF --

Comments