3

我正在使用 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/"
    }
}
4

2 回答 2

4

您可以composer.json像这样在文件中设置进程超时:

  {
    ...
    "scripts": {
      "start": "php -S 127.0.0.1:80 .router.php -t public"
    },
    "config": {
      "process-timeout": 0
    }
  }

并像这样启动网络服务器:

$ composer start

于 2018-04-29T07:50:57.407 回答
4

问题是作曲家在 300 秒后有一个默认超时。

执行您可以使用的命令时--timeout=0,这将禁用超时。在您的示例中,命令看起来像composer run-script server --timeout=0

于 2016-05-26T13:01:14.463 回答