Projet

Général

Profil

Actions

Anomalie #1602

fermé

putenv PHP function disabled on my hosting

Ajouté par anthony heit il y a presque 3 ans. Mis à jour il y a environ un an.

Statut:
Fermé
Priorité:
Bas
Assigné à:
Catégorie:
Core
Version cible:
Début:
02/12/2021
Echéance:
% réalisé:

100%

Temps estimé:
Version utilisée:

Description

Bonjour,

j'ai mis à jour de la version 0.9.4.2 (qui fonctionnait) vers la 0.9.5.2 et la 0.9.6 ce soir avec le message d'erreur suivant quand je lance mon instance de galette :

Fatal error: Uncaught ErrorException: putenv() has been disabled for security reasons in /var/www/legtux.org/users/ssl/www/galette/lib/Galette/Core/I18n.php:146 Stack trace: #0 [internal function]: {closure}() #1 /var/www/legtux.org/users/ssl/www/galette/lib/Galette/Core/I18n.php(146): putenv() #2 /var/www/legtux.org/users/ssl/www/galette/lib/Galette/Core/I18n.php(130): Galette\Core\I18n->updateEnv() #3 /var/www/legtux.org/users/ssl/www/galette/lib/Galette/Core/I18n.php(113): Galette\Core\I18n->changeLanguage() #4 /var/www/legtux.org/users/ssl/www/galette/includes/dependencies.php(200): Galette\Core\I18n->__construct() #5 [internal function]: {closure}() #6 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/invoker/src/Invoker.php(74): call_user_func_array() #7 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Definition/Resolver/FactoryResolver.php(80): Invoker\Invoker->call() #8 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Definition/Resolver/ResolverDispatcher.php(71): DI\Def in /var/www/legtux.org/users/ssl/www/galette/lib/Galette/Core/I18n.php on line 146

j'ai demandé à mon hébergeur, la fonction putenv() est désactivé sur le serveur.

comment puis-je régler le problème sachant que seul le français est utilisé ?

cordialement

Anthony

Mis à jour par Johan Cwiklinski il y a presque 3 ans

  • Sujet changé de fatal error suite à maj vers 0.9.6 à putenv PHP function disabled on my hosting

L'utilisation d'appels à putenv() a été introduit en 2004 ; je ne sais pas exactement pourquoi puisque cela ne semble utile que sous windows.

Je pense que pas mal de choses là dedans sont juste datées, mais je n'ai pas de solution rapide à proposer ; je n'ai même pas de windows sous la main. En contournement, ajouter @ devant les appels qui posent problème, ou commenter la condition complète devrait faire l'affaire.

Mis à jour par Johan Cwiklinski il y a presque 3 ans

  • Priorité changé de Normal à Bas

Mis à jour par anthony heit il y a presque 3 ans

Bonjour,

J'ai essayer d'ajouter et/ ou de commenter, mais cela ne fonctionne pas,

cela renvoie d'autres erreurs et en commentant à nouveau les nouvelles erreurs j'arrive au final sur une page blanche.

Pour info le serveur est sous debian et mon ordi tourne sous ubuntu, donc à priori pas de windows dans l'affaire.

cordialement

Anthony

Mis à jour par Johan Cwiklinski il y a presque 3 ans

Le correctif à apporter serait le suivant :

diff --git a/galette/lib/Galette/Core/I18n.php b/galette/lib/Galette/Core/I18n.php
index e4ab77b1a..83a23e0e9 100644
--- a/galette/lib/Galette/Core/I18n.php
+++ b/galette/lib/Galette/Core/I18n.php
@@ -142,19 +142,14 @@ class I18n

         setlocale(LC_ALL, $this->getLongID());

