Использование функций imap в PHP без перестройки и переустановки


Я хотел, чтобы последняя версия PHP работала на новом Macbook, но установка php по умолчанию не включает функции imap. Мне нужна одна конкретная функция, а именно функция "imap_rfc822_parse_headers", но мне не хочется перекомпилировать, создавать и устанавливать PHP (не говоря уже об усилиях, которые требуются для установки c-клиента и imap.so заранее) только для этого. Я боюсь, что запутанные процедуры (из которых каждая, которую я нашел, несколько отличается) могут испортить обновил мою текущую установку, которую было отнюдь не просто настроить.

Существует ли какой-либо другой, более простой способ установки imap в PHP? В связи с этим, возможно, существует альтернатива на основе классов для функции, которая мне нужна?

Author: Swader, 2012-06-22

1 answers

Я наконец-то нашел решение. Большая часть этого была здесь: http://www.september28.co.uk/blog/2011/11/24/php-imap-support-in-mac-os-x-lion-without-recompiling-php/

Моя машина - Macbook Pro конца 2011 года с MacOSX 10.7.4, PHP 5.4. установлена с помощью следующих инструкций: http://www.hirmet.com/mac-os-x-lion-upgrade-to-php-5-4

Вот пошаговая инструкция для тех, у кого аналогичная или идентичная настройка:

Загрузите источник imap с этого URL-адреса, сосредоточьтесь на тот, у которого самая последняя дата, которая не заканчивается на "Z": ftp://ftp.cac.washington.edu/imap/

Разархивируйте, перейдите в папку, выполните следующие команды:

$ make osx EXTRACFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"

Приведенная выше команда выдаст вам кучу предупреждений, но должна завершиться успешно, в отличие от команды, первоначально предложенной в сообщении в блоге 28 сентября.

Затем выполните следующие действия:

$ sudo cp c-client/*.h /usr/local/include/
$ sudo cp c-client/*.c /usr/local/lib/
$ sudo cp c-client/c-client.a /usr/local/lib/libc-client.a

Как только это будет сделано, перейдите в папку загруженного исходного кода php, если вы выполнили пользовательское обновление, как я сделал (согласно второй ссылке в ответе) и построил imap.so расширение для вашей системы. Если вы не создали пользовательскую версию, просто загрузите исходный код PHP для установленной вами версии и используйте его, это не имеет значения.

$ cd ~/Downloads/Php-5.4.4/ext/imap
$ phpize
$ ./configure --with-imap==/usr/local/imap-2007 --with-kerberos --with-imap-ssl
$ make

После этого выполните следующие действия:

$ sudo cp modules/imap.so /usr/lib/php/extensions/no-debug-non-zts-20100525/

...или, если ваша папка расширения PHP отличается, поместите ее (вы можете увидеть расположение в phpinfo();)

Перезапустите apache, и вы должны быть готовы к работе.

$ sudo apachectl restart
 11
Author: Swader, 2012-06-22 15:07:36