当 PHP 内置服务器崩溃时,端口仍在使用中
When PHP built in server crashes, the port is still in use
我正在使用 PHP 内置服务器,如下所示:
$ composer serve
> php -S localhost:8000 -t public/
但是超时了..?
[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process "php -S localhost:8080 -t public/" exceeded the timeout of 300 seconds.
所以,我尝试重新启动它:
$ composer serve
> php -S localhost:8000 -t public/
[Thu May 26 21:31:51 2016] Failed to listen on localhost:8000 (reason: Address already in use)
Script php -S localhost:8000 -t public/ handling the serve event returned with error code 1
为什么服务器在超时之前 运行 所在的端口仍在使用中?我可以停止 PHP 内置服务器的所有实例吗?
如果重要,下面是我的 composer.json 文件:
{
.
.
.
"scripts": {
"serve": "php -S localhost:8000 -t public/"
}
}
问题是 composer 在 300 秒后有默认超时。
执行命令时可以使用--timeout=0
,这会禁用超时。在您的示例中,命令看起来像 composer run-script server --timeout=0
您可以像这样在 composer.json
文件中设置进程超时:
{
...
"scripts": {
"start": "php -S 127.0.0.1:80 .router.php -t public"
},
"config": {
"process-timeout": 0
}
}
并像这样启动网络服务器:
$ composer start
我正在使用 PHP 内置服务器,如下所示:
$ composer serve
> php -S localhost:8000 -t public/
但是超时了..?
[Symfony\Component\Process\Exception\ProcessTimedOutException]
The process "php -S localhost:8080 -t public/" exceeded the timeout of 300 seconds.
所以,我尝试重新启动它:
$ composer serve
> php -S localhost:8000 -t public/
[Thu May 26 21:31:51 2016] Failed to listen on localhost:8000 (reason: Address already in use)
Script php -S localhost:8000 -t public/ handling the serve event returned with error code 1
为什么服务器在超时之前 运行 所在的端口仍在使用中?我可以停止 PHP 内置服务器的所有实例吗?
如果重要,下面是我的 composer.json 文件:
{
.
.
.
"scripts": {
"serve": "php -S localhost:8000 -t public/"
}
}
问题是 composer 在 300 秒后有默认超时。
执行命令时可以使用--timeout=0
,这会禁用超时。在您的示例中,命令看起来像 composer run-script server --timeout=0
您可以像这样在 composer.json
文件中设置进程超时:
{
...
"scripts": {
"start": "php -S 127.0.0.1:80 .router.php -t public"
},
"config": {
"process-timeout": 0
}
}
并像这样启动网络服务器:
$ composer start