【好玩儿的Docker项目】搭建属于自己的易支付平台

【好玩儿的Docker项目】搭建属于自己的易支付平台

背景与核心痛点:拥有自主可控的独立聚合支付收单系统,是独立开发者、站长与跨境数字游民实现业务自动化的核心环节。市面上多数教程严重依赖繁琐的宝塔面板(aaPanel)或难以维护的裸机环境。通过 Docker Compose 将 Nginx、PHP-FPM 与 MySQL 5.7 进行微服务化轻量编排,可实现开箱即用、一键迁移,并搭配 Nginx Proxy Manager 轻松打通全自动 HTTPS 聚合收单。

目录

项目背景与容器化优势

  • 摆脱重型运维面板:无需安装宝塔等占用高额内存的第三方控制面板,内存占用低至 300MB。
  • 本地持久化映射:站点静态代码与 MySQL 数据库文件完全映射至宿主机,备份或版本迭代极为方便。
  • 隔离性与安全性:PHP 与 MySQL 运行在独立 Docker 内部虚拟网络中,数据库端口不对外公网暴露,极大降低黑客注入风险。

服务器前置准备与目录规划

推荐基于 1GB 内存以上的 Linux VPS(Debian 12 / Ubuntu 22.04+):

mkdir -p /root/data/docker_data/epay
cd /root/data/docker_data/epay
mkdir -p config html logs mysql-data

配置 Nginx 与 PHP-FPM 运行环境

在 config/nginx.conf 中写入支持伪静态与 FastCGI 转发的轻量配置:

events { worker_connections 1024; }

http {
    include /etc/nginx/mime.types;
    server {
        listen 80;
        root /var/www/html;
        index index.php index.html;

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
}

Docker Compose 容器编排部署

在根目录下创建 docker-compose.yml:

version: '3.8'

services:
  webserver:
    image: nginx:alpine
    restart: always
    ports:
      - "8080:80"
    volumes:
      - ./config/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./html:/var/www/html
      - ./logs:/var/log/nginx
    depends_on:
      - php
      - mysql

  php:
    image: php:7.4-fpm
    restart: always
    volumes:
      - ./html:/var/www/html
    depends_on:
      - mysql

  mysql:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_root_password
      MYSQL_DATABASE: epay_db
      MYSQL_USER: epay_user
      MYSQL_PASSWORD: your_strong_user_password
    volumes:
      - ./mysql-data:/var/lib/mysql

初始化数据库与安装扩展

  1. 将易支付开源程序源代码解压至 html 目录中。
  2. 配置 html/config.php,连接信息填入 Docker 内置容器名 mysql:
    $dbconfig = array(
        'host' => 'mysql',
        'port' => 3306,
        'user' => 'epay_user',
        'pwd'  => 'your_strong_user_password',
        'dbname' => 'epay_db',
        'dbqz' => 'pay_'
    );
    
  3. 启动并安装必要 PHP 扩展:
    docker compose up -d
    docker compose exec php docker-php-ext-install pdo_mysql
    docker compose restart
    chmod -R 777 html/
    

Nginx Proxy Manager 反向代理与域名绑定

  1. 登录 NPM 后台,点击 Add Proxy Host。
  2. 填入专属解析域名(如 pay.yourdomain.com)。
  3. Forward Hostname 填入宿主机局域网 IP,Port 填入 8080。
  4. 勾选 Block Common Exploits 与 Websockets Support。
  5. 在 SSL 标签页申请 Let's Encrypt 证书并强制开启 HTTP to HTTPS 重定向。
  6. 保存后即可通过专属 HTTPS 域名安全访问收银台与管理控制台。