You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache2下子目录部署Symfony4应用出现重定向循环问题求助

解决Symfony 4在Apache子目录部署的配置问题

别慌,Apache配置刚开始接触确实容易懵,我一步步帮你捋清楚:

1. 先确认mod_rewrite模块是否启用

Symfony的路由功能依赖rewrite模块,先确保它已经开启:

sudo a2enmod rewrite
sudo systemctl restart apache2

2. 修正你的VirtualHost配置

看起来你的配置没写完,而且如果是部署在子目录(比如访问路径是http://你的域名/rapp),配置需要调整。完整的rapp.conf应该是这样:

<VirtualHost *:80>
    ServerName your-domain.com # 替换成你的域名或者服务器IP
    DocumentRoot /var/www/html

    # 针对rapp子目录的核心配置
    <Directory /var/www/html/rapp/public>
        AllowOverride All
        Require all granted
        # 确保Symfony的URL重写规则生效
        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
        </IfModule>
    </Directory>

    # 日志配置(可选但方便排查问题)
    ErrorLog ${APACHE_LOG_DIR}/rapp_error.log
    CustomLog ${APACHE_LOG_DIR}/rapp_access.log combined
</VirtualHost>

这里要注意几个关键点:

  • 如果用IP访问,ServerName直接填你的服务器IP就行,比如192.168.1.100
  • DocumentRoot要设为/var/www/html而不是rapp的public目录,因为我们是在子目录/rapp下部署应用
  • 用了Apache 2.4的新语法Require all granted替代旧的Order Allow,Deny,更规范且兼容新环境

3. 修复Symfony的文件权限

Sym需要给Symfony的缓存和日志目录赋予Apache进程的写入权限:

sudo chown -R www-data:www-data /var/www/html/rapp/var
sudo chmod -R 775 /var/www/html/rapp/var

4. 重启Apache并测试配置

sudo systemctl restart apache2

之后访问http://你的域名/rapp,如果一切正常应该能看到Symfony的欢迎页面。如果还是出错,直接查看日志文件/var/log/apache2/rapp_error.log,里面会有具体的错误提示帮你定位问题。

另外,如果你的需求是把rapp作为根域名访问(比如http://你的域名直接打开应用),那DocumentRoot要设为/var/www/html/rapp/public,对应的VirtualHost配置可以改成:

<VirtualHost *:80>
    ServerName your-domain.com
    DocumentRoot /var/www/html/rapp/public

    <Directory /var/www/html/rapp/public>
        AllowOverride All
        Require all granted
        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/rapp_error.log
    CustomLog ${APACHE_LOG_DIR}/rapp_access.log combined
</VirtualHost>

内容的提问来源于stack exchange,提问作者Etshy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:37:09