Добавить модуль в скомпилированный PHP

Добавить модуль в скомпилированный PHP

В CentOS у меня есть скомпилированная версия PHP, но в ней отсутствует модуль IMAP. Можно ли добавить этот модуль без перекомпиляции php?

решение1

Да, вы можете просто загрузить исходный код вашей текущей версии, распаковать его, перейти в каталог ext/imap распакованного исходного файла и выполнить:

phpize
./configure
make

Возможно, вам придется запустить ./configure с некоторыми параметрами, указывающими используемые библиотеки imap, например:

  --with-imap=DIR       Include IMAP support. DIR is the c-client install prefix
  ...
  --with-imap-ssl=DIR     IMAP: Include SSL support. DIR is the OpenSSL install prefix

После компиляции модуля вы должны поместить его в ext/imap/modules, он должен называться imap.so, например ext/imap/modules/imap.so. Вам нужно переместить его дальше в каталог extension_dir, который вы можете получить, запустив php -i | grep extension_dirили создав php-файл, который скажет <?php phpinfo(); ?>и запустите его из веб-интерфейса, после чего найдите extension_dir на странице результатов.

После перемещения файла модуля вам необходимо добавить строку в файл php.ini (или создать файл .ini в дополнительном каталоге файлов .ini), которая будет выглядеть следующим образом:

extension=imap.so

После этого вам потребуется перезапустить ваш веб-сервер или службу php-fpm, если вы используете php-fpm.

Связанный контент