加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 20:55:09 所属栏目:Nginx 来源:网络整理
导读:我正在尝试创建两个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容

我正在尝试创建两个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/

(编辑:李大同)

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

    推荐文章
      热点阅读