xin*_*a1i 7 php apache docker docker-compose
我建造了两个码头工人,一个带有apache的码头工人,一个带有php5的码头工人,我使用docker-compose来启动.
directoy apache2中的apache2 Dockerfile:
FROM debian:latest
RUN apt-get update && apt-get install -y apache2
ADD test.php /var/www/html
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
Run Code Online (Sandbox Code Playgroud)
和test.php:
<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
目录php中的php5 Dorckerfile:
FROM debian:latest
RUN apt-get update && apt-get install -y php5
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml:
apache:
build: ./apache2
container_name: apache
ports:
- "80:80"
links:
- "php5"
php5:
build: ./php
container_name: php
Run Code Online (Sandbox Code Playgroud)
然后我跑:
docker-compose up
Run Code Online (Sandbox Code Playgroud)
apache2服务器启动成功.然后我通过http:// server_ip访问这个服务器,然后我得到debian的索引.但是当我访问http://server_ip/test.php时,只需要这样:
<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
PHP只是不起作用.我不是为什么.
您可以使用PHP-FPM分离Apache和PHP.但是,DocumentRoot必须安装在两个容器上.
Apache必须能够在本地(在其容器内)以及PHP-FPM服务器上访问文件.
我目前正在研究同样的问题,请看看我的docker-compose.yml
https://github.com/cytopia/devilbox/blob/master/docker-compose.yml
两个卷(在PHP和apache中)都被挂载到 /shared/httpd
我想说不可能将 php 作为 apache 模块运行单独的容器。我想这就是沃尔夫冈的意思。
如果你想将 apache 和 php 分开在两个不同的容器中,你需要将 php 作为 fpm 运行。
看看这里的灵感:如何正确地将 php-fpm 和 Nginx Docker 容器链接在一起?
如果您需要将 apache 和 php 作为 apache_mod 运行,请使用如下组合容器:https: //github.com/docker-library/php/blob/fec7f537f049aafd2102202519c3ca9cb9576707/5.5/apache/Dockerfile 来自:https://hub.docker。 com/_/php/
| 归档时间: |
|
| 查看次数: |
7207 次 |
| 最近记录: |