操作手册

财务系统oneinstack部署教程

接连

企万慧 点击进入

1、基础环境

服务器:腾讯云或阿里云(或其他厂商云服务器)
操作系统:CentOS 7.9 64位
域名:一定要解析
端口:一定要开放端口80、443等(有的云服务器默认是不开启常用端口)

2、安装oneinstack环境

执行以下指令
wget -c http://mirrors.oneinstack.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --jdk_option 3 --db_option 1 --dbinstallmethod 1 --dbrootpwd iti7bejd --redis --reboot

安装完成后如下图

安装完成后如下图

3、将installl.sh文件上传到服务器上data(放到服务器上即可,不限制位置)目录下

#### 安装完成后如下图

installl.sh 文件内容:

#!/bin/bash

cd /data

initDir(){
    if [ ! -d "/data/logs" ]; then
      mkdir /data/logs
    fi

    if [ ! -d "/data/script" ]; then
      mkdir /data/script

      echo '#!/bin/bash
front_end_path="/data/wwwroot/$1"

rm -rf ${front_end_path}/*

echo "success clean $1"' > /data/script/clean.sh

    echo 'chown -R www.www /data/logs
chown -R www.www /data/server
chown -R www.www /data/temp
chown -R www.www /data/upload
chown -R www.www /data/worker
chown -R www.www /data/wwwroot

find /data/logs -type d -exec chmod 755 {} \;
find /data/logs -type f -exec chmod 644 {} \;

find /data/server -type d -exec chmod 755 {} \;
find /data/server -type f -exec chmod 644 {} \;

find /data/temp -type d -exec chmod 755 {} \;
find /data/temp -type f -exec chmod 644 {} \;

#find /data/upload -type d -exec chmod 755 {} \;
#find /data/upload -type f -exec chmod 644 {} \;

find /data/worker -type d -exec chmod 755 {} \;
find /data/worker -type f -exec chmod 644 {} \;

find /data/wwwroot -type d -exec chmod 755 {} \;
find /data/wwwroot -type f -exec chmod 644 {} \;

chmod +x /data/server/*/*.jar;
' > /data/script/mod.sh

    echo '#!/bin/bash
counter=1;
http_addr="http://127.0.0.1:$1/"

while : ;do
   status_code=`curl -m 5 -s -o /dev/null -w %{http_code} $http_addr`
   if [ $counter -gt 60 ]; then
       echo "[ERROR]:  started error"
    exit 0
   fi

   if [ $status_code -eq 403 ]; then
       echo "[INFO]: http connection is ok: $http_addr"
       exit 0
   elif [ $status_code -ne 200 ]; then
    echo "[ERROR]: http connection error: $http_addr code:$status_code time: $counter"
    counter=$[$counter+1]
    sleep 1
   else
       echo "[INFO]: http connection is ok: $http_addr"
       exit 0
   fi
done' > /data/script/http-check.sh

    echo '#!/bin/bash
bs_server_dir="/data/server/$1"

nowtime=$(date "+%Y%m%d%H%M%S")

echo "start update $1 server"

systemctl stop $1

#备份
rm -rf ${bs_server_dir}/$1.*.bak
mv ${bs_server_dir}/$1.jar ${bs_server_dir}/$1.${nowtime}.bak
cp ${bs_server_dir}/$1-*.jar ${bs_server_dir}/$1.jar

sh /data/script/mod.sh $1

systemctl start $1

echo "server success update $1"

sh /data/script/http-check.sh $2' > /data/script/update.sh

    chmod 755 /data/script/clean.sh
    chmod 755 /data/script/mod.sh
    chmod 755 /data/script/http-check.sh
    chmod 755 /data/script/update.sh

    fi

    if [ ! -d "/data/server" ]; then
      mkdir /data/server
    fi

    if [ ! -d "/data/temp" ]; then
      mkdir /data/temp
    fi

    if [ ! -d "/data/upload" ]; then
      mkdir /data/upload
    fi

    if [ ! -d "/data/worker" ]; then
      mkdir /data/worker
    fi
}

