【发布时间】:2016-01-18 18:30:50
【问题描述】:
我构建了 2 个 docker,一个 docker 用 apache,一个 docker 用 php5,我使用 docker-compose 启动。
apache2 Dockerfile 位于 apache2 目录中:
FROM debian:latest
RUN apt-get update && apt-get install -y apache2
ADD test.php /var/www/html
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
和test.php:
<?php
phpinfo();
?>
php 目录下的 php5 Dorckerfile:
FROM debian:latest
RUN apt-get update && apt-get install -y php5
docker-compose.yml:
apache:
build: ./apache2
container_name: apache
ports:
- "80:80"
links:
- "php5"
php5:
build: ./php
container_name: php
然后我运行:
docker-compose up
apache2 服务器启动成功。然后我通过http://server_ip访问这个服务器,然后我得到了debian的索引。但是当我访问http://server_ip/test.php时,就会发生这种情况:
<?php
phpinfo();
?>
php 不起作用。我不知道为什么。
【问题讨论】:
-
php 和 apache 现在存在于两个不同的容器中,只能通过网络调用 /links / 数据交换相互交互,而不能通过简单的相互调用。您可能想要构建一个组合的 php5/apache 容器并确保使用 php5 模块。
-
@WolfgangFahl “通过网络调用/链接/数据交换相互交互”是什么意思?我不明白。
-
您可以为 apache 和 php 使用单独的容器,但您需要使用在某个端口上运行的
php-fpm,然后您需要在您的 apache 配置文件中配置php-fpm。跨度>
标签: php apache docker docker-compose