加入收藏 | 设为首页 | 会员中心 | 我要投稿 4S站长网 (https://www.4s3.cn/)- 科技、混合云存储、数据迁移、云上网络、数据计算!
当前位置: 首页 > 运营中心 > Nginx > 正文

如何在一个容器中使用Nginx,在另一个容器中使用php-fpm?

发布时间:2021-01-11 17:47:10 所属栏目:Nginx 来源:互联网
导读:我正在尝试创建两个docker容器.一个包含nginx,另一个包含php-fpm.这是我的docker-compose.yml:version: 2 services: nginx: build: ./nginx ports: - 80:80 - 443:443 fpm: build: ./

我正在尝试创建两个docker容器.一个包含nginx,另一个包含php-fpm.这是我的docker-compose.yml:

version: '2'
services:
  nginx:
    build: ./nginx
    ports:
      - "80:80"
      - "443:443"
  fpm:
    build: ./php
    volumes:
      - ./php/code:/var/www/html/

NGINX

这是我的Nginx容器的Dockerfile:

FROM nginx:latest RUN rm /etc/nginx/conf.d/default.conf COPY
./default.conf /etc/nginx/conf.d/

而且,这是我的default.conf:

server {
    listen  80;

    server_name localhost;
    root /var/www/html;

    error_log /var/log/nginx/localhost.error.log;
    access_log /var/log/nginx/localhost.access.log;

    location / {
        # try to serve file directly,fallback to app.php
        try_files $uri /app.php$is_args$args;
    }

    location ~ ^/.+.php(/|$) {
        fastcgi_pass fpm:9000;
        fastcgi_split_path_info ^(.+.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }
}

这就是我所有的nginx配置.

的PHP

这是./php目录中的Dockerfile:

from php:fpm
COPY ./code/ /var/www/html/

在./code目录中,我有一个名为app.php的文件,其中包含phpinfo().

问题

我运行docker-compose up,当我尝试打开192.168.99.100(运行docker引擎的docker机器的IP)时,我找不到文件.我也尝试了192.168.99.100/app.php,但这是相同的.

我配置错了什么?我在Internet上的一个示例中看到,PHP文件必须位于nginx容器中,但这没有任何意义,因为据我所知,php-fpm是必须有权访问这些文件的过程.

最佳答案 404错误的原因是您的Nginx容器中没有文件.

您必须将链接到PHP-FPM容器的相同文件链接到Nginx容器:

version: '2'
services:
  nginx:
    build: ./nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./php/code:/var/www/html/

  fpm:
    build: ./php
    volumes:
      - ./php/code:/var/www/html/

当请求到达Web服务器时,在Nginx可以将请求传递到PHP-FPM容器之前,文件必须至少存在.您甚至可以将Nginx容器的文件夹设为只读:

version: '2'
services:
  nginx:
    build: ./nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./php/code:/var/www/html/:ro

  fpm:
    build: ./php
    volumes:
      - ./php/code:/var/www/html/

(编辑:4S站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读