我现在想知道,我已经开发了一个帮助台系统,然后使用PHP imap 库连接到已配置的邮箱并“拉”邮件并根据内容创建票证。
但是遗憾的是我遇到了一个问题,我们的应用程序在 PHP 上部署的一些服务器没有使用标志进行编译--with-imap-ssl
。
我首先想到的解决方案也是:
- 通过 SSH 登录到每个服务器
- 执行
php-config
复制构建标志 --with-imap-ssl
使用该标志和上一步中的所有其他标志重新编译 php
但是有些客户可能不允许我们重新编译 PHP,因为他们正在将其用于其他应用程序。而且这也是一个 DevOps 噩梦,因为我们必须在晚上执行此操作,以确保没有人使用他们的服务器,并让他们都知道我们将重新编译 php,因此我们将在该过程发生时禁用 apache $N 时间段。
然后我想到另一种解决方案是:
- 获取服务器上运行的所有不同版本的 PHP
- 确保所有 openSSL 路径相同
/usr
- 为每种 Linux 版本(CentOS / Ubuntu)启动一个虚拟机
cd /tmp && wget ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz
或者获取人们正在运行的任何其他版本的 IMAP。tar xzf imap-2007f.tar.gz
sudo mv imap-2007f /usr/local
- 编译 imap
- 下载所有需要的 php 版本
--with-imap-ssl
使用标志进行编译- 然后我们将获得所需的“imap.so”文件具体的PHP 版本
- SCP将 imap.so 文件放到客户端服务器上并重新启动 apache,然后 php 将有望获得 imap-ssl 支持,而不会破坏服务器上的任何其他内容。
现在的问题是:
- 有一个更好的方法吗 ?
- 这些方法到底管用吗?
- 要遵循哪些步骤来实现该过程的自动化?
答案1
您是否研究过使用容器服务,例如 Docker 或 LXC?这样您就可以使用所需的 PHP 和 OpenSSL 版本(以及许多其他程序)。它也不会干扰系统的 PHP 和 SSL 安装,它是完全独立的。
Docker 似乎已经预建了 PHP 环境:https://hub.docker.com/_/php/
如果您是容器领域的新手,我会说 Docker 是一个不错的起点,因为它有大量社区支持。