-        if (
-            putenv("LANG=" . $this->getLongID())
-            or putenv("LANGUAGE=" . $this->getLongID())
-            or putenv("LC_ALL=" . $this->getLongID())
-        ) {
-            $textdomain = realpath(GALETTE_ROOT . 'lang');
-            //main translation domain
-            $domain = 'galette';
-            bindtextdomain($domain, $textdomain);
-            //set default translation domain and encoding
-            textdomain($domain);
-            bind_textdomain_codeset($domain, 'UTF-8');
-        }
+        $textdomain = realpath(GALETTE_ROOT . 'lang');
+        //main translation domain
+        $domain = 'galette';
+        bindtextdomain($domain, $textdomain);
+        //set default translation domain and encoding
+        textdomain($domain);
+        bind_textdomain_codeset($domain, 'UTF-8');
+
         if ($translator) {
             $translator->setLocale($this->getLongID());
         }

S'il y a d'autres erreurs, ça doit être autre chose, vérifier dans les logs.

Mis à jour par anthony heit il y a presque 3 ans

Bonjour,

merci pour la réponse, malheureusement toujours des erreurs :

Fatal error: Uncaught ErrorException: Use of undefined constant GALETTE_TPL_SUBDIR - assumed 'GALETTE_TPL_SUBDIR' (this will throw an Error in a future version of PHP) in /var/www/legtux.org/users/ssl/www/galette/includes/dependencies.php:71 Stack trace: #0 /var/www/legtux.org/users/ssl/www/galette/includes/dependencies.php(71): {closure}() #1 [internal function]: {closure}() #2 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/invoker/src/Invoker.php(74): call_user_func_array() #3 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Definition/Resolver/FactoryResolver.php(80): Invoker\Invoker->call() #4 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Definition/Resolver/ResolverDispatcher.php(71): DI\Definition\Resolver\FactoryResolver->resolve() #5 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Container.php(390): DI\Definition\Resolver\ResolverDispatcher->resolve() #6 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Container.php(139): DI\Cont in /var/www/legtux.org/users/ssl/www/galette/includes/dependencies.php on line 71

les logs de galette donnent (pas de log avec la modif effectuée):

2001:41d0:2:12d1:: - 2022-01-11 20:36:02 - DEBUG - Trying to set locale to fr_FR
2001:41d0:2:12d1:: - 2022-01-11 20:40:09 - DEBUG - Trying to set locale to fr_FR
2001:41d0:2:12d1:: - 2022-01-11 20:40:36 - DEBUG - Trying to set locale to fr_FR
2001:41d0:2:12d1:: - 2022-01-11 20:45:25 - DEBUG - Trying to set locale to fr_FR
2001:41d0:2:12d1:: - 2022-01-11 20:46:18 - DEBUG - Trying to set locale to fr_FR
2001:41d0:2:12d1:: - 2022-01-11 20:47:55 - DEBUG - Trying to set locale to fr_FR
2001:41d0:2:12d1:: - 2022-01-11 21:06:29 - DEBUG - Trying to set locale to fr_FR
94.23.17.209 - 2022-01-12 00:34:50 - DEBUG - Trying to set locale to fr_FR
94.23.17.209 - 2022-01-12 21:20:56 - ALERT - [Db] Error (2006|Connect Error: SQLSTATE[HY000] [2006] MySQL server has gone away)
2001:41d0:2:12d1:: - 2022-01-15 09:34:55 - DEBUG - Trying to set locale to fr_FR

et les logs du serveur :

