Laravel 使用自定义 php.ini 和 artisan 服务

Tur*_*363 5 php laravel-5

有没有办法将自定义 php.ini 传递给artisan serve

我试过了

php -c path/to/my/custom/php.ini artisan serve
Run Code Online (Sandbox Code Playgroud)

但这似乎不会影响网络服务器?

我知道我的 .ini 文件在哪里,并且知道如何编辑它们。我似乎无法使用artisan serve自定义 .ini。

我还看了:

php artisan serve --help 
Run Code Online (Sandbox Code Playgroud)

它似乎没有列出任何设置 .ini 的选项。

我的原因是我有一个启用了 XDebug 的自定义 .ini 文件。我希望在调试 Laravel 应用程序时能够使用它,但我不希望在我的默认 php.ini 中启用它

更新

我看过

vendor\laravel\framework\src\Illuminate\Foundation\Console\ServeCommand.php
Run Code Online (Sandbox Code Playgroud)

对于 Laravel 5.6.25 第 49-57 行,他们有这样的内容:

 /**
 * Get the full server command.
 *
 * @return string
 */
protected function serverCommand()
{
    return sprintf('%s -S %s:%s %s',
        ProcessUtils::escapeArgument((new PhpExecutableFinder)->find(false)),
        $this->host(),
        $this->port(),
        ProcessUtils::escapeArgument(base_path('server.php'))
    );
}
Run Code Online (Sandbox Code Playgroud)

因此,除非 PhpExecutableFinder 包含 .ini 路径的 -c 参数,否则似乎无法传入自定义 .ini?

更新2

我查看了 PhpExecutableFinder,看起来好像可以设置 PHP_BINARY 环境变量来覆盖,但这不起作用。可以有另一个完整的 PHP 副本来配置用于测试,但我宁愿有一个 PHP 并且只传递我的自定义 .ini。

Tur*_*363 2

在查看了 Laravel 5.6.25 的 Laravel 框架代码后,答案似乎是否定的,这是不可能的。请参阅问题了解更多详细信息。