Php CloudFoundry容器安装linux邮件命令

Php CloudFoundry容器安装linux邮件命令,php,wordpress,email,cloud-foundry,Php,Wordpress,Email,Cloud Foundry,在将PHP/Wordpress应用程序移植到CloudFoundry时,我们面临的问题是该应用程序依赖于linux mail命令,默认情况下,该命令不安装在CloudFoundry容器上 有没有办法在应用程序启动时运行的容器中安装此软件 最好的解决方案是将应用程序转换为直接与SMTP服务器通话。有一些Wordpress插件可以让你这么做。您可能需要考虑使用其中之一。我不知道你的情况,但使用它们通常很简单 如果这不是一个选项,您基本上需要在应用程序中打包一个邮件二进制文件或脚本。然后,您可以直接将

在将PHP/Wordpress应用程序移植到CloudFoundry时,我们面临的问题是该应用程序依赖于linux mail命令,默认情况下,该命令不安装在CloudFoundry容器上


有没有办法在应用程序启动时运行的容器中安装此软件

最好的解决方案是将应用程序转换为直接与SMTP服务器通话。有一些Wordpress插件可以让你这么做。您可能需要考虑使用其中之一。我不知道你的情况,但使用它们通常很简单

如果这不是一个选项,您基本上需要在应用程序中打包一个邮件二进制文件或脚本。然后,您可以直接将Wordpress指向该可执行文件,也可以调整PATH环境变量,使二进制文件位于您的路径上,Wordpress可以找到它

关于这一点,有几点值得注意:

您无法安装RPM或DEB软件包,因为您无法在CF上获得root访问权限。您最好将自己的二进制文件和脚本带到应用程序中,或者编写自定义构建包,但这需要做更多的工作

您可以从Linux系统获取邮件二进制文件,并将其与应用程序捆绑在一起。例如,在运行UbuntuTrusty的VM中安装邮件,或者使用cloudfoundry/cflinuxfs2 docker映像,将邮件二进制文件和相关共享库复制到应用程序中的目录中。推送包含这些二进制文件的应用程序。然后,您可以调整PATH和LD_LIBRARY_PATH env变量,以便Wordpress可以找到该命令,并且该命令可以找到其关联的共享库

如果你不能/不想弄乱2,你可以用你最喜欢的脚本语言Python、Perl、Ruby、PHP等编写一个脚本。。它实现了与mail命令类似的cli,只足以满足Wordpress的需要,并直接与SMTP服务器通信。将脚本命名为mail,并将Wordpress指向该脚本或将其放入路径中

要调整PATH环境变量,您不希望使用cf set env。这是因为您只能使用cf set env覆盖变量,而不能使用传统的PATH=$PATH:/my/new/PATH。要使其正常工作,您需要在应用程序的根目录中包含一个.profile文件。这将在应用程序启动之前获取和获取,您可以在其中添加PATH=$PATH:$HOME/PATH/to/mail/script,其中/PATH/to/mail/script是您与应用程序绑定的内容的位置,以及您希望路径上提供的内容。我们用$HOME作为前缀,以便它指向我们的应用程序