Avoir la même chose avec Magento CE 1.8 et 1.9
Après la mise à jour php de 5.5.16 à 5.6.0 sur mon VPS, j'ai 2 erreurs dans [magento] /var/log/system.log:
ERR (3): Deprecated functionality: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated in [magento]/lib/Zend/Locale/Format.php on line 311
ERR (3): Deprecated functionality: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated in [magento]/lib/Zend/Locale/Format.php on line 472
J'ai été trouver cette information https://github.com/zendframework/zf1/pull/347 Mais toutes les variations dans les modifications de php.ini ne fonctionnent pas pour moi (j'ai été redémarré service php-fpm après chaque modification dans php.ini, bien sûr ).
Ici, https://github.com/zendframework/zf1/pull/347/files#r14075423, j'ai lu les modifications suggérées exactement dans cette ligne (313 et 474) mais je ne souhaite pas utiliser de piratage des fichiers Magento Core.
Je ne vois aucun problème d’encodage en front-end et en back-end (tout a l’air correct (j’ai des localisations en russe - frontend et panneau d’administration).
Puis-je ignorer cette ERR dans system.log ou pas? Quelle est la bonne façon de corriger cette erreur?
la source
Réponses:
Je ne pense pas que vous soyez censé utiliser Magento avec PHP 5.6 pour le moment.
Je suppose qu'il y aura une déclaration officielle lorsque Magento appuiera PHP 5.6 et un correctif officiel si nécessaire.
la source
Vous pouvez utiliser le patch suivant:
C'est du Github-Gist complet:
la source
patch -p1 < 0001-BUGIFX-Magento-Zend-Framework-1-PHP5.6.patch
bravo à @ mautz-et-tongVous devez également modifier
lib/Zend/Validate/Hostname.php
et remplacer lesinternal_encoding
appels associés parini_get('default_encoding')
et toutes les autres occurrences du framework Zend ...la source
PHP 5.6 a déconseillé d'utiliser certaines fonctions, en particulier celle utilisée par Zend: http://de1.php.net/manual/fr/migration56.deprecated.php#migration56.deprecated.iconv-mbstring-encoding
Si je comprends bien, il vous suffit de définir default_encoding , alors l’appel de la méthode n’est plus nécessaire.
la source
Vous pouvez exécuter ce script shell à partir de votre répertoire racine Magento pour vous débarrasser de ce message si vous utilisez OSX: https://gist.github.com/jayelkaake/34109641e5489e3e7e30
Notez que cela modifiera certains fichiers de votre dossier lib /, donc toute mise à jour de Magento les écrasera (bien que j'espère vraiment que Magento corrige le bogue et ajoute la compatibilité officielle de PHP 5.6.9 dans leur prochaine version).
la source
Pour moi, le codage du système php.ini était déjà défini sur UTF-8, donc dans lib / Zend / Locale / Format.php, j'ai ajouté: -
Et la même chose dans lib / Zend / Validate / Hostname.php
Dans votre fichier php.ini, assurez-vous que la valeur est identique,
default_charset="UTF-8"
même sous Windows.la source
Cela m'a aidé:
Créez les dossiers suivants:
Copiez les fichiers suivants de / lib / Zend / dans / app / code / local / Zend /:
Ouvrez les fichiers de / app / code / local / Zend / dans un éditeur de texte, recherchez "internal_encoding" et remplacez-les par "default_charset". Avant de faire cela, assurez-vous que la chaîne «internal_encoding» est un paramètre d’une fonction associée à iconv. Ne remplacez pas "mb_internal_encoding", "$ internal_encoding" ou tout autre élément non lié à iconv, car cela casserait le code.
Source: https://www.code007.ro/how-to-fix-php-5-6-deprecated-messages-in-magento/
la source
Si vous avez besoin d'une solution rapide, vous pouvez remplacer la ligne index.php (environ 40):
avec:
Cela devrait "masquer" les notifications / erreurs concernant les fonctions obsolètes.
Avis: Ce n'est pas une vraie solution, c'est juste cacher un avis / des informations sur ce problème avec iconv_set_encoding ()
Travaillé pour moi sur Magento 1.8.1.0
la source
il suffit d'installer la bibliothèque php gd en utilisant la commande correspondante
sudo apt-get install php5.6-gd
dephp5-gd
ou dire pour le RehHat
sudo yum install php56-gd
ouphp5-gd
et maintenant redémarrez Apache et vous pourrez continuer comme d’habitude.
la source