在开发中,我们常常需要在本地启动一个PHP服务器,我们可以使用PHP命令行接口(CLI)提供的内置服务器命令通过命令行启动一个PHP服务器。
其中,php -S localhost:8000
命令可以在本地启动一个服务器,监听本地的8000端口。这个命令可以直接在命令行中运行,并且不需要上传文件到远程服务器,非常方便。
在使用php -S
命令时,我们可以指定服务器的IP和端口号:
php -S 127.0.0.1:8888
这样,我们就可以在本地启动一个服务器,监听IP为127.0.0.1,端口为8888。
除此之外,php -S
命令还可以指定服务器的静态文件根目录,这样我们就可以直接访问静态文件了:
php -S localhost:8000 -t public
这样,我们指定了服务器的静态文件根目录为public目录,那么就可以直接访问public目录下的静态文件:
http://localhost:8000/index.html
http://localhost:8000/css/style.css
http://localhost:8000/js/app.js
在指定静态文件目录时,我们还可以使用绝对路径或相对路径:
php -S localhost:8000 -t /path/to/public
php -S localhost:8000 -t ../public
同时,php -S
命令还支持URL重写,我们可以把所有的请求都重定向到入口文件,然后由入口文件分发请求。
php -S localhost:8000 router.php
这样,在访问任何URL时,服务器都会调用router.php文件,我们可以在文件中进行URL重写。例如:
<?php
if (preg_match('/^\/admin/', $_SERVER['REQUEST_URI'])) {
include __DIR__ . '/admin.php';
} else {
include __DIR__ . '/home.php';
}
在上面的例子中,如果访问的URL以/admin开头,那么就会调用admin.php文件,否则就调用home.php文件。
php -S
命令的详细参数可以通过php -h
命令查看:
php -h