Назад | Перейти на главную страницу

Ubuntu / CentOS - PHP5 imap ssl

Мне было интересно, я разработал систему службы поддержки, чем использует Библиотека PHP imap для подключения к настроенным почтовым ящикам, «протягивания» писем и создания билетов на основе содержимого.

Но, увы, я столкнулся с проблемой, некоторые из серверов, на которых наше приложение развернуто на PHP, не были скомпилированы с --with-imap-ssl флаги.

Моя первая мысль о решении тоже была:

  1. войдите на каждый из серверов через SSH
  2. выполнять php-config скопируйте флаги сборки
  3. перекомпилируйте php с помощью --with-imap-ssl flag и все остальные флаги из предыдущего шага

Но тогда некоторые клиенты могут не позволить нам перекомпилировать PHP, поскольку они используют это для других приложений. а также это своего рода кошмар DevOps, поскольку нам придется делать это ночью, чтобы убедиться, что никто не использует их серверы, и чтобы они знали, что мы будем перекомпилировать php, поэтому мы отключим apache на период $ N время, пока этот процесс происходит.

Тогда я подумал, что другое решение будет:

  1. Получите все разные версии PHP, работающие на серверах
  2. Убедитесь, что все пути openSSL совпадают /usr
  3. Создайте виртуальную машину для каждого Linux (CentOS / Ubuntu)
  4. cd /tmp && wget ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz ИЛИ получить любые другие версии IMAP, которые используют люди.
  5. tar xzf imap-2007f.tar.gz
  6. sudo mv imap-2007f /usr/local
  7. Скомпилировать imap
  8. Скачайте все необходимые версии php
  9. компилировать с --with-imap-ssl флаг
  10. Тогда у нас будет необходимый файл «imap.so», который нам понадобится для этого. Конкретный Версия PHP
  11. scp этот файл imap.so на клиентском сервере и перезапустите apache, тогда php, надеюсь, будет иметь поддержку imap-ssl без нарушения чего-либо еще на сервере.

Теперь вопросы:

  1. Есть лучший способ сделать это ?
  2. Эти методы вообще будут работать?
  3. Какие шаги нужно предпринять, чтобы автоматизировать этот процесс?

Вы исследовали использование контейнерной службы, такой как Docker или LXC? Это позволит вам использовать желаемую версию PHP и OpenSSL (а также многих других программ). Это также не будет мешать установке PHP и SSL в системе, оно полностью автономно.

У Docker есть готовые среды PHP: https://hub.docker.com/_/php/

LXC как к: http://www.phpclasses.org/blog/post/290-Simplify-Your-PHP-Applications-Testing-Using-LXC-in-Your-Development-Environment.html

Если вы новичок в контейнерах, я бы сказал, что Docker - хорошее место для начала, так как сообщество поддерживает его.