Magento 1: Use of iconv.internal_encoding is deprecated in /lib/Zend/Validate/Hostname.php on line 521
Понадобилось поработать с Magento 1, которая успешно работает на PHP 5.4.16, но тк в убунте нет поддержки такой старой версии, а работать через докер мне лень, я установил проект локально с PHP 5.6. При попытке зайти на локальную версию сайта я получил Exception: Use of iconv.internal_encoding is deprecated in lib/Zend/Validate/Hostname.php on line 521
Стек Exception-а вот такой
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Deprecated functionality: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated in lib/Zend/Validate/Hostname.php on line 521 #0 [internal function]: mageCoreErrorHandler(8192, 'iconv_set_encod...', '/...', 521, Array) #1 lib/Zend/Validate/Hostname.php(521): iconv_set_encoding('internal_encodi...', 'UTF-8') #2 lib/Zend/Uri/Http.php(449): Zend_Validate_Hostname->isValid('site.loc') #3 lib/Zend/Uri/Http.php(281): Zend_Uri_Http->validateHost() #4 lib/Zend/Uri/Http.php(154): Zend_Uri_Http->valid() #5 lib/Zend/Uri.php(143): Zend_Uri_Http->__construct('http', '//site.loc/') #6 app/code/core/Mage/Core/Model/Store.php(719): Zend_Uri::factory('http://site.lo...') #7 app/code/core/Mage/Core/Controller/Varien/Front.php(332): Mage_Core_Model_Store->isCurrentlySecure() #8 app/code/core/Mage/Core/Controller/Varien/Front.php(161): Mage_Core_Controller_Varien_Front->_checkBaseUrl(Object(Mage_Core_Controller_Request_Http)) #9 app/code/core/Mage/Core/Model/App.php(370): Mage_Core_Controller_Varien_Front->dispatch() #10 app/Mage.php(691): Mage_Core_Model_App->run(Array) #11 index.php(87): Mage::run('', 'store') #12 {main} |
Как видно из ошибки метод iconv_set_encoding устарел. Заменить его можно на установку default_charset через ini_set. Вот так
1 2 3 |
(PHP_VERSION_ID < 50600) ? iconv_set_encoding('internal_encoding', 'UTF-8') : ini_set('default_charset', 'UTF-8'); |
Соответственно надо пойти на указанную строку в указанном файле и поменять там iconv_set_encoding на ini_set.
Чтобы не мучаться с этим каждый раз, после того, как я сделал все эти правки руками, я приготовил патч: iconv.internal_encoding-is-deprecated.patch
Применяется он так
1 2 3 4 |
$ cd /var/www/site.com/public_html $ patch -p1 < iconv.internal_encoding-is-deprecated.patch |
Author: | Tags: /
| Rating:
Leave a Reply