Habe das selbe mit Magento CE 1.8 und 1.9
Nach dem Update von PHP 5.5.16 auf 5.6.0 auf meinem VPS habe ich diese 2 Fehler in [magento] /var/log/system.log bekommen:
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
Ich habe diese Info gefunden https://github.com/zendframework/zf1/pull/347 Aber alle Änderungen in der php.ini funktionieren nicht für mich (ich habe den php-fpm-Dienst nach jeder Änderung in der php.ini neu gestartet, natürlich ).
Hier https://github.com/zendframework/zf1/pull/347/files#r14075423 Ich habe Änderungsvorschläge genau in diesen Zeilen gelesen (313 und 474), möchte aber keine Hacks für Magento Core-Dateien verwenden.
Im Frontend und Backend sehe ich keine Probleme mit der Codierung - alles sieht gut aus (ich habe russische Lokalisierungen - Frontend und Admin-Panel).
Darf ich diesen Fehler in system.log ignorieren oder nicht? Was ist der richtige Weg, um diesen Fehler zu beheben?
quelle
Antworten:
Ich glaube nicht, dass Sie Magento mit PHP 5.6 verwenden sollen.
Ich gehe davon aus, dass es eine offizielle Erklärung geben wird, wann Magento PHP 5.6 unterstützen wird, und gegebenenfalls einen offiziellen Patch.
quelle
Sie können den folgenden Patch verwenden:
Es ist aus dem vollen Github-Gist:
quelle
patch -p1 < 0001-BUGIFX-Magento-Zend-Framework-1-PHP5.6.patch
dickes Lob an @ Mautz-et-tongSie müssen
lib/Zend/Validate/Hostname.php
dieinternal_encoding
zugehörigen Aufrufe durchini_get('default_encoding')
und alle anderen Vorkommnisse im Zend-Framework auch ändern und ersetzen ...quelle
PHP 5.6 veraltete einige Funktionen, insbesondere die von Zend verwendete: http://de1.php.net/manual/en/migration56.deprecated.php#migration56.deprecated.iconv-mbstring-encoding
Wenn ich das richtig verstehe, musst du nur default_encoding setzen , dann wird der Aufruf der Methode nicht mehr benötigt.
quelle
Sie können dieses Shell-Skript in Ihrem Magento-Stammverzeichnis ausführen, um diese Meldung zu entfernen, wenn Sie OSX ausführen: https://gist.github.com/jayelkaake/34109641e5489e3e7e30
Beachten Sie, dass dadurch einige Dateien in Ihrer lib / -Ordner geändert werden, sodass alle Magento-Updates diese überschreiben.
quelle
Für mich war die Systemcodierung php.ini bereits auf UTF-8 eingestellt, also fügte ich in lib / Zend / Locale / Format.php hinzu:
Und das gleiche in lib / Zend / Validate / Hostname.php
Stellen Sie in Ihrer php.ini-Datei sicher, dass der Wert
default_charset="UTF-8"
auch unter Windows gültig ist .quelle
Das hat mir geholfen:
Erstellen Sie die folgenden Ordner:
Kopieren Sie die folgenden Dateien von / lib / Zend / nach / app / code / local / Zend /:
Öffne die Dateien aus / app / code / local / Zend / in einem Texteditor und suche nach "internal_encoding" und ersetze sie durch "default_charset". Stellen Sie zuvor sicher, dass der String „internal_encoding“ ein Parameter einer iconv-bezogenen Funktion ist. Ersetzen Sie nicht "mb_internal_encoding", "$ internal_encoding" oder andere Dinge, die nichts mit Symbolen zu tun haben, da dies den Code beschädigen würde.
Quelle: https://www.code007.ro/how-to-fix-php-5-6-deprecated-messages-in-magento/
quelle
Wenn Sie eine schnelle Lösung benötigen, können Sie in der index.php-Zeile (ca. 40) Folgendes ersetzen:
mit:
Dies sollte Benachrichtigungen / Fehler über veraltete Funktionen "verbergen".
Hinweis: Dies ist keine echte Lösung. Hier werden lediglich Hinweise / Informationen zu diesem Problem mit iconv_set_encoding () ausgeblendet.
Arbeitete für mich auf Magento 1.8.1.0
quelle
Installieren Sie einfach die PHP GD-Bibliothek mit dem entsprechenden Befehl
sudo apt-get install php5.6-gd
vonphp5-gd
oder sagen Sie für das RehHat
sudo yum install php56-gd
oderphp5-gd
und jetzt starte den apache neu und du kannst wie gewohnt weitermachen.
quelle