不使用 apche/nginx,php 命令如何启动 www 服务?
发布于 作者:苏南大叔 来源:程序如此灵动~php
从5.4
版本开始,已经支持内置的webserver
。也就是说:可以不使用apache
,也不使用nginx
,只要你的命令行能够识别php
这个命令,那么就可以通过这个php
命令,来启动一个www
服务了。
当然,这样启动的php网站,就不能享受到传统的.htaccess
或者nginx.cnf
的rewrite
的好处了。但是,也是为大家打开了一扇新的大门,不是嘛?
在本文中,苏南大叔将要描述php
命令,如何启动一个网站www
服务。本文内容,不分操作系统,只要你的php大于等于5.4
,在命令行中可以正确识别php
命令即可。测试环境:mac
,php@7.2.2
。
基本启动命令
php -S <domain>:<port>
苏南大叔cd
到网站代码的根目录下面,然后执行如下命令,就可以启动一个http://localhost:8000
的网站服务了。
cd <www_root>/
php -S localhost:8000
下面是相关要点:
php
的参数-S
,注意后面的值没有http://
字样,而且必须有端口号。- 如果这里写的不是
127.0.0.1
本机地址,而是localhost
,或者一个自定义的域名,比如my.test
的话,那么就必须严格按着你填写的这个域名和端口号来访问。 - 而且特别强调的是,千万注意端口冲突。比如
80
很有可能会和nginx
/apache
/iis
冲突,9000
很可能和php-fpm
冲突。
设置网站代码根目录
php -S <domain>:<port> -t <www_root>/
本节的内容,增加了新的参数-t
。如果不写-t
参数的话,就默认当前目录就是网站的根目录,也就是说下面的这两条命令是等同的。
php -S localhost:8000
等同于
php -S localhost:8000 -t ./
当然,如果你想给当前目录下的sub
目录,单独开一个新的网站的话,命令就是:
php -S localhost:8000 -t sub/
指定php.ini
如果对于php
的细节进行定制的话,就必须指定php.ini
了。
php -S localhost:8000 -c php.ini
注意,这里的php.ini
最好写绝对路径,比如:
php -S localhost:8002 -c D:\tools\phpstudy_pro\Extensions\php\php8.2.9nts\php.ini -t E:\test\php\
否则,这个php.ini
的路径确实有歧义,是从php.exe
路径开始找,还是在当前路径开始找?亦或是从代码根目录开始找?有歧义啊对不?
关键是,这个-c
参数指定一个不存在的php.ini
的文件名,依然也不会报错,这就非常的令人迷惑不解了。
注意事项
这里有个需要注意的问题就是,在这里的localhost
和127.0.0.1
并不相等,并不能替换。参考下面的图片:
使用127.0.0.1
访问的话,会被拒绝服务。
相关链接
结论
最基本的用法就是上述这些了。但是,毕竟抛弃了大家常用的nginx
和apache
的概念,所以,苏南大叔个人建议:拿来做简单测试还好吧,毕竟敲个命令也蛮简单的。但是拿来做生产环境的话,可就要三思了。
这种使用方式和node
的使用方式实在是太相似了,在控制台中还能看到php
报错信息。所以,也还是有一定的使用场景的。
更多苏南大叔的php
相关经验文章,请点击这里查看:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。