外观
1Panel部署
INFO
(2025年7月)现阶段1Panel产品成熟度有待提高,暂不推荐
1Panel
1Panel 是一款现代化、开源的 Linux 服务器运维管理面板,它基于 Golang 语言编写,具有轻量、高效的特点。可实现主机监控、文件管理、容器管理等功能。
安装
安装:选择中文,其它默认
sh
curl -sSL https://resource.1panel.pro/quick_start.sh -o quick_start.sh && bash quick_start.sh
如果遇到 Docker 安装失败等问题,可以尝试运行以下脚本:默认安装。
sh
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
# 再次运行1Panel安装
curl -sSL https://resource.1panel.pro/quick_start.sh -o quick_start.sh && bash quick_start.sh
安装成功后,记录登录地址、用户和密码信息。
参考资料:
登录
浏览器打开1Panel的登录地址,输入用户和密码。如果您使用的是云服务器,请在防火墙中放行相应端口。
镜像加速
登录1Panel——容器——配置——镜像加速——设置,填写下面信息
sh
https://docker.1ms.run
https://docker.xuanyuan.me
https://docker.m.daocloud.io
https://dislabaiot.xyz
安装MySQL
安装
登录1Panel——应用商店——MySQL——安装
- 版本:8.0.42
- Root 密码:(自行设定)
- 端口外部访问:勾选
- 其它:默认或按需修改
创建数据库
登录1Panel——MySQL——创建数据库
- 名称:mars-mgn
- 用户名:mars-mgn
- 密码:(上一步设置的root密码)
查看连接信息
- 登录1Panel——MySQL——连接信息,可以查看连接信息
- 此时,可以通过DBeaver等工具连接数据库
安装Redis
登录1Panel——应用商店——Redis——安装
- 版本:6.2.18
- 密码:(自行设定或留空)
- 端口外部访问:勾选
- 其它:默认或按需修改
安装Python
上传后端文件
上传准备工作:《运维手册——后端项目打包》
上传方式一:
登录1Panel——系统——文件,进入/opt目录下,上传——上传文件夹,选择整个mars-mgn
项目后端目录。
上传方式二:
可以将自己开发的代码上传到Gitee或Gitlab等私人仓库,再从私人代码仓库中下载代码。登录宝塔面板——终端,执行下面命令
sh
cd /opt
git clone https://gitee.com/zhulj993/mars-mgn.git # 替换为您的私人仓库地址
# git clone -b develop https://gitee.com/zhulj993/mars-mgn.git # 替换为您的私人仓库地址(克隆指定分支)
# 如果有代码更新,运行 git pull 拉取新代码
检查配置文件
检查Django项目配置文件:/opt/mars-mgn/mysite/mysite/settings.py
- 关闭DEBUG:
DEBUG = False
- 检查MySQL数据库地址、端口、名称、密码:IP填写容器IP
- 检查Redis数据库地址、端口、名称、密码:IP填写容器IP
- 检查
NGINX_BASE_URL
配置:填写OpenResty 的IP或域名
创建Python运行环境
登录1Panel——网站——运行环境——Python——创建运行环境
- 名称:mars-mgn
- Python:3.11.10
- 运行目录:
/opt/mars-mgn
- 启动命令:
tail -f /dev/null
- 应用端口:8000 和 5555
TIP
tail -f /dev/null
并不是真正的启动命令。它的是作用是让容器环境运行起来,然后我们可以进入容器安装依赖、初始化数据和启动后端。
安装依赖与初始化数据
登录1Panel——容器,找到Python容器——终端——连接
运行命令
sh
# 安装依赖与初始化数据
bash startup.sh init
当看到下面结果,表示正常
启动Django
继续在上面打开的Python容器终端中,执行命令
sh
# 启动
bash startup.sh run
如果看到下面类似结果,表示正常
注意
如果1Panel 是 v1.x 版本,对Python运行环境执行停止或重启操作,都会导致Python容器销毁重建。
这时,需要重新运行bash startup.sh init
和bash startup.sh run
命令。
但是,重新运行bash startup.sh init
命令,会导入初始化数据,污染生产数据!
排错
错误信息
sh
File "/usr/local/lib/python3.11/site-packages/MySQLdb/connections.py", line 200, in __init__
super().__init__(*args, **kwargs2)
django.db.utils.OperationalError: (2002, "Can't connect to server on '127.0.0.1' (115)")
解决方法
- 查看项目配置文件
settings.py
,检查数据库相关配置 - 检查数据库配置中的IP地址
DATABASE_HOST
:填写容器IP地址
- 检查数据库名称
NAME
:mars-mgn
python
### 数据库配置
DATABASE_HOST = "172.18.0.2" # 数据库地址
DATABASE_PORT = "3306" # 数据库端口
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "mars-mgn",
"USER": "root",
"PASSWORD": "123456",
"HOST": DATABASE_HOST,
"PORT": DATABASE_PORT,
"OPTIONS": {"init_command": "SET time_zone='+08:00'"},
}
}
- 再次手动执行命令,检查MySQL状态命令
sh
cd /app/mysite
python manage.py check --database default
# 返回“python manage.py check --database default”,表示连接正常。
- 再次手动执行命令,检查Redis状态命令
sh
cd /app/mysite
python manage.py check_redis
安装 OpenResty
OpenResty 是基于 NGINX 和 LuaJIT 的 Web 平台。
安装OpenResty
登录1Panel——网站——网站——去应用商店安装OpenResty 。参数默认
创建站点
登录1Panel——网站——网站,点击创建
- 类型:静态网站
- 主域名:按需填写外网域名或服务器IP,格式
域名:端口
- 其它域名:按需填写,格式
域名:端口
- 代号:
mars-mgn-vue
上传前端文件
登录1Panel——网站——网站,点击上一步创建的网站目录。
在打开的文件管理界面,上传打包后的前端项目文件。建议先压缩后上传,步骤如下:
- 进入前端打包生成的
dist-prod
目录,然后全选压缩。 - 上传压缩包后,点击解压
上传后效果
TIP
前端项目生产环境打包步骤:《运维手册——前端项目打包》
修改OpenResty配置
登录1Panel——网站——网站,点击上一步创建的网站——配置——配置文件。点击查看最新配置文件
映射Django静态文件和媒体文件
容器——找到OpenResty容器——更多——编辑,添加挂载
本地目录 | 容器目录 |
---|---|
/opt/mars-mgn/mysite/media | /media |
/opt/mars-mgn/mysite/static | /static |
重启OpenResty容器后,登录OpenResty容器终端,能看到Django静态文件和媒体文件
小结
服务器目录结构
分类 | 服务器目录 | 容器 | 容器目录 |
---|---|---|---|
后端 | /opt/mars-mgn | Python | |
后端静态文件 | /opt/mars-mgn/mysite/static | OpenResty | /static/ |
后端媒体文件 | /opt/mars-mgn/mysite/media | OpenResty | /media/ |
前端 | /opt/1panel/apps/openresty/openresty/www/sites/mars-mgn-vue/index | OpenResty | |
前端日志 | /opt/1panel/apps/openresty/openresty/www/sites/mars-mgn-vue/log | OpenResty | |
前端证书 | /opt/1panel/apps/openresty/openresty/www/sites/mars-mgn-vue/ssl | OpenResty |
测试
参考:《生产测试》