initServer(){
    read -p "请输入服务名称: " serverName
    read -p "请输入服务端口: " serverPort
    read -p "请输入服务域名: " siteUrl

    mkdir -p /data/logs/$serverName
    mkdir -p /data/server/$serverName
    mkdir -p /data/worker/$serverName
    mkdir -p /data/temp/$serverName

    echo "JAVA_HOME=/usr/lib/jvm
JAVA_OPTS='-server -Xms1024m -Xmx1024m -Dspring.config.import=file:/data/server/${serverName}/application.yml -Djava.io.tmpdir=/data/temp/${serverName}/ -Djava.security.egd=file:/dev/./urandom'" > /data/server/$serverName/${serverName}.conf

    echo "spring:
  profiles:
    active: prod
  datasource:
    url: jdbc:mysql://localhost:3306/$serverName?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true
    password: 
    username: 

logging:
  file:
    path: /data/logs/$serverName

server:
  port: $serverPort
  tomcat:
    basedir: /data/worker/$serverName/" > /data/server/$serverName/application.yml

    echo "[Unit]
Description=$serverName
After=network.target

[Service]
User=www
Group=www
WorkingDirectory=/data/worker/$serverName
ExecStart=/data/server/$serverName/$serverName.jar
ExecStop=kill $MAINPID
SuccessExitStatus=143
Restart=always

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/$serverName.service

systemctl enable $serverName.service

sed -i "/502.html;/ a location ^~ /api/ { \n index index.html index.htm; \n if ( !-e \$request_filename )  { \n rewrite \^/api/\(.*\)\$ /\$1 break; \n proxy_pass http://127.0.0.1:$serverPort; \n } \n include proxy.conf;\n} \nlocation / { \n try_files \$uri \$uri/ /index.html; \n}\n" /usr/local/nginx/conf/vhost/$siteUrl.conf

systemctl reload nginx
}

cat <<EOF
(1) 安装服务
(0) 初始化目录
EOF
read -p "请选择需要的操作(0-1): " input

case $input in
0)
  initDir
  ;;
1)
  initServer
  ;;
esac

4、执行installl.sh文件

初始化目录
sh installl.sh
输入0 ,初始化目录
输入0 ,初始化目录

5、添加虚拟主机(可以参考oneinstack官网的教程,如果添加不成功可以多试几次)

打开oneinstack目录 cd oneinstack
执行 ./vhost.sh

注意:首次创建的过程需要输入邮箱,输入自己的邮箱即可。


1.添加客户端
添加客户端


添加客户端02
创建成功后的文件夹目录
创建成功后的文件夹目录
2.添加管理端
添加管理端01


添加管理端02
创建成功后的文件夹目录
创建成功后的文件夹目录01
3.可以在对应目录查看配置文件
3.可以在对应目录查看配置文件

6、创建服务

服务名和端口自定义,域名对应上面创建的虚拟机域名,如果不对应的话创建完成不会自动配置代理。
1.客户端服务
客户端服务
2.管理服务端
2.管理服务端

创建成功后会自动配置好代理
创建成功后会自动配置好代理
3.需要重新加载nginx
3.需要重新加载nginx

7、修改服务配置文件

1.创建服务成功后会自动创建对应的目录和文件
1.创建服务成功后会自动创建对应的目录和文件
2.修改application.yml文件,连接数据库改成自己的库就可以,然后再添加短信部分的配置
2.修改application.yml文件,连接数据库改成自己的库就可以,然后再添加短信部分的配置
3.修改csqt.conf的内存,把1024改成512
3.修改csqt.conf的内存,把1024改成512


4.服务管理端csht的配置同上

8、上传项目

1.把打包好的客户端服务jar包和文字字体文件上传到server/csqt目录并把jar包名称改成与csqt.conf文件名称一样
把打包好的客户端服务jar包01


2.把打包好的管理端服务jar包上传到server/csht目录并把jar包名称改成与csht.conf文件名称一样
把打包好的管理端服务jar包02


3.把打包好的前端项目上传到wwwroot/你的域名文件夹(记得分清哪个是客户端的哪个是管理端的)
3.把打包好的前端项目上传到wwwroot


3.把打包好的前端项目上传到wwwroot01

9、修改用户组

注:如果不修改可能启动不成功:


如果不修改可能启动不成功
修改成功后如下
修改成功后如下


修改成功后如下02

10、启动服务

启动服务
在logs目录下可以看到对应的日志
在logs目录下可以看到对应的日志

11、访问自己的域名即可