Fehlgeschlagener login auf Produktions-server mit Symfony framework (Authentication request konnte nicht bearbeitet, da...)
Ich bin mit Symfony für ein Projekt und ich habe versucht, um die login-arbeiten auf Produktions-server ohne Erfolg für die letzten 2 Tage. Ich erhalte die Fehlermeldung
Authentifizierungsanforderung konnte nicht verarbeitet werden durch ein system problem.
Folge ich der Anleitung hier ( http://symfony.com/doc/current/cookbook/security/entity_provider.html ), um das setup laden Benutzer aus der Datenbank.
Meine Sicherheit.yml Datei:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
Acceptme\UserBundle\Entity\User: plaintext
role_hierarchy:
ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
patricia:
password: patricia
roles: 'ROLE_ADMIN'
users:
name: user_provider
entity: { class: AcceptmeUserBundle:User, property: username }
firewalls:
user_area:
pattern: ^/
anonymous: ~
provider: user_provider
form_login:
login_path: login_route
check_path: _login_check
default_target_path: homepage
dev:
pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false
default:
anonymous: ~
http_basic: ~
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
Meine SecurityController.php:
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Component\Security\Core\SecurityContext;
class SecurityController extends Controller
{
/**
* @Route("/login", name="login_route")
* @Template("security/login.html.twig")
*/
public function loginAction(Request $request)
{
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} else {
$error = $request->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
}
return array(
'last_username' => $request->getSession()->get(SecurityContext::LAST_USERNAME),
'error' => $error,
);
}
/**
* @Route("/login_check", name="_login_check")
*/
public function securityCheckAction()
{
//this controller will not be executed,
//as the route is handled by the Security system
}
}
Ich habe versucht, das hochladen, das Projekt auf 2 verschiedenen web-hosts (FatCow & GoDaddy) und das problem bleibt. Lokal bin ich mit PHP 5.4.19 (FatCow verwendet, 5.3.2 und GoDaddy verwendet 5.4.37). Beachten Sie, dass bei arbeiten auf localhost mit XAMPP funktioniert alles einwandfrei!
Habe ich bestätigt, dass PDO ist aktiviert in beiden Fällen. Ich habe bestätigt, dass der Datenbank-Benutzername, Passwort und host sind korrekt, in der Parameter.yml - Datei. Fehlerprotokolle auf lokalen und remote-Servern zeigen nichts.
Ich habe alle Anweisungen aus diesem früheren post Die Bereitstellung von Symfony2 app immer fosuserbundle Fehler und immer noch kein Erfolg.
Ich Schätze all die Hilfe im Voraus.
- Alles in logs (
app/logs/prod.log
) ? - stackoverflow.com/questions/28135572/... tut hier aufgeführten Lösungen helfen?
- Wow, ich danke Ihnen so viel. Naheliegendste Ort, um sah und ich Sie immer wieder übersehen, frustration übernimmt. Ja, ich;ve gefunden das Problem jetzt. Problem war, dass eine sql-coundt finden Sie einen Tisch, denn es war falsch benannt, die in der Person (mit Großbuchstaben), während die Datenbank-Tabelle wurde die Kleinschreibung. Aktualisierung der Antwort für diese. Ich danke Ihnen so sehr.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie, dass der Fehler:
ist zu allgemein und nicht sagen, nichts darüber, wo das problem ist (es wird ein Thema eröffnet über diese Angelegenheit hier).
Ich mein Problem gelöst, indem die überprüfung der Protokolle und sehen, was passiert (in
var/logs/dev.log
), in der Hoffnung das jemand hilft.In meinem konkreten Fall, da wurde ein falscher parameter in-Parameter.yml über eine Datenbank-Verbindung. Aber, nochmal, die Fehlermeldung ist zu allgemein und impliziert nicht unbedingt, dass das problem im Zusammenhang mit der Datenbank-Verbindung.
UPDATE: Problem gelöst. Das Problem war, dass eine Tabelle in der Einheit php-Datei wurde mit Großbuchstaben bezeichnet, während die Datenbank-Tabelle wurde unter dem Namen Kleinschreibung. +1 zu ClémentBERTILLON für den Hinweis in die richtige Richtung, nämlich prod.melden Sie
max_allowed_packet
Größe. Hoffe, das jemand hilft.Dieses problem kann behoben werden, ausgeführt Befehl:
php bin/console cache:clear --env=prod --no-debug
ALS @ShinDarth es zu erwähnen. Es ist zu allgemein und Protokoll-Inspektion, die den Menschen helfen in unserem Fall kommen durch diese.
Ob es helfen kann, in meiner situation war es :
Nach einem SonataUserBundle installation in SF3, musste ich
Meinen Kontext ist insbesondere hatte ich bereits installiert und verwendet FOSUserBundle vor zu installieren SonataUserBundle. (Da der SF3 Kompatibilität mit FOSUser/SonataUSer...
Der Datenbank wurden genommen, 16 Abfragen nach, dass. Funktioniert Super.
Derzeit gibt es einen bug in Symfony und auf die Produktion, WENN während der Authentifizierung system-Fehler Auftritt (fehlende Tabelle, fehlende Spalte oder einer anderen Ausnahme) - es ist angemeldet als INFO statt ERROR und mit Standard-Fehler-logging-Möglichkeiten, es ist nicht protokolliert.
https://github.com/symfony/symfony/pull/28462
Ich denke, es gibt zwei Möglichkeiten jetzt - temporäre log alles (einschließlich Informationen) auf die Produktion, bis man den wirklichen Fehler.
Zweite option: verwenden Sie diesen patch, oder Debuggen direkt auf die Produktion.
Diese Lösung ist die richtige für mich: https://stackoverflow.com/a/39782535/2400373
Aber Wenn Sie nicht haben Zugriff auf das terminal, können Sie den server und löschen Sie die Ordner, die im inneren
var/cache
.Andere Lösung, wenn du Zugriff auf die Konsole ist die Art
oder
diese Lösung funktioniert auf symfony 3
Ich bin mir sicher, dass diese Fehlermeldung ist zu allgemein. In meinem Fall, Die Folge ist falsch:
Korrektur:
Eine weitere mögliche Ursache könnte sein, MySQL-Server. In meinem Fall habe ich vergessen zu starten MAMP /MySQL-Server und Symfony führte mit dieser Nachricht.
Haben Sie wahrscheinlich verwendet die Vorlage gegeben, die von Symfony-docs hier :
Wirklichkeit gibt dir diese Fehlermeldung. Die am meisten einfache und zuverlässige Art und Weise das Problem zu beheben, ersetzen Sie diese Zeile durch folgende :
Welche Ihnen die volle stack-trace für Fehler-und (hoffentlich) helfen Ihnen beim Debuggen Ihrer Anwendung. Vergessen Sie nicht, um zurückzukehren, das vor dem Produktionsstart!
In meinem Fall das Problem wurde behoben, durch das korrigieren eines Tippfehlers in der Verbindungsdaten in der
.env
Datei.