我刚刚创建了一个新的 Symfony 3.4 应用程序。根据 Symfony 的文档,我可以通过运行使用 PHP 的内置网络服务器为我的应用程序提供服务
php bin/console server:start
但是 - 这似乎在开发模式下运行应用程序。这意味着异常打印已打开,开发人员工具栏显示等。
有没有办法在 Symfony 的生产模式下使用内置的 Web 服务器?这不是为了向公众提供应用程序(这不是一个好主意),而是因为我想测试一个可能只会在生产模式下出现的问题。
我刚刚创建了一个新的 Symfony 3.4 应用程序。根据 Symfony 的文档,我可以通过运行使用 PHP 的内置网络服务器为我的应用程序提供服务
php bin/console server:start
但是 - 这似乎在开发模式下运行应用程序。这意味着异常打印已打开,开发人员工具栏显示等。
有没有办法在 Symfony 的生产模式下使用内置的 Web 服务器?这不是为了向公众提供应用程序(这不是一个好主意),而是因为我想测试一个可能只会在生产模式下出现的问题。
代替 symfony 的 server 命令,你可以使用以下命令直接运行 PHP 的内置 web-server:
php -S localhost:8000 -t web/ app.php
这假定您当前位于项目目录中并且该web/
目录托管您的app.php
文件。
-t
表示文档根。在这个例子中是web/
。
app.php
被指定为路由器脚本并将处理您的请求。
现在,当您使用localhost:8000
它时,它将以Production
模式为您的 Symfony 项目提供服务。
这不会在后台运行服务器,但您可以轻松地在 google 上搜索如何执行此操作。
如果您使用 Symfony 4,您需要为文件all
中的环境启用服务器包bundles.php
。默认情况下,它仅对dev
.
<?php
return [
// ...
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true],
];
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
是的,您在浏览器中输入的 url 上指定app.php
,所以像这样
mysite.dev/app.php/login
或者
localhost:8000/app.php/login
默认会自动使用app_dev.php