尝试打开/app_dev.php时出现Symfony 2:404 Not Error

时间:2012-09-14 12:45:46

标签: symfony nginx http-status-code-404 symfony-2.1 profiler

尝试打开时收到此错误消息

/app_dev.php

An error occurred while loading the web debug toolbar (404: Not Found).

Do you want to open the profiler?

当我点击确定时,我收到错误:

app_dev.php/_profiler/5053258a822e1

404 Not found

我正在使用nginx

非常感谢你的帮助。

编辑:这是错误日志:

[error] 18369#0: *9 open() "/var/www/Symfony/web/app_dev.php/_wdt/5056f875afc98" failed (20: Not a directory), client: 127.0.0.1, server: symfony, request: "GET /app_dev.php/_wdt/5056f875afc98 HTTP/1.1", host: "symfony", referrer: "http://symfony/app_dev.php"
[error] 18369#0: *9 open() "/var/www/Symfony/web/404" failed (2: No such file or directory), client: 127.0.0.1, server: symfony, request: "GET /app_dev.php/_wdt/5056f875afc98 HTTP/1.1", host: "symfony", referrer: "http://symfony/app_dev.php"

编辑2:

当我尝试访问app_dev.php时,页面打开但没有工具栏,当我尝试使用app_dev.php /我正在获取

**Oops! An Error Occurred
The server returned a "404 Not Found".
Something is broken. Please e-mail us at [email] and let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused. **

错误。

7 个答案:

答案 0 :(得分:10)

我知道这不是你提出的问题,但可能有助于未来搜索此问题的人,比如@yvoyer建议,我的问题也是尾随斜线,我的服务器使用nginx和fpm,而且在nginx //中不是euqal /,所以我不得不在我的虚拟主机conf上做一些修复,之后它运行良好。我只是将conf粘贴给任何需要它的人,或者建议一个更好的。

    location / {
            try_files $uri @pass_to_symfony;
    }

    location ~ /app_dev.php/ {
            try_files $uri @pass_to_symfony_dev;
    }

    location @pass_to_symfony{
            rewrite ^ /app.php?$request_uri last;
    }

    location @pass_to_symfony_dev{
            rewrite ^ /app_dev.php?$request_uri last;
    }

    location ~ ^/app(_dev)?\.php($|/) {
            include fastcgi_params;
            fastcgi_pass   unix:/var/run/php5-fpm.sock; # replace with your sock path
    }

答案 1 :(得分:3)

我遇到了同样的错误,但我发现在输入app_dev.php/时输出了消息,但在请求app_dev.php时没有输出(请注意尾随斜杠/)。

我认为它与路由器有关,但它只是一个有根据的猜测

答案 2 :(得分:1)

我的错误与Nginx配置有关(使用symfony 3.1),我刚从Symfony编辑了推荐的Nginx配置:

http://symfony.com/doc/current/setup/web_server_configuration.html

所以,也许是因为符号链接,我不知道。

我将一小部分复制到Nginx默认配置并编辑以匹配所有.php:

# As we get dmap task id here
dmap_task = celery_app.AsyncResult(task.id)
dmap_result = dmap_task.get()
# Get actual aggregate_result task id
aggr_res_task_id = dmap_result[0][0]
result = celery_app.AsyncResult(aggr_res_task_id)
# Here we receive actual output of overall task
result.get()

我建议坚持使用Symfony推荐生产服务器。

答案 3 :(得分:0)

要在Symfony2页面的开发者模式下显示Web调试工具栏,应该有有效的HTML。

答案 4 :(得分:-1)

我找到了解决方案(或多或少)。我采用了另一个现有的Symfony项目,现在一切正常。我真的不知道为什么Symfony标准版本在我的情况下不起作用...如果somebady需要空的symfony项目,我可以上传档案。

编辑:这是工作Symfony 2.0的模板:http://www.megafileupload.com/en/file/372986/Symfony-tpl-zip.html

答案 5 :(得分:-1)

它发生在我的开发环境中,所以我在我的vhost配置文件中对指令DirectoryIndex发表评论,所以现在我到达我的应用程序:http://127.0.0.1/app_dev.php 并且没有关于探查器的错误! 我使用Symfony 2.3.x。

答案 6 :(得分:-3)

请注意你的.htaccess,我也遇到了这个问题而且我已经修好了。

    <IfModule mod_rewrite.c>
    RewriteEngine On
        RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app_dev.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]    ##### this is the part that you should tweak, have the .htaccess point the request to app_dev.php, since the routing.yml is empty initially
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]
    RewriteRule .? %{ENV:BASE}/app_dev.php [L]        ##### this is the part that you should tweak, have the .htaccess point the request to app_dev.php, since the routing.yml is empty initially
    </IfModule>

    <IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        # When mod_rewrite is not available, we instruct a temporary redirect of
        # the startpage to the front controller explicitly so that the website
        # and the generated links can still be used.
        RedirectMatch 302 ^/$ /app.php/
        # RedirectTemp cannot be used instead
    </IfModule>
    </IfModule>