Symfony 4: при загрузке панели инструментов веб-отладки произошла ошибка

Я работаю на CentOS.

Я следовал за учебниками:

Поскольку я использую Apache, я тоже следил за этой страницей:

Я сделал контроллер по умолчанию и шаблон по умолчанию. С этим контроллером (/) я получаю следующую ошибку (на панели инструментов отладки):

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

Когда я нажимаю на ссылку «Открыть веб-профилировщик», я вижу ответ Apache:

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

В инспекторе хрома я вижу:
ПОЛУЧИТЬ http://172.31.18.7/_wdt/177403 404 Не Найдено)

Вот интересная часть моего 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"},

мой 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>

И мой .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>

И, чтобы закончить, мой / счастливый / номер (https://symfony.com/doc/current/page_creation.html) поднимает сообщение apache:

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

Похоже, компонент маршрутизации не работает.

Правила маршрутизатора (отладка: маршрутизатор):

-------------------------- -------- -------- ------ -------------------
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
-------------------------- -------- -------- ------ -----------------------

Я вручную создал каталог / _wdt, но это ничего не изменило.

Я проверил ошибки с помощью debug: event-dispatcher, ничего особенного.

Я заметил, что кеш для профилировщика находится в этом каталоге: var / cache / dev / profiler / 03/74 / и называется 177403

Еще одна вещь, я запустил композитора с пользователем «root». И я использовал chown, чтобы сменить владельца моего проекта.

Вот часть моего файла .env:

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

6

Решение

Я думаю, что это требует htaccess или mod_rewrite

composer require symfony/apache-pack
26

Другие решения

Поскольку ответ находится в комментарии, я повторяю это:

Вы пробовали URL http://www.elora.dev/index.php/_wdt/ ? У меня была похожая проблема, потому что перезапись URL была неправильной. — A.L

Это оно !

  1. /index.php не имеет проблем с панелью инструментов отладки
  2. /index.php/lucky/number works

Большое спасибо A.L

4

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

Хост-файл:

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

Il звучит как проблема записи в кэш. Сбой профилировщика / панели отладки, потому что отладочные данные записываются в папку кэша. Ваше приложение, вероятно, работает нормально в prod среда.

Чтобы увидеть, если это ваша проблема, попробуйте запустить chmod -R 777 var/cache, и попробуй еще раз.

«Лучшее исправление» зависит от вашей ОС. Не стесняйтесь добавлять дополнительную информацию, чтобы точно ответить, в противном случае вы можете взглянуть на документацию, связанную с Symfony Вот (устаревшая ссылка специально, они удалили ее из SF4 doc).

2

просто добавь :

FallbackResource /index.php

в настройках вашего каталога

    <Directory "/Library/WebServer/Documents/Your_public_symfony_directory">
....
FallbackResource /index.php
....
</Directory>
1
По вопросам рекламы [email protected]