Bonjour,
J'ai un souci lors de la mise en ligne d'un site fait en PHP7.4 et symfony5
J'ai fais le site en local sans trop de problème, mais lors de la mise en ligne (chez un hébergeur gratuit. Je n'ai pas vraiment le choix) j'avais un problème de version suite au dépendance composeur.
L'hébergeur mutualisé n'accepte que le PHP7.0, php7.1, 7.2 et 7.3 donc j'ai changer mon WAMP et CLI, fait un "composer config platform-check false" et "composer dumpautoload", suite à ça lors de la migration sur le serveur je n'ai plus eu le message d'erreur sur les version php de mon projet et celui de l'hébergeur.
Mais maintenant j'ai un autre souci que je n'arrive pas à résoudre.
J'ai l'erreur suivante :En faisant des tests ça serait mon fichier "index.php" qui pose problème au niveau de $kernel->handle($request); car juste avant cette ligne j'arrive à afficher ma variable request mais le message apparais au moment où je passe dans $response = $kernel->handle($request);syntax error, unexpected 'fn' (T_STRING), expecting :: (T_PAAMAYIM_NEKUDOTAYIM)
fichier dans : monProjet/public/index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php use App\Kernel; use Symfony\Component\Dotenv\Dotenv; use Symfony\Component\ErrorHandler\Debug; use Symfony\Component\HttpFoundation\Request; require dirname(__DIR__).'/vendor/autoload.php'; (new Dotenv())->bootEnv(dirname(__DIR__).'/.env'); if ($_SERVER['APP_DEBUG']) { umask(0000); Debug::enable(); } if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) { Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); } if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) { Request::setTrustedHosts([$trustedHosts]); } $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response);
Mon fichier .htaccess
Code apache : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 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>
Voici mon fichier log
et mon fichier dans src/security/LoginFormAuthenticator.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 [2021-04-22T23:40:07.494061+03:00] request.INFO: Matched route "show_all_article". {"route":"show_all_article","route_parameters":{"_route":"show_all_article","_controller":"App\\Controller\\ArticleController::ShowAllArticle"},"request_uri":"http://flevallis.orgfree.com/public/","method":"GET"} [] [2021-04-22T23:40:07.507601+03:00] security.DEBUG: Checking for guard authentication credentials. {"firewall_key":"main","authenticators":1} [] [2021-04-22T23:40:07.508019+03:00] php.WARNING: Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php): failed to open stream: No such file or directory at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} [] [2021-04-22T23:40:07.508173+03:00] php.WARNING: Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php): failed to open stream: No such file or directory at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} [] [2021-04-22T23:40:07.508241+03:00] php.WARNING: Warning: include(): Failed opening '/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php' for inclusion (include_path='.:/opt/remi/php73/root/usr/share/pear:/opt/remi/php73/root/usr/share/php:/usr/share/pear:/usr/share/php') {"exception":"[object] (ErrorException(code: 0): Warning: include(): Failed opening '/home/vhosts/flevallis.orgfree.com/vendor/composer/../../src/Security/LoginFormAuthenticator.php' for inclusion (include_path='.:/opt/remi/php73/root/usr/share/pear:/opt/remi/php73/root/usr/share/php:/usr/share/pear:/usr/share/php') at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} [] [2021-04-22T23:40:07.508483+03:00] php.CRITICAL: Uncaught Error: Class 'App\Security\LoginFormAuthenticator' not found {"exception":"[object] (Error(code: 0): Class 'App\\Security\\LoginFormAuthenticator' not found at /home/vhosts/flevallis.orgfree.com/var/cache/prod/ContainerQMNezLt/getLoginFormAuthenticatorService.php:20)"} [] [2021-04-22T23:40:08.667227+03:00] request.CRITICAL: Uncaught PHP Exception Symfony\Component\ErrorHandler\Error\ClassNotFoundError: "Attempted to load class "LoginFormAuthenticator" from namespace "App\Security". Did you forget a "use" statement for another namespace?" at /home/vhosts/flevallis.orgfree.com/var/cache/prod/ContainerQMNezLt/getLoginFormAuthenticatorService.php line 20 {"exception":"[object] (Symfony\\Component\\ErrorHandler\\Error\\ClassNotFoundError(code: 0): Attempted to load class \"LoginFormAuthenticator\" from namespace \"App\\Security\".\nDid you forget a \"use\" statement for another namespace? at /home/vhosts/flevallis.orgfree.com/var/cache/prod/ContainerQMNezLt/getLoginFormAuthenticatorService.php:20)"} [] [2021-04-22T23:40:08.669373+03:00] php.WARNING: Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php): failed to open stream: No such file or directory at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} [] [2021-04-22T23:40:08.669609+03:00] php.WARNING: Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php): failed to open stream: No such file or directory {"exception":"[object] (ErrorException(code: 0): Warning: include(/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php): failed to open stream: No such file or directory at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} [] [2021-04-22T23:40:08.669737+03:00] php.WARNING: Warning: include(): Failed opening '/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php' for inclusion (include_path='.:/opt/remi/php73/root/usr/share/pear:/opt/remi/php73/root/usr/share/php:/usr/share/pear:/usr/share/php') {"exception":"[object] (ErrorException(code: 0): Warning: include(): Failed opening '/home/vhosts/flevallis.orgfree.com/vendor/composer/../twig/twig/src/Loader/FilesystemLoader.php' for inclusion (include_path='.:/opt/remi/php73/root/usr/share/pear:/opt/remi/php73/root/usr/share/php:/usr/share/pear:/usr/share/php') at /home/vhosts/flevallis.orgfree.com/vendor/composer/ClassLoader.php:476)"} [] [2021-04-22T23:40:08.669866+03:00] php.CRITICAL: Uncaught Error: Class 'Twig\Loader\FilesystemLoader' not found {"exception":"[object] (Error(code: 0): Class 'Twig\\Loader\\FilesystemLoader' not found at /home/vhosts/flevallis.orgfree.com/var/cache/prod/ContainerQMNezLt/get_Container_Private_TwigService.php:20)"} []
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 <?php namespace App\Security; use App\Entity\Users; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface; use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException; use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException; use Symfony\Component\Security\Core\Security; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\UserProviderInterface; use Symfony\Component\Security\Csrf\CsrfToken; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; use Symfony\Component\Security\Guard\Authenticator\AbstractFormLoginAuthenticator; use Symfony\Component\Security\Guard\PasswordAuthenticatedInterface; use Symfony\Component\Security\Http\Util\TargetPathTrait; class LoginFormAuthenticator extends AbstractFormLoginAuthenticator implements PasswordAuthenticatedInterface { use TargetPathTrait; public const LOGIN_ROUTE = 'app_login'; private $entityManager; private $urlGenerator; private $csrfTokenManager; private $passwordEncoder; public function __construct(EntityManagerInterface $entityManager, UrlGeneratorInterface $urlGenerator, CsrfTokenManagerInterface $csrfTokenManager, UserPasswordEncoderInterface $passwordEncoder) { $this->entityManager = $entityManager; $this->urlGenerator = $urlGenerator; $this->csrfTokenManager = $csrfTokenManager; $this->passwordEncoder = $passwordEncoder; } public function supports(Request $request) { return self::LOGIN_ROUTE === $request->attributes->get('_route') && $request->isMethod('POST'); } public function getCredentials(Request $request) { $credentials = [ 'email' => $request->request->get('email'), 'password' => $request->request->get('password'), 'csrf_token' => $request->request->get('_csrf_token'), ]; $request->getSession()->set( Security::LAST_USERNAME, $credentials['email'] ); return $credentials; } public function getUser($credentials, UserProviderInterface $userProvider) { $token = new CsrfToken('authenticate', $credentials['csrf_token']); if (!$this->csrfTokenManager->isTokenValid($token)) { throw new InvalidCsrfTokenException(); } $user = $this->entityManager->getRepository(Users::class)->findOneBy(['email' => $credentials['email']]); if (!$user) { // fail authentication with a custom error throw new CustomUserMessageAuthenticationException('Adresse mail ou mot de passe incorrect'); } return $user; } public function checkCredentials($credentials, UserInterface $user) { return $this->passwordEncoder->isPasswordValid($user, $credentials['password']); } /** * Used to upgrade (rehash) the user's password automatically over time. */ public function getPassword($credentials): ?string { return $credentials['password']; } public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey) { if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) { return new RedirectResponse($targetPath); } // For example : return new RedirectResponse($this->urlGenerator->generate('show_all_article')); // throw new \Exception('TODO: provide a valid redirect inside '.__FILE__); } protected function getLoginUrl() { return $this->urlGenerator->generate(self::LOGIN_ROUTE); } }
Le site marche sans problème en local mais pas quand il est mis en ligne. J'ai ce fameux errorx syntax
Est-ce que quelqu'un aurait des pistes où je pourrais regarder ?
Merci d'avoir lu mon message.
Partager