web-dev-qa-db-fra.com

Symfony 4: une erreur s'est produite lors du chargement de la barre d'outils de débogage Web

Je travaille sur CentOS.

J'ai suivi les tutoriels: 

Comme j'utilise Apache, j'ai aussi suivi cette page:

J'ai créé un contrôleur par défaut et un modèle par défaut. Avec ce contrôleur (/) j'obtiens l'erreur suivante (dans la barre d'outils de débogage):

An error occurred while loading the web debug toolbar. Open the web profiler.

Lorsque je clique sur le lien: "Ouvrez le profileur Web", je peux voir la réponse Apache:

Not Found
The requested URL /_profiler/177403 was not found on this server.

Dans l'inspecteur de chrome, je peux voir: GET http://172.31.18.7/_wdt/177403 404 (Introuvable)

Voici la partie intéressante de mon composer.json:

    "require": {
        "php": "^7.1.3",
        "ext-iconv": "*",
        "doctrine/doctrine-fixtures-bundle": "^3.0",
        "sensio/framework-extra-bundle": "^5.1",
        "sonata-project/admin-bundle": "^3.35",
        "sonata-project/doctrine-orm-admin-bundle": "^3.6",
        "symfony/Apache-pack": "^1.0",
        "symfony/console": "^4.0",
        "symfony/flex": "^1.0",
        "symfony/framework-bundle": "^4.0",
        "symfony/lts": "^4@dev",
        "symfony/maker-bundle": "^1.4",
        "symfony/orm-pack": "^1.0",
        "symfony/requirements-checker": "^1.1",
        "symfony/security-bundle": "^4.0",
        "symfony/twig-bundle": "^4.0",
        "symfony/validator": "^4.0",
        "symfony/yaml": "^4.0"
    },
    "require-dev": {
        "sensiolabs/security-checker": "^4.1",
        "symfony/dotenv": "^4.0",
        "symfony/web-profiler-bundle": "^4.0"
    },

mon httpd.conf:

<VirtualHost *:80>
DocumentRoot /var/www/html/elora/public
ServerName eloradev
ServerAlias www.elora.dev
DirectoryIndex index.php

<Directory "elora/public">
    AllowOverride all
    Order Allow,Deny
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
    Allow from localhost
</Directory>

<Directory elora>
    Options FollowSymlinks
</Directory>    

ErrorLog /var/Apache/logs/error.log
CustomLog /var/Apache/logs/access.log combined  

</VirtualHost>

Et mon .htaccess:

DirectoryIndex index.php

<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{HTTP:Authorization} .
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 307 ^/$ /index.php/
    </IfModule>
</IfModule>

Et, pour finir, mon/lucky/number ( https://symfony.com/doc/current/page_creation.html ) affiche le message Apache: 

Not Found
The requested URL /lucky/number was not found on this server.

Il semble que le composant de routage ne fonctionne pas.

Les règles du routeur (debug: router):

-------------------------- -------- -------- ------ -------------------
Name                       Method   Scheme   Host   Path
-------------------------- -------- -------- ------ ----------------------- 
  app_homepage               ANY      ANY      ANY    /
  app_lucky                  ANY      ANY      ANY    /lucky
  app_lucky_number           ANY      ANY      ANY    /lucky/number
  _twig_error_test           ANY      ANY      ANY    /_error/{code}.{_format}
  _wdt                       ANY      ANY      ANY    /_wdt/{token}
  _profiler_home             ANY      ANY      ANY    /_profiler/
  _profiler_search           ANY      ANY      ANY    /_profiler/search
  _profiler_search_bar       ANY      ANY      ANY    /_profiler/search_bar
  _profiler_phpinfo          ANY      ANY      ANY    /_profiler/phpinfo
  _profiler_search_results   ANY      ANY      ANY    /_profiler/{token}/search/results
  _profiler_open_file        ANY      ANY      ANY    /_profiler/open
  _profiler                  ANY      ANY      ANY    /_profiler/{token}
  _profiler_router           ANY      ANY      ANY    /_profiler/{token}/router
  _profiler_exception        ANY      ANY      ANY    /_profiler/{token}/exception
  _profiler_exception_css    ANY      ANY      ANY    /_profiler/{token}/exception.css
 -------------------------- -------- -------- ------ -----------------------

J'ai créé manuellement le répertoire/_wdt, au cas où, mais cela n'a rien changé.

J'ai vérifié les erreurs avec debug: event-dispatcher, rien de spécial.

J'ai remarqué que le cache du profileur se trouve dans ce répertoire: var/cache/dev/profiler/03/74/et qu'il s'appelle 177403.

Une dernière chose, j'ai couru compositeur avec l'utilisateur 'root'. Et j'ai utilisé chown pour changer le propriétaire de mon projet.

Voici une partie de mon fichier .env:

###> symfony/framework-bundle ###
APP_ENV=dev
6
Yves

Je pense que cela nécessite htaccess ou mod_rewrite

composer require symfony/Apache-pack
27
MooMoo Cha

Comme la réponse est dans un commentaire, je le répète:

Avez-vous essayé l'URL http://www.elora.dev/index.php/_wdt/ ? J'ai eu un problème similaire car la réécriture de l'URL était incorrecte. - AL

C'est tout ! 

  1. /index.php n'a pas de problème avec la barre d'outils débogage
  2. /index.php/lucky/number works

Merci beaucoup A.L

5
Yves
composer require symfony/Apache-pack

Do you want to execute this recipe?
    [y] Yes
    [n] No
    [a] Yes for all packages, only for the current installation session
    [p] Yes permanently, never ask again for this project
    (defaults to n): y

Fichier hôte:

127.0.0.1 symfony01.com
127.0.0.1 www.symfony01.com

httpd-vhosts.conf:  

<VirtualHost *:80>
    ServerName symfony01.com
    ServerAlias www.symfony01.com   
    DocumentRoot "c:/wamp64/www/symfony01/public"
    <Directory  "c:/wamp64/www/symfony01/public/">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>
3
Akın Köker

Cela ressemble à un problème d'écriture en cache. La barre d'outils du profileur/débogage se bloque car les données de débogage sont écrites dans le dossier de cache. Votre application fonctionne probablement bien dans l'environnement prod.

Pour voir si c'est votre problème, essayez d'exécuter chmod -R 777 var/cache et essayez à nouveau.

La "meilleure solution" dépend de votre système d'exploitation. N'hésitez pas à ajouter des informations supplémentaires pour répondre avec précision, sinon vous pouvez consulter la documentation relative à Symfony ici (lien obsolète volontairement, ils l’ont supprimée de la doc SF4).

2
romaricdrigon

il suffit d'ajouter : 

FallbackResource /index.php 

dans votre répertoire 

    <Directory "/Library/WebServer/Documents/Your_public_symfony_directory">
            ....
            FallbackResource /index.php
            ....
    </Directory>

pour plus de documentation cliquez ici

1
rapaelec