Sama seperti Magento CE 1.8 dan 1.9
Setelah memperbarui php dari 5.5.16 ke 5.6.0 pada VPS saya, saya mendapatkan 2 kesalahan ini di [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
Saya menemukan info ini https://github.com/zendframework/zf1/pull/347 Tetapi semua variasi dalam perubahan php.ini tidak berfungsi untuk saya (saya memulai kembali layanan php-fpm setelah setiap perubahan di php.ini, tentu saja ).
Di sini https://github.com/zendframework/zf1/pull/347/files#r14075423 Saya membaca perubahan yang disarankan persis di baris ini (313 dan 474) tetapi saya tidak ingin menggunakan peretasan untuk file Magento Core.
Di frontend dan backend saya tidak melihat masalah dengan pengkodean - semua tampak baik-baik saja (saya memiliki lokalisasi Rusia - panel frontend dan admin).
Bolehkah saya mengabaikan ERR ini di system.log atau tidak? Apa cara yang benar untuk memperbaiki kesalahan ini?
sumber
Jawaban:
Saya tidak berpikir Anda seharusnya menggunakan Magento dengan php 5.6.
Saya berasumsi akan ada pernyataan resmi ketika Magento akan mendukung php 5.6 dan patch resmi jika perlu.
sumber
Anda dapat menggunakan tambalan berikut:
Itu dari Github-Gist lengkap:
sumber
patch -p1 < 0001-BUGIFX-Magento-Zend-Framework-1-PHP5.6.patch
pujian ke @ mautz-et-tongAnda perlu mengubah
lib/Zend/Validate/Hostname.php
dan menggantiinternal_encoding
panggilan terkait denganini_get('default_encoding')
dan semua kejadian lainnya dalam kerangka Zend juga ...sumber
PHP 5.6 menghentikan beberapa fungsi, terutama yang Zend gunakan: http://de1.php.net/manual/en/migration56.deprecated.php#migration56.deprecated.iconv-mbstring-encoding
Jika saya mengerti ini dengan benar, Anda hanya perlu mengatur default_encoding , maka panggilan metode tidak diperlukan lagi.
sumber
Anda dapat menjalankan skrip shell ini dari direktori root Magento Anda untuk menyingkirkan pesan ini jika Anda menjalankan OSX: https://gist.github.com/jayelkaake/34109641e5489e3e7e30
Perhatikan bahwa ini akan memodifikasi beberapa file di lib / folder Anda, sehingga setiap pembaruan ke Magento akan menimpa mereka (meskipun saya sangat berharap Magento memperbaiki bug dan menambahkan kompatibilitas PHP 5.6.9 resmi di versi berikutnya).
sumber
Bagi saya, sistem encoding php.ini sudah diatur ke UTF-8, jadi di lib / Zend / Locale / Format.php saya menambahkan: -
Dan hal yang sama di lib / Zend / Validate / Hostname.php
Di file php.ini Anda, pastikan nilainya
default_charset="UTF-8"
bahkan di Windows.sumber
Ini membantu saya:
Buat folder berikut:
Salin file-file berikut dari / lib / Zend / ke / app / code / local / Zend /:
Buka file dari / app / code / local / Zend / di editor teks dan cari "internal_encoding" dan ganti dengan "default_charset". Sebelum melakukan ini, pastikan bahwa string "internal_encoding" adalah parameter dari fungsi terkait iconv. Jangan ganti "mb_internal_encoding", "$ internal_encoding" atau hal-hal lain yang tidak terkait, karena akan merusak kode.
Sumber: https://www.code007.ro/how-to-fix-php-5-6-deprecated-messages-in-magento/
sumber
Jika Anda perlu perbaikan cepat, Anda dapat mengganti di baris index.php (sekitar 40):
dengan:
Ini harus "menyembunyikan" pemberitahuan / kesalahan tentang fungsi yang sudah tidak digunakan lagi.
Perhatikan: Ini bukan perbaikan nyata, ini hanya menyembunyikan pemberitahuan / informasi tentang masalah ini dengan iconv_set_encoding ()
Bekerja untuk saya di Magento 1.8.1.0
sumber
cukup instal pustaka gd php menggunakan perintah yang relevan
sudo apt-get install php5.6-gd
dariphp5-gd
atau katakan untuk RehHat
sudo yum install php56-gd
atauphp5-gd
dan sekarang restart apache dan Anda bisa melakukannya seperti biasa.
sumber