Ich versuche, eine Symfony-Web-App zu testen und zu debuggen app_dev.php
Front-Controller / Umgebung, die Web-Debug-Symbolleiste wird nicht geladen, und wenn ich auf "Web-Profiler öffnen" klicke, wird die folgende Fehlermeldung angezeigt:
Token "XXXXX" wurde nicht in der Datenbank gefunden
* Hinweis: Es handelt sich nicht um den Literalwert von XXXXX, sondern darum, dass sich das gesuchte Token jedes Mal ändert, wenn ich versuche, den Profiler zu öffnen.
Ich kann mich auch nicht im Administrationsbereich der Site anmelden, wahrscheinlich aufgrund dieses Token-Fehlers.
Ich denke, es kann ein Problem sein, wie meine security.yml
ist eingerichtet, aber mir springt nichts heraus. Hier ist es:
security:
encoders:
FOSUserBundleModelUserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
# https://symfony.com/doc/current/security.html#b-configuring-how-users-are-loaded
providers:
fos_userbundle:
id: fos_user.user_provider.username
in_memory:
memory: ~
firewalls:
# disables authentication for assets and the profiler, adapt it according to your needs
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern:
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
Das zugehörige Snippet in config.yml
:
fos_user:
db_driver: orm
firewall_name: main
user_class: AppBundleEntityUser
from_email:
address: noreply@someplace.com
sender_name: "someplace"
Und der Vollständigkeit halber der Teil, der auf die Symbolleiste in verweist config_dev.yml
:
framework:
router:
resource: "%kernel.project_dir%/app/config/routing_dev.yml"
strict_requirements: true
profiler: { only_exceptions: false }
web_profiler:
toolbar: true
intercept_redirects: false
Angesichts der Tatsache, dass FOSUserBundle mein Benutzerprovider ist, habe ich auch ausgeführt bin/console doctrine:schema:update --force
, aber das Problem bleibt bestehen.
Antworten:
0 für die Antwort № 1Herausgefunden. Es war eine Kombination aus einem unvollständig installierten Dienst mit einem Eintrag in services.yml
, noch fehlende Dateien und die falschen Berechtigungen / Besitz für meine /var
Verzeichnis. Ich habe einen separaten Linux-Benutzer für alle meine Apps, der emuliert, was sich auf dem Produktionsserver befindet (jede Site erhält einen eigenen PHP-FPM-Pool und keine verfügt über Root- oder Sudo-Berechtigungen).
Kommentieren Sie daher den unvollständigen Dienst in services.yml
und läuft $ sudo chown -R siteuser:siteuser /path/to/this/site/project
Hat den Trick gemacht.