MES系统托管前测试,保证无缝切换,需要先对原有环境测试,MES系统有大概3个版本,分别用了Apache + PHP + MariaDB和Nginx + PHP + MariaDB,所以一次性测试好所有环境很有必要,所需文件点击这里下载
1.创建准备目录
mkdir -p ~/mes/{php,nginx,customers/customer1/app,customers/customer2/app}
cd ~/mes
2.把我给你的文件对应放进去:
docker-compose.yml → ~/mes/docker-compose.yml[所需文件工具.zip][2]
php/Dockerfile → ~/mes/php/Dockerfile //注意这个文件没有扩展名,文件名自己修改
nginx/default.conf → ~/mes/nginx/default.con
app/index1.php → ~/mes/customers/customer1/app/index1.php
app/index1.php → ~/mes/customers/customer1/app/index1.php
3.使用rz命令上传,没有安装rz安装:
# CentOS/RHEL
yum install lrzsz -y
# Ubuntu/Debian
apt-get install lrzsz -y
4.放置应用代码位置:
~/mes/customers/customer1/app/index1.php
~/mes/customers/customer2/app/index2.php
5.回到~/mes/运行查看是否报错命令:
docker compose up -d
6.一般都是docker报错,就是镜像被屏蔽,在宿主机编辑 /etc/docker/daemon.json命令:
nano /etc/docker/daemon.json
贴入以下镜像地址
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.iscas.ac.cn",
"https://registry.docker-cn.com"
]
}
②重启 Docker:
systemctl daemon-reexec
systemctl restart docker
③重新启动服务
docker compose pull # 先拉取镜像
docker compose up -d # 重启服务
7.如果docker compose up -d需要修改dockerfile文件里面源并且兼容不同版本系统之间软件格式问题,文件已经提供在附件
如果想用阿里云的源把 tuna.tsinghua.edu.cn 全部换成 mirrors.aliyun.com 即可。
8.重建与验证:
docker compose build c2_php
docker compose up -d
docker logs -f c2_php | sed -n '1,200p'
9.默认访问逻辑:
Apache、Nginx 的 index 默认是 index.php/index.html
如果文件名改成 index1.php、index2.php,浏览器直接访问 http://服务器IP:8081/,它找不到,就会显示空白或目录。
你可以直接在 URL 里访问:
客户1测试:http://服务器IP:8081/index1.php
客户2测试:http://服务器IP:8082/index2.php
这样完全没问题。
10.输入http://192.168.31.6:8081/index1.php提醒Customer1 - Apache + PHP + MariaDB 测试,如果出现以下错误:
当前时间: 2025-09-17 16:36:06
❌ 数据库连接失败: could not find driver
解决方法
mkdir -p ~/mes/php-apache //创建文件夹
nano ~/mes/php-apache/Dockerfile //创建并编辑Dockerfile
以下为Dockerfile代码:
FROM php:8.2-apache
# 切国内源(兼容 deb822)
RUN set -eux; \
if [ -f /etc/apt/sources.list ]; then \
sed -i 's|http://deb.debian.org/debian|https://mirrors.tuna.tsinghua.edu.cn/debian|g' /etc/apt/sources.list; \
sed -i 's|http://security.debian.org/debian-security|https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' /etc/apt/sources.list || true; \
elif [ -f /etc/apt/sources.list.d/debian.sources ]; then \
sed -i -E 's|URIs: .*debian$|URIs: https://mirrors.tuna.tsinghua.edu.cn/debian|g' /etc/apt/sources.list.d/debian.sources; \
sed -i -E 's|URIs: .*debian-security$|URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security|g' /etc/apt/sources.list.d/debian.sources; \
fi; \
apt-get update; \
apt-get install -y --no-install-recommends libzip-dev libpng-dev libicu-dev libonig-dev git curl; \
docker-php-ext-install pdo pdo_mysql mysqli zip intl gd; \
pecl install apcu; \
docker-php-ext-enable apcu; \
docker-php-ext-install opcache; \
rm -rf /var/lib/apt/lists/*
# Apache 常用模块(支持 .htaccess 重写等)
RUN a2enmod rewrite headers
ENV TZ=Asia/Shanghai
WORKDIR /var/www/html
11.重建并启(时间久耐心等待)
cd ~/mes
docker compose build c1_apache
docker compose up -d
再次访问http://192.168.31.6:8081/index1.php得到正确信息
12.检查2好配置访问情况,访问http://192.168.31.6:8082/index2.php 提醒Customer2 - Nginx + PHP + MariaDB 测试,如果出现以下错误:
无法访问此网站 192.168.31.6 拒绝了我们的连接请求。
需要检查以下三处
~/mes/docker-compose.yml =》c2_nginx 与 c2_php 都在 c2_net 网络里,例如:networks: [c2_net]
~/mes/docker-compose.yml =》ports: - "8082:80"
~/mes/nginx/default.conf =》 fastcgi_pass c2_php:9000;
13.修正错误后重启服务
docker compose restart c2_nginx
再次访问http://192.168.31.6:8082/index2.php得到正确信息
Debian托管MES系统-学习篇