首页 > 解决方案 > 如何在 Apache 中设置 Symfony3 环境

问题描述

我在我的开发机器上运行 Apache 2.4,所以我可以在本地测试代码。我如何告诉 Symfony 3.4 使用 'dev' 环境而不是 'prod' 环境?

我尝试浏览到http://localhost/app_dev.php,但这只是重定向到http://localhost/。看起来前端控制器是在 .htaccess 中设置的,但是如果我修改该文件,那么我的生产服务器将使用错误的前端控制器。

我已阅读以下页面上的文档,其中讨论了如何创建新环境,而不是如何设置默认环境。

https://symfony.com/doc/3.4/configuration/environments.html

https://symfony.com/doc/3.4/setup/web_server_configuration.html

我在 Windows 10 上运行 Apache 2.4,这是我的虚拟主机配置

<VirtualHost *:80>
    ServerName example.local
    DocumentRoot "C:\Users\kento\PhpstormProjects\example\web"
        <Directory "C:\Users\kento\PhpstormProjects\example\web">
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
                DirectoryIndex app_dev.php
        </Directory>
    ErrorLog "logs/example-error.log"
    CustomLog "logs/example-access.log" common
</VirtualHost>

example.local 在我的 hosts 文件中指向 127.0.0.1。我设置DirectoryIndex为 app_dev.php 但这似乎被 .htaccess 文件覆盖。

标签: symfony

解决方案


您已经将 vhost 设置为使用 app_dev.php,但随后您允许 .htaccess 使用 .htaccess 覆盖AllowOverride All。将其更改为AllowOverride None.htaccess 将被忽略。

可能有一些配置可以从那里合并到虚拟主机中。

我倾向于更喜欢虚拟主机中的所有配置,并且不使用任何 .htaccess 文件,以提高速度 - 特别是在生产中。


推荐阅读