185.191.171.14 - - [12/Jan/2022:22:20:06 +0100] "GET /robots.txt HTTP/1.1" 404 360 "-" "Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)"
185.191.171.18 - - [12/Jan/2022:22:20:56 +0100] "GET /galette/webroot/index.php/login?ui_pref_lang=ar HTTP/1.1" 200 758 "-" "Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)"
185.191.171.18 - - [12/Jan/2022:22:20:06 +0100] "GET /galette/webroot/index.php/login?ui_pref_lang=ar HTTP/1.1" 200 856 "-" "Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)"
45.129.18.106 - - [13/Jan/2022:21:35:07 +0100] "HEAD / HTTP/1.1" 200 111 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36"
40.77.167.100 - - [14/Jan/2022:19:52:28 +0100] "GET /robots.txt HTTP/1.1" 404 5214 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
40.77.167.100 - - [14/Jan/2022:19:52:28 +0100] "GET /robots.txt HTTP/1.1" 404 425 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
40.77.167.100 - - [14/Jan/2022:23:49:26 +0100] "GET /robots.txt HTTP/1.1" 404 5194 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
157.55.39.67 - - [14/Jan/2022:23:49:34 +0100] "GET /galette/webroot/subscribe?ui_pref_lang=uk HTTP/1.1" 200 6120 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"
2a01:e0a:9c4:31b0:88c5:b915:30b:fed4 - - [15/Jan/2022:10:31:56 +0100] "GET /galette/webroot//login HTTP/1.1" 200 5763 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0"
2a01:e0a:9c4:31b0:88c5:b915:30b:fed4 - - [15/Jan/2022:10:33:07 +0100] "GET /galette/webroot//login HTTP/1.1" 200 5866 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0"
2a01:e0a:9c4:31b0:88c5:b915:30b:fed4 - - [15/Jan/2022:10:34:55 +0100] "GET /galette/webroot//login HTTP/1.1" 200 1344 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0"
2a01:e0a:9c4:31b0:88c5:b915:30b:fed4 - - [15/Jan/2022:10:40:09 +0100] "GET /galette/webroot//login HTTP/1.1" 200 5969 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0"
2a01:e0a:9c4:31b0:88c5:b915:30b:fed4 - - [15/Jan/2022:12:20:52 +0100] "GET /galette/webroot//login HTTP/1.1" 200 5969 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0"

pour la modif, il faut bien supprimer les lignes "-" et ajouter les lignes "+" ?

cordialement

Anthony

Mis à jour par Johan Cwiklinski il y a presque 3 ans

Hello,

anthony heit a écrit (#note-5):

merci pour la réponse, malheureusement toujours des erreurs :

C'en est une autre pour le coup.

Fatal error: Uncaught ErrorException: Use of undefined constant GALETTE_TPL_SUBDIR - assumed 'GALETTE_TPL_SUBDIR' (this will throw an Error in a future version of PHP) in /var/www/legtux.org/users/ssl/www/galette/includes/dependencies.php:71 Stack trace: #0 /var/www/legtux.org/users/ssl/www/galette/includes/dependencies.php(71): {closure}() #1 [internal function]: {closure}() #2 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/invoker/src/Invoker.php(74): call_user_func_array() #3 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Definition/Resolver/FactoryResolver.php(80): Invoker\Invoker->call() #4 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Definition/Resolver/ResolverDispatcher.php(71): DI\Definition\Resolver\FactoryResolver->resolve() #5 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Container.php(390): DI\Definition\Resolver\ResolverDispatcher->resolve() #6 /var/www/legtux.org/users/ssl/www/galette/vendor/php-di/php-di/src/Container.php(139): DI\Cont in /var/www/legtux.org/users/ssl/www/galette/includes/dependencies.php on line 71
[...]

C'est corrigé, voir #1615

94.23.17.209 - 2022-01-12 21:20:56 - ALERT - [Db] Error (2006|Connect Error: SQLSTATE[HY000] [2006] MySQL server has gone away)

Ça, ce n'est pas un problème de Galette à priori ; enfin, pas directement (j'ai souvent ça qua,nd je met des points d’arrêt dans le code, et que je met plus de 30 secondes à inspecter). À voir su ça se reproduit (et dans quelles circonstances).

pour la modif, il faut bien supprimer les lignes "-" et ajouter les lignes "+" ?

Oui, oui :) À vue de nez, tu as bien appliqué la modif puisque l'erreur d'origine n'est plus là ;)

Mis à jour par anthony heit il y a presque 3 ans

Super ça refonctionne,

merci.

Mis à jour par Johan Cwiklinski il y a environ 2 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a environ un an

  • Catégorie mis à Core
  • Statut changé de Résolu à Fermé
  • Assigné à mis à Johan Cwiklinski
  • Version cible mis à 1.0.0
Actions

Formats disponibles : Atom PDF