如何配置Docker以使用独立容器中的Apache和PHP

11

我需要使用docker设置特定的LAMP环境,包括:

  • debian squeeze 6.0.10
  • apache 2
  • php 5.6
  • mysql 5.5

将应用程序代码托管在具有debian + apache的基本映像上,我想知道是否可以使用一个php容器来代替debian容器中默认安装的php服务器(版本为5.3),就像使用mysql容器一样。

这里有一个小图像更好地解释了这个想法。

这可行吗?

谢谢!

更新

经过一些研究,我认为这是不可能的,除非您将php配置为cgi模块,但为了实现模块化配置也不值得这样做。

您应该具备系统管理员技能才能正确管理它,并且生产服务器永远不能以相同的方式进行配置,尤其是由普通托管提供商使用的服务器。


这可能有点晚了,但希望能帮到其他人。使用一个带有php-fpm的容器和另一个带有apache的容器,在docker compose中将它们放在同一个网络中,在apache中复制一个虚拟主机文件,加载代理和fcgi模块,并将其配置到你在docker-compose文件中加载的网络中。 - steff_bdh
2个回答

3
值得一提的是,我目前正在开发类似的东西,它可以让你自由选择不同的PHP版本(通过PHP-fpm预配置),以及不同的MySQL和Apache/Nginx版本。
只需将配置变量设置为特定版本,然后启动容器即可选择版本。
你可以在这里查看该项目:

devilbox

你可能会对如何链接所有内容有一些想法。 Compose文件在这里:https://github.com/cytopia/devilbox/blob/master/docker-compose.yml

1

据我理解,您希望从两个php容器访问您的MySQL实例。

这是完全可能的。

您的设置将类似于以下内容:

docker run --name db mysql
docker run --link db php:5.4
docker run --link db php:5.6

这将为您提供一个 MySQL 容器和两个 PHP 容器及其各自的版本。
这回答了您的问题吗?

不,正如标题所述,问题是配置Apache使用php 5.*容器服务而不是debian + apache容器中的php服务。 - jkkso
啊,所以你只是想覆盖现有 Apache 中的 PHP 部分? - michaelbahr
是的,如果可能的话,可以使用PHP Docker容器来为不同的项目创建分离的PHP版本的LAMP环境。 - jkkso
我相信可以通过使用docker-compose并拥有两个独立的apache,就像您的图像所描述的那样,每个都有自己的php安装,然后将容器链接到同一个数据库来实现。 - Joseph Astrahan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接