Tiene lo mismo con Magento CE 1.8 y 1.9
Después de actualizar php de 5.5.16 a 5.6.0 en mi VPS, obtuve estos 2 errores en [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
Encontré esta información https://github.com/zendframework/zf1/pull/347 Pero todas las variaciones en los cambios de php.ini no funcionan para mí (reinicié el servicio php-fpm después de cada cambio en php.ini, por supuesto )
Aquí https://github.com/zendframework/zf1/pull/347/files#r14075423 Leí los cambios sugeridos exactamente en estas líneas (313 y 474) pero no quiero usar ningún hack para los archivos Magento Core.
En frontend y backend no veo ningún problema con la codificación, todo se ve bien (tengo localizaciones rusas, frontend y panel de administración).
¿Puedo ignorar este ERR en system.log o no? ¿Cuál es la forma correcta de corregir este error?
fuente
Respuestas:
No creo que deba usar Magento con php 5.6 todavía.
Supongo que habrá una declaración oficial cuando Magento admitirá php 5.6 y un parche oficial si es necesario.
fuente
Puede usar el siguiente parche:
Es del Github-Gist completo:
fuente
patch -p1 < 0001-BUGIFX-Magento-Zend-Framework-1-PHP5.6.patch
felicitaciones a @ mautz-et-tongDebe cambiar
lib/Zend/Validate/Hostname.php
y reemplazar lasinternal_encoding
llamadas relacionadas conini_get('default_encoding')
y todas las demás ocurrencias en el marco Zend también ...fuente
PHP 5.6 desaprobó algunas funciones, especialmente la que usa Zend: http://de1.php.net/manual/en/migration56.deprecated.php#migration56.deprecated.iconv-mbstring-encoding
Si entiendo esto correctamente, solo tiene que establecer default_encoding , entonces la llamada del método ya no es necesaria.
fuente
Puede ejecutar este script de shell desde su directorio raíz de Magento para deshacerse de este mensaje si está ejecutando OSX: https://gist.github.com/jayelkaake/34109641e5489e3e7e30
Tenga en cuenta que modificará algunos archivos en su carpeta lib /, por lo que cualquier actualización de Magento los sobrescribirá (aunque realmente espero que Magento corrija el error y agregue compatibilidad oficial con PHP 5.6.9 en su próxima versión).
fuente
Para mí, el sistema de codificación php.ini ya estaba configurado en UTF-8, así que en lib / Zend / Locale / Format.php agregué: -
Y lo mismo en lib / Zend / Validate / Hostname.php
En su archivo php.ini, asegúrese de que el valor
default_charset="UTF-8"
incluso en Windows.fuente
Esto me ayudó a:
Crea las siguientes carpetas:
Copie los siguientes archivos de / lib / Zend / a / app / code / local / Zend /:
Abra los archivos desde / app / code / local / Zend / en un editor de texto y busque "internal_encoding" y reemplácelos con "default_charset". Antes de hacer esto, asegúrese de que la cadena "internal_encoding" sea un parámetro de una función relacionada con iconv. No reemplace "mb_internal_encoding", "$ internal_encoding" o cualquier otra cosa que no esté relacionada con iconv, porque romperá el código.
Fuente: https://www.code007.ro/how-to-fix-php-5-6-deprecated-messages-in-magento/
fuente
Si necesita una solución rápida, puede reemplazarla en la línea index.php (aproximadamente 40):
con:
Esto debería "ocultar" notificaciones / errores sobre funciones obsoletas.
Aviso: Esto no es una solución real, solo está ocultando aviso / información sobre este problema con iconv_set_encoding ()
Trabajó para mí en Magento 1.8.1.0
fuente
simplemente instale la biblioteca php gd usando el comando relevante
sudo apt-get install php5.6-gd
dephp5-gd
o decir por el RehHat
sudo yum install php56-gd
ophp5-gd
y ahora reinicie el apache y estará listo para continuar como siempre.
fuente