
【好玩儿的Docker项目】搭建属于自己的易支付平台
1. 项目背景
拥有属于自己的支付平台是很多浪迹于电报和vps的小伙伴们一直想拥有的,但是目前能看到的大多是基于宝塔面板的搭建方式,这种方式虽然也很方便,但是对于某些小伙们来说可能觉得有些繁杂,因此在此基础上诞生了今天这个基于docker部署易支付平台的项目
特点
支持docker一键部署
本地文件映射方便修改
2. 搭建环境
安装好 Docker、Docker-compose(相关脚本)
【非必需但建议】域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程)
【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx(安装地址)
【非必需本教程选用】安装好 Nginx Proxy Manager(相关教程)
服务器要求:内存建议1G以上
3. 安装 Docker 与 Nginx Proxy Manager
可以直接参考这篇内容:
https://blog.laoda.de/archives/nginxproxymanager/
1. 创建安装目录
创建一下安装的目录:
sudo -i
mkdir -p /root/data/docker_data/epay
cd /root/data/docker_data/epay
mkdir config && mkdir html
2. 创建相关文件
#1、将易支付php静态文件解压到html文件夹中
#2、创建nginx.conf文件
cd config && vi nginx.conf
#3、复制以下内容, 英文输入法下,按 i
以下是博主修改的
http {
server {
listen 80;
root /var/www/html; # 这里应该是你的 PHP 项目的根目录路径
index index.php index.html;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
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;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
}
修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。
#创建部署文件
vim docker-compose.yml
英文输入法下,按 i
以下是博主修改的
version: '3.8'
services:
webserver:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./config/nginx.conf:/etc/nginx/nginx.conf
- ./html:/var/www/html
- ./logs:/var/log/nginx
depends_on:
- php
- mysql
php:
image: php:7.4-fpm
volumes:
- ./html:/var/www/html
depends_on:
- mysql
mysql:
image: mysql:5.7
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: your_database_name
MYSQL_USER: your_mysql_user
MYSQL_PASSWORD: your_mysql_password
volumes:
- ./mysql-data:/var/lib/mysql
volumes:
html:
logs:
mysql-data:
自行更改数据库相关账户密码等信息。
修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。
提前配置php数据库配置文件,找到html文件夹下的
#修改/root/data/docker_data/epay/html下的config.php配置
<?php
/*数据库配置*/
$dbconfig=array(
'host' => '当前服务器的公网ip', //数据库服务器
'port' => 3306, //数据库端口
'user' => 'your_mysql_user', //数据库用户名
'pwd' => 'your_mysql_password', //数据库密码
'dbname' => 'your_database_name', //数据库名
'dbqz' => 'pay' //数据表前缀
);
修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。
#部署项目
docker-compose up -d
#给予html文件目录权限
chmod -R 777 /root/data/docker_data/epay/html/*
查看php拓展
#进入 PHP 容器
docker-compose exec php /bin/bash
#在 PHP 容器内,使用以下命令列出所有已经安装的扩展:
php -m
#可安装拓展,如下
docker-php-ext-install pdo_mysql
#退出容器,重启docker-compose
docker-compose restart
4、 打开服务器防火墙(非必需)并访问网页
打开防火墙的端口 8080
查看端口是否被占用(以 8080为例),输入:
lsof -i:8080 #查看 8080 端口是否被占用,如果被占用,重新自定义一个端口
如果啥也没出现,表示端口未被占用,我们可以继续下面的操作了~
如果出现:
-bash: lsof: command not found
运行:
yum install -y lsof #安装 lsof
如果端口没有被占用(被占用了就修改一下端口,比如改成 8081,注意 docker 命令行里和防火墙都要改)
理论上我们就可以输入 http://ip:8080 访问了。
5. 反向代理
我们要用域名而不是IP+端口的方式来访问我们的服务!
5.1 利用 Nginx Proxy Manager
在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上