有没有办法将自定义 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。