Apache2 Vhost 不适用于 Symfony 2.8

Posted

技术标签:

【中文标题】Apache2 Vhost 不适用于 Symfony 2.8【英文标题】:Apache2 Vhost doesn't works with Symfony 2.8 【发布时间】:2016-04-23 21:53:29 【问题描述】:

我启动了 symfony 2.8 项目,但我遇到了 Apache2 vhosts 的问题。

当我尝试获取我的管理员主页时,出现 404 错误。

这是我在 /etc/apache2/sites-enabled 目录中的项目 vhost 文件(具有 777 测试权限):

<VirtualHost *:80>
    ServerName local.erdf.fr
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/erdf/web
    <Directory /var/www/erdf/web/>
    DirectoryIndex app_dev.php
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %REQUEST_FILENAME !-f
            RewriteRule ^(.*)$ /app_dev.php [QSA,L]
        </IfModule>
    </Directory>
ErrorLog /var/log/apache2/errors.log
</VirtualHost>

(我在创建文件后重新启动了 apache2 服务)

我还认为问题可能来自我的路由配置中的错误配置。

这就是我的 app/config/routing.yml:

admin:
    resource: "@AdminBundle/Resources/config/routing.yml"
    prefix:   /admin

还有我的 AdminBundle/Resources/routing.yml 配置:

admin_homepage:
    path:     /
    defaults:  _controller: AdminBundle:Default:index 

(我还使用“模式”参数而不是路径进行了测试)。

在我的本地计算机中,我在 /Etc/hosts 中添加了:

192.168.1.20 local.erdf.fr

所以,当我尝试访问 url:local.erdf.fr/web/app_dev.php/admin 时,出现 404 错误。 (如果我只是尝试 local.erdf.fr/web/app_dev.php/ 我在 /var/www/html 中有 apache2 默认页面)。

我希望我已经足够清楚,并提前感谢您的帮助。

PS:我刚刚创建了这个服务器。也许我应该更改 apache2 配置中的文件以考虑虚拟主机?

当我只使用 url:local.erdf.fr 时,我有 /var/www/racine:

编辑:已解决

好的,谢谢@Rufinus,他让我上路了。事实上,当我安装我的 apache 服务器时,我已经添加了

sudo a2enmod rewrite

但我忘记在 /etc/apache2/apache2.conf 的末尾添加这个:

<ifModule mod_rewrite.c>
RewriteEngine On
</ifModule>

感谢大家的宝贵帮助:) (对不起我的英语不好)

【问题讨论】:

apache是​​什么版本? @felipsmartins 它是 Apache/2.4.7 (Ubuntu) 因此,在 apache v2.4 中,您必须将 Order Allow,Deny 更改为 Require all granted。当然,重新加载 apache 服务。 完成并重新启动 apache。但仍然无法正常工作。 :/ @felipsmartins rewrite 模块已启用?因为您在 if 块中拥有它,所以您不会注意到它是否丢失。 【参考方案1】:

尝试通过 local.erdf.fr/app_dev.php/ 访问,因为您的 VHOST 已经瞄准 /web/ ?

编辑: ip对吗?

尝试删除尾随的 /

<Directory /var/www/erdf/web/>

并删除

DirectoryIndex app_dev.php

【讨论】:

您好,谢谢您的帮助。不,它不起作用,我也有 404 错误 所以,我添加了 vhosts 修改但仍然无法正常工作。 虚拟主机是否激活? sudo a2ensite example.com.conf 我直接在启用站点的情况下创建了虚拟主机

以上是关于Apache2 Vhost 不适用于 Symfony 2.8的主要内容,如果未能解决你的问题,请参考以下文章

反向代理不适用于使用 apache2 的 ubuntu 20 上的 https

mod_rewrite 适用于 .htaccess 文件,但不适用于 apache2.conf

Apache2 - 始终提供默认 VHOST

Apache2 vHost conf - 重定向到不同的服务器

Apache 2.4 - 简单的反向代理 - 不适用于多个条目

text 创建apache2虚拟主机的脚本#bash #linux #apache #wsl #host #vhost