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

我刚创建了一个新的Symfony 3.4应用程序。 根据Symfony的文档,我可以通过运行</ p>

  php bin / console server:start 
</ code> </ pre>来使用PHP的内置Web服务器来管理我的应用程序

但是 - 这似乎在开发模式下运行应用程序。 打开了异常打印,显示开发人员工具栏等。</ p>

有没有办法在Symfony的生产模式下使用内置Web服务器? 这不是为了向公众提供服务器(这将是愚蠢的),而是因为我想测试一个问题可能只会在生产模式中出现。</ p>
</ div>

展开原文

原文

I just created a new Symfony 3.4 application. Per Symfony's docs, I can server my application using PHP's built-in web-server by running

php bin/console server:start

However -- this appears to run the application in development mode. Whoops exception printing is on, the developer toolbar shows up, etc.

Is there a way to use the built-in web server with Symfony's production mode? This isn't to server an application to the public (which would be dumb) but instead because I want to test an issue may only crop up in production mode.

dongteng2534
dongteng2534 仅供参考,Web服务器包仅对dev启用。您可以在AppKernel.php或bundles.php中看到它。所以指定环境基本上是死路一条。因此,您可以使用app.php,但是您应该做些什么来进行正确的测试,然后继续配置apache或nginx服务器进行生产测试。
2 年多之前 回复
du9757
du9757 同样的错误。(Symfony3.4如果重要的话)
2 年多之前 回复
duanqiao2006
duanqiao2006 好的,如果你改变命令phpbin/console--env=prodserver:start?
2 年多之前 回复
dongyi7966
dongyi7966 感谢@revo的建议-然而,这导致了“服务器”命名空间异常中没有定义命令,并且服务器没有启动。这是一个奇怪的错误信息,但[肩膀耸肩表情符号家伙]
2 年多之前 回复
donglv7097
donglv7097 您可以手动编辑app_dev.php以将其切换为PROD。注释掉Debug::enable()并将其更改为prod,例如$kernel=newAppKernel('prod',false);
2 年多之前 回复
duandu8202
duandu8202 phpbin/console服务器怎么样:启动--env=prod?
2 年多之前 回复

3个回答



您可以使用以下命令直接运行PHP的内置Web服务器,而不是symfony的服务器命令:</ p>
\ n

  php -S localhost:8000 -t web / app.php 
</ code> </ pre>

这假设您当前在项目目录中并且 web / </ code>目录托管 app.php </ code>文件。</ p>

-t </ code>表示文档根目录。 在此示例中, web / </ code>。</ p>

app.php </ code>被指定为路由器脚本,将处理您的请求。</ p>

有关PHP内置网络的更多信息 服务器命令 </ p>

现在,当您转到 localhost:8000 </ code>时,它将以 Production </ code>模式为您的Symfony项目提供服务。 </ p>

这不会在后台运行服务器,但您可以轻松搜索谷歌如何执行此操作。</ p>
</ div>

展开原文

原文

Instead of symfony's server command you can run PHP's built-in web-server directly with the following command:

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

This assumes that you are currently in your project directory and that the web/ directory hosts your app.php file.

-t denotes the document root. In this example that is web/.

app.php is specified as the router script and will handle your request.

More info on PHP's built-in web server command

Now when you go to localhost:8000 it will be serving your Symfony project in Production mode.

This doesn't run the server in the background, but you can easily search google for how to do that.

dousendun8411
dousendun8411 对我来说,这个工作:php -S localhost:8000 -t web / web / app.php
大约一年之前 回复

If you are using Symfony 4 you need to enable the server bundle for all environments in the bundles.php file. By default it's only turned on for dev.

<?php

return [
    // ...
    Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true],
];



是的,你在浏览器中输入的url上指定了 app.php </ code>,所以像这样的东西 </ p>

 <代码> mysite.dev/app.php/login
</代码> </ PRE>

或者</ p>

< pre> localhost:8000 / app.php / login
</ code> </ pre>

默认情况下,它会自动使用 app_dev.php </ code> </ p >
</ div>

展开原文

原文

Yea, you specify the app.php on the url you enter in the browser, so something like this

mysite.dev/app.php/login

Or

localhost:8000/app.php/login

By default it will automatically use app_dev.php

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