.net+vue+oracle21xe部署教程

发布时间:2026/6/5 21:25:30
.net+vue+oracle21xe部署教程
Vue .NET Oracle 项目部署教程宝塔 Docker本教程介绍如何将前后端分离项目部署到 Linux 服务器包含数据库、后端、前端三部分。环境说明组件版本操作系统LinuxUbuntu/CentOS面板宝塔面板数据库Oracle 21c XEDocker 部署后端.NET 6独立部署前端Vue 2 Ant Design Vue容器工具Docker一、部署数据库Oracle1.1 拉取 Oracle 镜像由于 Docker Hub 在国内访问不稳定需要使用镜像加速服务。推荐轩辕镜像10 元可用很久稳定快速官网https://docker.xuanyuan.run注册后会获得一个专属镜像域名格式类似xxxx.xuanyuan.run# 使用轩辕镜像拉取dockerpull你的轩辕镜像域名/gvenzl/oracle-xe:21-slim1.2 启动 Oracle 容器# 创建数据目录sudomkdir-p/opt/oracle/datasudochmod777/opt/oracle/data# 启动容器dockerrun-d\--nameoracle-xe\-p1521:1521\-eORACLE_PASSWORD你的密码\-v/opt/oracle/data:/opt/oracle/oradata\你的镜像域名/gvenzl/oracle-xe:21-slim1.3 等待初始化# 查看日志等待出现 DATABASE IS READY TO USE!dockerlogs-foracle-xe初始化大约需要 1-2 分钟看到DATABASE IS READY TO USE!表示成功。1.4 创建用户和表空间# 进入容器dockerexec-itoracle-xe sqlplus / as sysdba在 SQL*Plus 中执行-- 切换到 PDB 数据库Oracle 21c 必须执行ALTERSESSIONSETCONTAINERXEPDB1;-- 创建表空间CREATETABLESPACE表空间名DATAFILE/opt/oracle/oradata/XE/XEPDB1/表空间名.dbfSIZE500M AUTOEXTENDONNEXT100M MAXSIZE UNLIMITED;-- 创建用户CREATEUSER用户名IDENTIFIEDBY密码DEFAULTTABLESPACE表空间名TEMPORARYTABLESPACEtemp;-- 授权GRANTCONNECT,RESOURCE,DBATO用户名;-- 退出EXIT;1.5 导入数据将 SQL 文件上传到服务器然后导入# 把 SQL 文件复制到容器内dockercp/path/to/your/sql_files oracle-xe:/opt/oracle/oradata/# 进入容器dockerexec-itoracle-xebash# 批量导入cd/opt/oracle/oradata/sql_filesforfin*.sql;doechoImporting$f...echoEXIT|sqlplus-S用户名/密码localhost:1521/XEPDB1 $fdone# 退出容器exit1.6 验证连接使用 DataGrip 或其他数据库工具连接字段值类型Oracle主机服务器 IP端口1521连接类型Service Name服务名XEPDB1用户名你创建的用户名密码你设置的密码二、部署后端.NET 62.1 本地发布独立部署在本地项目目录执行cdwebapi# 独立部署方式发布服务器无需安装 .NETdotnet publish Simple.WebApi/Simple.WebApi.csproj-cRelease-rlinux-x64 --self-containedtrue-o./publish2.2 修改配置文件编辑publish/appsettings.json修改以下内容数据库连接修改 HOST 为 localhostDatabaseConfig:{DataSource:Data Source(DESCRIPTION(ADDRESS_LIST(ADDRESS(PROTOCOLTCP)(HOSTlocalhost)(PORT1521)))(CONNECT_DATA(SERVERDEDICATED)(SERVICE_NAMEXEPDB1))),UserId:你的用户名,Password:你的密码}跨域配置添加你的服务器 IPAllowCors:[http://localhost:81,http://你的服务器IP]2.3 上传到服务器将publish目录上传到服务器# 在服务器上创建目录sudomkdir-p/opt/项目名/webapi# 上传 publish 目录到 /opt/项目名/webapi/2.4 使用 tmux 后台运行# 创建 tmux 会话tmux new-s会话名# 进入项目目录并运行cd/opt/项目名/webapi/publishchmodx Simple.WebApi ./Simple.WebApi# 分离会话先按 CtrlB松开后再按 D2.5 验证后端访问http://服务器IP:5216/swagger能看到 Swagger 文档表示成功。三、部署前端Vue3.1 修改 API 地址编辑项目根目录的.env文件NODE_ENVproduction VUE_APP_PREVIEWtrue VUE_APP_API_BASE_URLhttp://服务器IP:5216/api3.2 安装依赖并构建cdweb# 安装依赖使用淘宝镜像npminstall--registryhttps://registry.npmmirror.com --legacy-peer-deps# 构建npmrun build构建完成后会生成dist目录。3.3 通过宝塔部署登录宝塔面板点击网站→添加站点填写信息域名填写服务器 IP根目录/www/wwwroot/项目名PHP 版本选纯静态点击提交3.4 上传前端文件将本地web/dist目录里的所有文件上传到宝塔创建的站点根目录。3.5 配置 Nginx在宝塔中点击站点的设置→配置文件添加以下配置# Vue Router history 模式放在 root 配置下面 location / { try_files $uri $uri/ /index.html; } # API 反向代理放在 server 块内 location /api/ { proxy_pass http://127.0.0.1:5216/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }保存后重启站点或 Nginx。四、验证部署项目访问地址前端页面http://服务器IP:端口后端 APIhttp://服务器IP:5216/api/Swagger 文档http://服务器IP:5216/swagger五、常见问题Docker 拉取镜像超时国内访问 Docker Hub 不稳定使用镜像加速# 配置镜像加速需要 sudo 权限sudomkdir-p/etc/dockersudotee/etc/docker/daemon.json-EOF { registry-mirrors: [https://你的镜像域名] } EOFsudosystemctl daemon-reloadsudosystemctl restartdockernpm install 依赖冲突使用--legacy-peer-deps参数npminstall--registryhttps://registry.npmmirror.com --legacy-peer-depsOracle 21c 创建用户报 ORA-65096Oracle 21c XE 是容器数据库需要先切换到 PDBALTERSESSIONSETCONTAINERXEPDB1;CREATEUSER用户名IDENTIFIEDBY密码DEFAULTTABLESPACE表空间名;后端无法连接数据库检查appsettings.json中的HOST是否为localhostSERVICE_NAME是否为XEPDB1。前端页面刷新 404确保 Nginx 配置了try_files $uri $uri/ /index.html;。六、tmux 常用命令# 查看所有会话tmuxls# 进入会话tmux attach-t会话名# 分离会话# 先按 CtrlB松开后再按 D# 结束会话tmux kill-session-t会话名