Перейти к содержимому

17.10.2011

Сборка PHP 5.3.x под MacOS X 10.6 с поддержкой iconv

Тот, кто заходил/читал мой блог раньше, скажет: «Кажется, я уже это видел». И будет прав. Давным давно я уже писал пост о том, как скомпилить php на MacOS X с поддержкой oracle, iconv и прочих библиотек. Но время идет, уже давно вышли новые версии и php и macosx, а проблема все остается нерешенной, правда пути ее решения несколько изменились.
Не буду рассказывать как включить поддержку Oracle в php, про это вы можете прочитать в моем старом посте:
Настройка Apache+PHP+MsSQL+Oracle на Mac OS X Leopard
, лучше расскажу как решить эту надоевшую уже проблему сборки php 5.3.[5678] с поддержкой iconv.

В инете полно заметок, постов на эту тему, но к сожалению на моей системе Mac OS X Snow Leopard 10.6.8 и PHP 5.3.8 все эти советы не помогли :(. Ни накладывание патчей на ext/iconv/iconv.c, ни накатывание libiconv всяких версий с заменой системной и в прочие места — ничего это не сработало, а в некоторых случаях даже что-то поломало. В моем случае к успеху привели вот такие действия:

Пункт номер раз.
Ставим свежую версию libiconv из портов (на данный момент это уже 1.14).

Пункт номер два.
Конфигурим php, не забывая указать где искать iconv, а именно, поскольку libiconv ставился из портов, то это /opt. Добавляем строчку —with-iconv-dir=/opt.

Пункт номер три.
Патчим Makefile.global. Это единственное, что мне пришлось сделать сверх обычной процедуры компиляции. (/* не считая тех часов, которые были потрачены на попытки решить эту проблему */). Вот патч. Его можно сохранить в файлик и накатить через patch.

Если сохранить этот патч в файлик, скажем, Makefile.global.patch, то накатить его можно так:

Пункт номер четыре-пять
Запускаем make, (надеюсь) успешно компилим и устанавливаем.

После всего этого, осталось только проверить:

That’s all folks! как говорится. Надеюсь следующие версии будут ставиться так же легко и просто…

Узнайте больше из MacOS