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

时间:2018-06-15 16:18:05

标签: php laravel-5

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

2 个答案:

答案 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