У меня возникло несколько проблем с функцией PHP iconv, в которой я отслеживал реализацию iconv. Как указано в руководстве: «Обратите внимание, что функция iconv на некоторых системах может работать не так, как вы ожидаете. В этом случае было бы неплохо установить библиотеку GNU libiconv». http://uk3.php.net/manual/en/intro.iconv.php
Я загрузил библиотеку libiconv с http://www.gnu.org/software/libiconv/ и без проблем установил ее:
$ ./configure --prefix=/usr/local $ make $ make install
Моя проблема теперь в том, как связать эту установку с PHP? Из того, что я прочитал, мне нужно перекомпилировать PHP с помощью
--with-iconv-dir=/usr/local/
но как это сделать на CentOS? Я установил php с
yum install php.x86_64
Я попробовал yum переустановить php, но когда я обслуживаю HTTP- перезапуск, мой phpinfo читает то же самое, glibc .
Есть ли лучший способ установить libiconv на CentOS? Если нет, то как мне получить PHP, используя эту установку, не нарушая yum?
Спасибо заранее
Вы должны вручную перекомпилировать расширение php iconv (в подкаталоге php-xyz/ext/iconv/
) после ручной смены скрипта configure, чтобы заставить его выбрать GNU libiconv вместо значка glibc. См. Мой ответ для аналогичного вопроса в стеке.
скомпилированный php из источника, похоже,
php -m > /tmp/php.modules
в список скомпилированного модуля для php
создайте резервную копию текущего php.ini
yum uninstall php
загрузите php и базу на существующий модуль + iconv – почти все шаги были подробно описаны здесь: http://www.php.net/manual/en/install.unix.apache2.php#90478 (за исключением того, что вы не советуете делать резервную копию php.ini)