yhw231 发表于 2025-5-30 12:16

使用1Panel面板部署godoOA

本帖最后由 yhw231 于 2025-5-30 12:17 编辑

首先安装环境,要求是
node >=16
mysql >=5.7
redis >=5.0
但是实际还有nginx,在1panel中使用的是OpenResty。
另外从 MySQL 8.0 开始,默认的身份验证插件是 caching_sha2_password,但老版本的 Node.js MySQL 客户端(比如 mysql 模块)只支持 mysql_native_password。所以最好使用5.7,如果要>8.0,需要修改验证,不过1panel安装8.0时,高级选项会设置
    command:
      - --default-authentication-plugin=mysql_native_password
如果设置了就不用单独设置了。

然后开始安装步骤
1.创建源码上传目录,我是在/opt/1panel/www/创建的node/GodoOA,然后上传源码,解压,解压后完整目录为/opt/1panel/www/node/GodoOA/GodoOA-master,后续文件操作基本都从这个目录开始
2.创建node运行环境,项目目录就选/opt/1panel/www/node/GodoOA/GodoOA-master,启动命令选start 【 node production.js 】,端口8200 - 8200
3.创建网站,选择上面创建的运行环境,填好域名、创建数据库(数据库编码utf8mb4),其他不用改。
4.修改配置。
①.安装依赖。选择运行环境,创建的运行环境--更多--终端,执行官方指令安装依赖
npm i
以防万一可以再运行一下这个命令,安装pm2,防止启动时无法识别pm2
npm install -g pm2

②.用数据库管理软件导入docs/godooa.sql文件,修改src/common/config.js数据库配置,改成自己数据库的信息,host使用数据库的容器ID
host: '1Panel-mysql-mT1D',
      database: 'godocms',
      port: '3306',
      user: 'godocms',      password: 'xGHxtj7DinEFZKPR',
③.修改nginx配置,1panel使用的是OpenResty,打开GodoOA-master目录下的nginx.conf,复制内容,通过【网站--网站--配置--配置文件】来编辑nginx配置,粘贴覆盖原配置,然后修改域名和前端程序地址为自己的,如果要开ssl自己设置。
server {
    listen 80;
#listen 443 ssl;
    #域名,修改为自己的域名
    server_name oa.123456.xyz;
    #证书地址改下面两行
    #ssl_certificate /data/key/gdoa.top_chain.crt;
    #ssl_certificate_key /data/key/gdoa.top_key.key;
    #ssl_session_cache shared:SSL:1m;
    #ssl_session_timeout 5m;
    #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      #ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      #ssl_prefer_server_ciphers on;
    #前端程序地址
    root /www/node/GodoOA/GodoOA-master/www;
    set $node_port 8200;


    index index.js index.html index.htm;
    if ( -f $request_filename/index.html ){
      rewrite (.*) $1/index.html break;
    }
    if ( !-f $request_filename ){
      rewrite (.*) /index.js;
    }
    location = /index.js {
      proxy_http_version 1.1;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_pass http://127.0.0.1:$node_port$request_uri;
      proxy_redirect off;
    }

    location ~ /admin/ {
      etag         on;
      expires      max;
    }
    location ~ /static/ {
      etag         on;
      expires      max;
    }
}


④.修改pm2.json下第5 行"cwd": "/data/godo",改为"cwd": "/app",这里改成/app是因为容器不能使用主机路径,但是默认会挂载/opt/1panel/www/node/GodoOA/GodoOA-master为/app,配置全文如下:
{
"apps": [{
    "name": "godooa",
    "script": "development.js",
    "cwd": "/app",
    "exec_mode": "fork",
    "max_memory_restart": "2G",
    "autorestart": true,
    "node_args": [],
    "args": [],
    "env": {
      
    }
}]
}



然后重启环境,打开http://域名/res/group/login.html显示登录界面,输入验证码,能登陆就是没问题了。
页: [1]
查看完整版本: 使用1Panel面板部署godoOA