6

我刚刚创建了一个新的 Symfony 3.4 应用程序。根据 Symfony 的文档,我可以通过运行使用 PHP 的内置网络服务器为我的应用程序提供服务

php bin/console server:start

但是 - 这似乎在开发模式下运行应用程序。这意味着异常打印已打开,开发人员工具栏显示等。

有没有办法在 Symfony 的生产模式下使用内置的 Web 服务器?这不是为了向公众提供应用程序(这不是一个好主意),而是因为我想测试一个可能只会在生产模式下出现的问题。

4

4 回答 4

8

代替 symfony 的 server 命令,你可以使用以下命令直接运行 PHP 的内置 web-server:

php -S localhost:8000 -t web/ app.php

这假定您当前位于项目目录中并且该web/目录托管您的app.php文件。

-t表示文档根。在这个例子中是web/

app.php被指定为路由器脚本并将处理您的请求。

有关 PHP 的内置 Web 服务器命令的更多信息

现在,当您使用localhost:8000它时,它将以Production模式为您的 Symfony 项目提供服务。

这不会在后台运行服务器,但您可以轻松地在 google 上搜索如何执行此操作。

于 2018-02-17T08:33:19.543 回答
4

如果您使用 Symfony 4,您需要为文件all中的环境启用服务器包bundles.php。默认情况下,它仅对dev.

<?php

return [
    // ...
    Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true],
];
于 2019-01-09T23:14:36.103 回答
1
php -S localhost:8000 -t web/ web/app.php

这对我有用。否则,将抛出此错误: PHP Fatal error: Unknown: Failed opening required 'app.php' (include_path='.:/usr/local/lib/php') in Unknown on line 0

于 2020-01-11T20:47:55.143 回答
1

是的,您在浏览器中输入的 url 上指定app.php,所以像这样

mysite.dev/app.php/login

或者

localhost:8000/app.php/login

默认会自动使用app_dev.php

于 2018-02-16T23:58:57.540 回答