有没有办法将自定义php.ini传递给artisan serve
?
我已经尝试了
php -c path/to/my/custom/php.ini artisan serve
这似乎不影响网络服务器吗?
我知道我的.ini文件在哪里,我知道如何编辑它们。我似乎无法使artisan serve
使用自定义.ini。
我也看了看:
php artisan serve --help
它似乎没有列出任何设置.ini的选项。
我的理由是我有一个启用了XDebug的自定义.ini文件。 我希望能够在调试我的Laravel应用程序时使用它,但我不想在默认的php.ini中启用它
更新
我看了
vendor\laravel\framework\src\Illuminate\Foundation\Console\ServeCommand.php
对于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'))
);
}
所以看起来除非PhpExecutableFinder包含.ini路径的-c参数,否则无法传入自定义.ini。
更新2
我查看了PhpExecutableFinder,看起来好像你可以设置一个PHP_BINARY环境变量来覆盖,但这不起作用。可以使用另一个完整的PHP副本进行测试,但我宁愿使用一个PHP并只传入我的自定义.ini。
答案 0 :(得分:1)
在查看Laravel 5.6.25的Laravel框架代码后,似乎答案是否,这是不可能的。有关详细信息,请参阅问题。
答案 1 :(得分:1)
这对我有用:
/public
中打开控制台echo 'upload_max_filesize=256m' >> user.ini
php -S 127.0.0.1:8000 -c user.ini '/absolute/path/to/laravel/project/server.php'
我研究了vendor\laravel\framework\src\Illuminate\Foundation\Console\ServeCommand.php
,但Laravel本身似乎并没有做更多的事情。
在phpinfo()
处查看我的upload_max_filesize
显示256m