【问题标题】:Symfony 2 setup, 404 on anything not in "web"Symfony 2 设置,404 在任何不在“网络”中的东西上
【发布时间】:2012-10-18 15:30:39
【问题描述】:

我正在尝试设置 Symfony 2。我已直接从该站点下载,但没有进行任何更改。我可以浏览到config.php,上面写着Your configuration looks good to run Symfony.。如果我转到app_dev.php,我会收到一条 JavaScript 警报,说它无法打开 Web 调试工具栏。它询问我是否要转到分析器,如果单击确定,我会收到 404。在我的 apache 错误日志中,我看到它说文件不存在,因此是 404。

我的网络文件夹中的.htaccess 看起来像:

<IfModule mod_rewrite.c>
    RewriteEngine On

    #<IfModule mod_vhost_alias.c>
    #    RewriteBase /
    #</IfModule>

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

但我不认为.htaccess 与它有任何关系,因为网址是/app_dev.php/_profiler/50801f9707c71

我做错了什么?

注意:这不是开发版本。我使用的是 Symfony 下载页面中的 2.1.2 标准。

【问题讨论】:

    标签: apache symfony apache2 php


    【解决方案1】:

    我认为这是 symfony 2.1.3 版(开发版)中的一个错误。如果您更改 composer.json 2.1.2(而不是 2.1.*),然后点击“composer.phar update”,应该没问题。几天前我也发生过类似的事情。

    【讨论】:

    • 我从 symfony.com/download 下载了 2.1.2 标准。这不是开发版本。
    • 尝试倾销资产。应用程序/控制台资产:转储或应用程序/控制台资产:安装
    • 不知道应该怎么做,但它说Dumping all dev assets. Debug mode is on.
    • 成功了吗?您能告诉我们您还遇到了哪些其他错误吗?
    【解决方案2】:

    我也有同样的问题。考虑在继续之前分析此命令的输出。

    php app/check.php
    

    您已经去过: localhost/path/to/symfony/app/web/config.php

    php app/console config:dump-reference framework
    

    2.1.2 和 2.1.3 中的 .htaccess 完全相同,对我来说这两个版本都失败了。 :(

    试过

    php app/console assetic:dump
    php app/console assets:install 
    

    没有成功

    composer update
    

    我会尝试将它安装在另一台服务器上以避免任何 apache 配置错误

    希望有人可以帮助我们。

    【讨论】:

    • app/console assets:install 为我解决了这个问题。
    【解决方案3】:

    这一切都与您的 Apache 有关。将您的虚拟主机设置为

    <VirtualHost *:80>
        ServerName domain.tld
        ServerAlias www.domain.tld
    
        DocumentRoot /var/www/project/web
        <Directory /var/www/project/web>
            # enable the .htaccess rewrites
            AllowOverride All
            Order allow,deny
            Allow from All
        </Directory>
    
        ErrorLog /var/log/apache2/project_error.log
        CustomLog /var/log/apache2/project_access.log combined
    </VirtualHost>
    

    对于 NGINX 配置文件,应该是这样的

       location / {
                # try to serve file directly, fallback to rewrite
                try_files $uri @rewriteapp;
        }
    
        location @rewriteapp {
                # rewrite all to app.php
                rewrite ^(.*)$ /app.php/$1 last;
        }
    
    
        location ~ ^/(app|app_dev|config)\.php(/|$) {
                 fastcgi_pass unix:/var/run/php5-fpm.sock;
                 fastcgi_split_path_info ^(.+\.php)(/.*)$;
                 include fastcgi_params;
                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                 fastcgi_param HTTPS off;
       }
    

    现在它应该消失了。

    参考here

    【讨论】:

    • -1 因为我没有在哪里提到我正在使用 NGINX 并且我已将其标记为“apache”和“apache2”
    • 很公平。这并不意味着它不能解决 Nginx 用户的问题,很难。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2017-01-12
    相关资源
    最近更新 更多