Php 找不到Symfony 404

Php 找不到Symfony 404,php,symfony,symfony-2.1,Php,Symfony,Symfony 2.1,我是新来的 我做到了: rm -rf app/cache/* rm -rf app/logs/* 然后: ls-al给出: drwxrwxrwx 3 user user 1024 мая 29 00:06 cache(cache is on green background) drwxrwxrwx 2 user user 1024 мая 29 00:06 logs(logs is on green background) 现在我尝试访问/Symfony/web/app_dev.

我是新来的

我做到了:

rm -rf app/cache/*
rm -rf app/logs/*
然后:

ls-al
给出:

drwxrwxrwx 3 user user  1024 мая   29 00:06 cache(cache is on green background)
drwxrwxrwx 2 user user  1024 мая   29 00:06 logs(logs is on green background)
现在我尝试访问/Symfony/web/app_dev.php-它显示:

加载web调试工具栏时出错(404:未找到)

是否要打开探查器

当我单击“确定”时,它将重定向到

/Symfony/web/app_dev.php/_profiler/bd8604738ac7af3c9d0611ea12076f0f62422601
和404文件未找到

这是app/logs/dev.log

[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelRequest". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\FrameworkBundle\EventListener\SessionListener::onKernelRequest". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". [] []
[2013-05-29 00:12:29] request.INFO: Matched route "_welcome" (parameters: "_controller": "Acme\DemoBundle\Controller\WelcomeController::indexAction", "_route": "_welcome") [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\Security\Http\Firewall::onKernelRequest". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Bundle\AsseticBundle\EventListener\RequestListener::onKernelRequest". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\Fragment\FragmentHandler::onKernelRequest". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DeprecationLoggerListener::injectLogger". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener::onKernelController". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener::onKernelController". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.controller" to listener "Acme\DemoBundle\EventListener\ControllerListener::onKernelController". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\ChromePhpHandler::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\CacheListener::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\Fragment\FragmentHandler::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\RememberMe\ResponseListener::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\StreamedResponseListener::onKernelResponse". [] []
[2013-05-29 00:12:29] event.DEBUG: Notified event "kernel.terminate" to listener "Symfony\Bundle\SwiftmailerBundle\EventListener\EmailSenderListener::onKernelTerminate". [] []
我还没有找到解决办法,请帮忙

编辑:

路由_dev.xml

_welcome:
    pattern:  /
    defaults: { _controller: AcmeDemoBundle:Welcome:index }

_demo_secured:
    resource: "@AcmeDemoBundle/Controller/SecuredController.php"
    type:     annotation

_demo:
    resource: "@AcmeDemoBundle/Controller/DemoController.php"
    type:     annotation
    prefix:   /demo

_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /_profiler

_configurator:
    resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
    prefix:   /_configurator

_main:
    resource: routing.yml
config_dev.xml

imports:
    - { resource: config.yml }

framework:
    router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }
    profiler: { only_exceptions: false }

web_profiler:
    toolbar: true
    intercept_redirects: false

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        firephp:
            type:  firephp
            level: info
        chromephp:
            type:  chromephp
            level: info

assetic:
    use_controller: true

#swiftmailer:
#    delivery_address: me@example.com
app_dev.php

<?php

use Symfony\Component\HttpFoundation\Request;

// If you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);

// This check prevents access to debug front controllers that are deployed by accident to production servers.
// Feel free to remove this, extend it, or make something more sophisticated.
if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1'))
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
Request::enableHttpMethodParameterOverride();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

也许您还没有包括web探查器的路由

如果您发布您的
config_dev.yml
&
routing_dev.yml
,也许我们可以看到哪里出了问题

您的
路由\u dev.yml
应该如下所示

_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /_profiler

_configurator:
    resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
    prefix:   /_configurator

_main:
    resource: routing.yml
您的
config_dev.yml
应该包含以下内容

imports:
    - { resource: config.yml }
    - { resource: security_dev.yml }

framework:
    router:
        resource: "%kernel.root_dir%/config/routing_dev.yml"
还要确保
app_dev.php
正在将环境设置为
dev
,就像这样

// ...
require_once __DIR__.'/../app/AppKernel.php';

$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
// ...

根据我自己的经验,;当您更改管线的标准行为时,会发生此行为。例如,在我的例子中,我使用kernel.request listener创建了一个语言检测机制,该机制假设根据用户的浏览器支持的语言为用户选择最佳的语言

我在app/config/routing.yml中的所有路由中都使用了{u locale}前缀

some_route:
    resource: "@MyBundle/Resources/config/routing.yml"
    prefix:   /{_locale}/
通过这种方式,我能够在路由开始时快速添加语言代码,并且在我的侦听器类中,我将客户端重定向到以现有语言代码为前缀的路由,而不管客户端请求的路由是否带有区域设置

例如,如果我的站点只有“en”和“de”作为语言,并且如果用户请求

http://www.mysite.com/somepage

我正在将客户端重定向到

http://www.mysite.com/en/somepage
因此,每当我的应用程序中出现错误时,探查器路由都不知道这种情况,并试图从没有{u locale}前缀的路由中显示自己。这导致了404错误

解决办法很简单:

我打开了app/config/routing_dev.yml文件并修改了所有路由,如下所示:

_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /{_locale}/_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /{_locale}/_profiler

_configurator:
    resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
    prefix:   /{_locale}/_configurator
注意/{u locale}部分


所以这个问题对我来说已经解决了。

在我的例子中,这是一个路由冲突。我在routing_dev.yml中更改了路由,但更改的方式与我的路由不冲突

我的问题是事件执行时间超过10秒。这很难发现,因为探查器并没有测量这一事件的时间线

当我意识到这一点时,我立即将问题缩小到我的一个事件侦听器异常长时间运行
\u construct
方法。此延迟配置文件打印时间过长,导致Javascript超时错误,重试5次

在修复了有问题的侦听器之后,
kernel.terminate
事件迅速发生,问题立即消失


您可以使用
bin/console debug:event dispatcher kernel.terminate

快速查看附加的侦听器。最终对我起作用的是增加php.ini文件中
内存限制
最大执行时间
的值,重新启动php fpm(例如,
brew服务重新启动php56
),然后重新启动服务器(
sudo nginx-s reload
)。如果在所有这些之后仍然无法工作,请尝试重新启动计算机。它对我的一个同事有效

如果运行
config.php
文件会怎么样?它工作了(一次)吗?盲目猜测:mod_rewrite启用了吗?运行config.php时没有错误-我没有设置任何类似mod_rewrite的东西。如果你设置另一个新的symfony项目,你能重现这个问题吗?添加了文件中包含的数据,请查看它好吧,你救了我几天的命。
http://www.mysite.com/en/somepage
_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /{_locale}/_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /{_locale}/_profiler

_configurator:
    resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
    prefix:   /{_locale}/_configurator