在Symfony的生产模式下使用PHP的内置Web服务器

Ala*_*orm 4 php symfony php-builtin-server

我刚刚创建了一个新的Symfony 3.4应用程序。根据Symfony的文档,我可以通过运行以下命令使用PHP的内置Web服务器对应用程序进行服务器处理

php bin/console server:start
Run Code Online (Sandbox Code Playgroud)

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

有没有办法在Symfony的生产模式下使用内置的Web服务器?这不是将应用程序发布给公众(这是愚蠢的),而是因为我要测试一个问题,可能只会在生产模式下出现。

hco*_*oat 6

可以使用以下命令直接运行PHP的内置Web服务器,而不是symfony的server命令:

php -S localhost:8000 -t web/ app.php
Run Code Online (Sandbox Code Playgroud)

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

-t表示文档根。在此示例中为web/

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

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

现在,当您转到localhost:8000它时,它将以Production模式服务您的Symfony项目。

这不会在后台运行服务器,但是您可以轻松地在google中搜索操作方法。

  • 对我来说,这个有效: `php -S localhost:8000 -t web/ web/app.php` (2认同)

Rya*_*yan 5

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

<?php

return [
    // ...
    Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true],
];
Run Code Online (Sandbox Code Playgroud)


Rig*_*lly 1

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

mysite.dev/app.php/login
Run Code Online (Sandbox Code Playgroud)

或者

localhost:8000/app.php/login
Run Code Online (Sandbox Code Playgroud)

默认情况下它会自动使用app_dev.php