我刚刚创建了一个新的Symfony 3.4应用程序。根据Symfony文档,我可以通过运行以下命令来使用PHP内置的Web服务器来提供我的应用程序:
php bin/console server:start
然而,似乎这将在开发模式下运行应用程序。这意味着异常打印已启用,开发人员工具栏显示等。
有没有办法在Symfony的生产模式下使用内置的Web服务器?这不是为了向公众提供应用程序(这将不是一个好主意),而是因为我想测试可能仅在生产模式下出现的问题。
我刚刚创建了一个新的Symfony 3.4应用程序。根据Symfony文档,我可以通过运行以下命令来使用PHP内置的Web服务器来提供我的应用程序:
php bin/console server:start
不必使用Symfony的server命令,您可以直接使用以下命令运行PHP内置的Web服务器:
php -S localhost:8000 -t web/ app.php
web/
目录包含您的app.php
文件。
-t
表示文档根目录。在此示例中,它是web/
。
app.php
被指定为路由器脚本,并将处理您的请求。
有关PHP内置Web服务器命令的更多信息
现在,当您访问localhost:8000
时,它将以Production
模式提供Symfony项目。php -S localhost:8000 -t web/ web/app.php
- Pavel Alazankin如果您正在使用Symfony 4,需要在bundles.php文件中对all
环境启用服务器bundle。默认情况下,它仅针对dev
开启。
<?php
return [
// ...
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true],
];
php -S localhost:8000 -t web/ web/app.php
是的,你需要在浏览器输入的URL中指定app.php
,就像这样:
mysite.dev/app.php/login
或者
localhost:8000/app.php/login
app_dev.php
。
php bin/console server:start --env=prod
怎么样? - revoapp_dev.php
文件将其切换到生产环境。注释掉Debug::enable()
并将其更改为prod
,例如:$kernel = new AppKernel('prod', false);
。 - Jared Farrishphp bin/console --env=prod server:start
会怎样呢? - revo