Symfony 404 не найден

Я новичок в symfony.

Я сделал:

rm -rf app/cache/* rm -rf app/logs/* 

Затем:

 sudo setfacl -R -mu:www-data:rwx -mu:user :rwx app/cache app/logs sudo setfacl -dR -mu:www-data:rwx -mu:user:rwx app/cache 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 – Он показывает:

Произошла ошибка при загрузке панели инструментов веб-отладки (404: не найдено).

Вы хотите открыть профилировщик?

Когда я нажимаю OK, он перенаправляется на

 /Symfony/web/app_dev.php/_profiler/bd8604738ac7af3c9d0611ea12076f0f62422601 

и 404 файла не найдено ..

Это приложение / 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". [] [] 

Я не нашел решение, пожалуйста, помогите

Редактировать:

Routing_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); 

Моя проблема заключалась в том, что событие kernel.terminate выполнялось более 10 секунд. Было очень трудно заметить, потому что профилировщик не измерял сроки для этого события.

Когда я это понял, я сразу же сузил проблему до одного из моих слушателей событий, имеющих ненормально длинный метод __construct . Слишком длинная печать этого файла с задержкой, что вызвало ошибку таймаута Javascript после 5 попыток.

После исправления прослушивателя- kernel.terminate событие kernel.terminate прошло быстро, и проблема исчезла немедленно.

Вы можете быстро увидеть подключенных слушателей с помощью bin/console debug:event-dispatcher kernel.terminate .

По моему опыту; это происходит, когда вы меняете стандартное поведение ваших маршрутов. Например, в моем случае я использовал загрузчик kernel.request для создания механизма обнаружения языка, который предполагал выбрать наилучший язык для пользователя на основе поддерживаемого им браузера языка.

Я использовал префикс {_locale} во всех моих маршрутах, расположенных в app / config / routing.yml

 some_route: resource: "@MyBundle/Resources/config/routing.yml" prefix: /{_locale}/ 

Таким образом, я смог быстро добавить в начале моих маршрутов код языка, а в моем классе слушателя я перенаправлял клиента на маршрут с префиксом существующего языкового кода, независимо от того, запрашивал ли клиент маршрут с или без локали.

Например, если на моем сайте были только «en» и «de» в качестве языков, и если пользователь запросил

 http://www.mysite.com/somepage 

или

 http://www.mysite.com/fr/somepage 

Я перенаправлял клиента на

 http://www.mysite.com/en/somepage 

Поэтому всякий раз, когда в моем приложении была ошибка, маршрут профайлера не знал об этой ситуации и пытался показать себя с маршрута, который не имеет префикса {_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 

Обратите внимание на часть / {_ locale}.

Поэтому проблема решена для меня.

То, что для меня работало, увеличивало значения memory_limit и max_execution_time в моем файле php.ini, перезагружая php-fpm (например, brew services restart php56 ), а затем перезагружая сервер ( sudo nginx -s reload ). Если после этого все еще не работает, попробуйте перезагрузить компьютер. Это работало для моего коллеги.

Возможно, вы не включили маршруты для веб-профилировщика?

Если вы разместите свой config_dev.yml & routing_dev.yml возможно, мы увидим, что не так.

Ваш routing_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(); // ... 

В моем случае это был конфликт маршрутов. Я изменил маршруты в routing_dev.yml способом, который не противоречит моим маршрутам