Nginx 容器连接 php rc-fpm 容器编译 php

JackZhou 2020-07-29

前言

之前使用 Nginx 容器配置了反向代理,但是初始的 Nginx 容器没有预先安装 php 相关组件。在尝试了各种各样的方法之后,也没有在 Nginx 容器中实现 php 编译。

本文简记 Nginx 容器链接 php:rc-fpm 容器实现 php 编译。

拉取镜像

  • Nginx

    sudo docker pull nginx:latest
  • php:rc-fpm

    • Dockerhub : php 说明

      这里拉取的是官方发布的 php 镜像变体,标签为: rc-fpm

      sudo docker pull php:rc-fpm

编写 docker-compose.yml

  • 这里使用 docker-compose 运行容器。

    version: ‘3.1‘
    services:
      php-rc-fpm:
        restart: always
        image: php:rc-fpm
        container_name: php-rc-fpm
        networks:
          amber-net:
            ipv4_address: 172.20.0.6
        volumes:
          - /opt/docker_nginx/conf.d/nginxHtml:/var/www/html
      nginx:
        restart: always
        image: nginx:latest
        container_name: nginx
        networks:
          amber-net:
            ipv4_address: 172.20.0.5
        links:
          - php-rc-fpm
        ports:
          - 80:80
          - 443:443
        volumes:
          - /opt/docker_nginx/conf.d:/etc/nginx/conf.d
    
    networks:
      amber-net:
        external: true

配置反向代理

  • 请参阅: Nginx 容器反向代理和 SSL 配置

  • 示例:

    ......
    server{
      listen 80;
      return 301 https://$host$request_uri;
    }
    
    server{
      listen 443 ssl;
      server_name $host;
    
      # SSL
      ......
      # HSTS
      ......
    
      location / {
        root /etc/nginx/conf.d/nginxHtml;
        index index.php;
      }
    
      location ~ \.php$ {
        root /var/www/html;
        fastcgi_pass php-rc-fpm:9000;
        fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
        include fastcgi_params;
      }
    }

运行容器

  • 更多配置 Nginx 容器信息,请参阅: 运行配置 Nginx 容器

  • 编译测试。

    sudo docker-compose build
  • 启动运行容器:

    sudo docker-compose up -d

访问网页测试

  • html 网页。

    Nginx 容器连接 php rc-fpm 容器编译 php
  • .php 文件

    Nginx 容器连接 php rc-fpm 容器编译 php

相关推荐