三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

避坑指南:手把手教你搞定宝兰德BES 9.5.2单实例的分离安装与控制台访问

避坑指南:手把手教你搞定宝兰德BES 9.5.2单实例的分离安装与控制台访问

宝兰德BES 9.5.2分离安装实战:从零避坑到控制台访问

作为一名常年与各种中间件打交道的技术老兵,我见过太多开发者在部署宝兰德BES时踩坑——权限混乱、环境变量失效、防火墙阻拦...这些看似简单的问题往往让人折腾数小时。今天,我将用最直白的语言,带你完整走通BES 9.5.2单实例的分离安装全流程,每个步骤都附带"避坑检查点",确保你一次成功。

1. 环境准备:账号与权限的黄金法则

分离安装的核心思想是将产品文件(BES本身)与应用实例(你的业务系统)隔离,这需要严格的账号权限管理。许多教程轻描淡写带过的权限设置,恰恰是90%安装失败的根源。

1.1 创建隔离账号

在Linux终端执行以下命令创建两个专用账号(建议使用root操作):

# 创建产品账号bes及同名用户组 groupadd bes useradd -g bes -d /home/bes -m bes # 创建应用账号app及同名用户组 groupadd app useradd -g app -d /home/app -m app

避坑检查点1

  • 使用id besid app验证账号是否创建成功
  • 确认/home/bes/home/app目录已自动生成(ls -l /home

1.2 目录权限配置

产品文件和应用实例需要严格的目录隔离:

# 创建产品目录(由bes账号操作) mkdir -p /bes/BES952 chown -R bes:bes /bes chmod 755 /bes # 创建实例目录(由app账号操作) mkdir -p /app/besinstances chown -R app:app /app chmod 755 /app

关键权限对照表

目录路径所属用户权限用途
/besbes:bes755存放BES安装包
/appapp:app755存放业务实例

注意:权限不足会导致后续实例创建失败,这是最常见的安装错误之一

2. 软件部署:JDK与BES的精准配置

2.1 JDK环境部署

切换到bes账号安装JDK(以jdk-8u301为例):

su - bes cd /bes tar -zxvf jdk-8u301-linux-x64.tar.gz mv jdk1.8.0_301 jdk

配置环境变量(编辑~/.bashrc):

export JAVA_HOME=/bes/jdk export PATH=$JAVA_HOME/bin:$PATH

避坑检查点2

  • 执行source ~/.bashrc使配置生效
  • 验证Java版本:java -version应显示对应版本号
  • 特别注意:必须在bes和app账号下分别配置JAVA_HOME

2.2 BES安装包解压

继续在bes账号下操作:

cd /bes tar -zxvf BES9.5.2.tar.gz -C BES952

检查目录结构:

/bes/BES952 ├── bin ├── conf ├── lib └── ...

3. 实例创建:分离架构的关键步骤

3.1 首次启动生成License

在bes账号下执行初始化:

cd /bes/BES952/bin ./iastool --passport B#2008_2108#es --user admin --password B#2008_2108#es start --server

避坑检查点3

  • 观察输出是否有"License file generated successfully"
  • 检查/bes/BES952/conf目录下是否生成installtime文件
  • 完成后务必停止服务:./iastool ... stop --server

3.2 创建业务实例

切换到app账号操作:

su - app export JAVA_HOME=/bes/jdk # 必须重新声明! sh /bes/BES952/bin/besservers \ -c=/bes/BES952/conf/server.config \ -p=/app/besinstances/instance01 \ -s=create

关键参数解析

  • -c:指定BES主配置文件路径
  • -p:实例存放路径(建议按业务命名)
  • -s:操作类型(create|stop|start)

4. 服务验证:从启动到控制台访问

4.1 启动实例服务

cd /app/besinstances/instance01/bin ./startserver.sh

验证服务状态:

ps -ef | grep java # 应看到BES相关进程 netstat -tlnp | grep 1900 # 检查控制台端口

4.2 控制台访问排错

当无法访问http://服务器IP:1900/console时,按此 checklist 排查:

  1. 防火墙状态

    systemctl status firewalld # CentOS ufw status # Ubuntu

    临时关闭防火墙:

    systemctl stop firewalld
  2. SELinux干扰

    getenforce # 显示Enforcing表示开启 setenforce 0 # 临时关闭
  3. 端口监听测试

    telnet 127.0.0.1 1900 # 本地测试
  4. 日志检查

    tail -f /app/besinstances/instance01/logs/server.log

经验分享:我遇到最多的问题是环境变量未继承。建议在app账号的.bashrc中显式声明JAVA_HOME,并在启动脚本前执行source ~/.bashrc

5. 生产环境优化建议

虽然上述步骤能完成基础安装,但生产环境还需要:

  1. 权限精细化控制

    chmod 750 /bes/BES952/bin/*.sh # 限制脚本执行权限
  2. 服务自启动配置(示例systemd单元文件):

    [Unit] Description=BES Application Server After=network.target [Service] Type=forking User=app Group=app Environment="JAVA_HOME=/bes/jdk" ExecStart=/app/besinstances/instance01/bin/startserver.sh ExecStop=/app/besinstances/instance01/bin/stopserver.sh [Install] WantedBy=multi-user.target
  3. 备份策略

    • 产品目录:/bes/BES952/conf下的配置文件
    • 实例目录:/app/besinstances/instance01/webapps下的应用文件
  4. 性能调优参数: 修改/app/besinstances/instance01/conf/server.xml

    <Connector port="8080" maxThreads="500" minSpareThreads="50" acceptCount="300"/>

记住,中间件安装不是终点而是起点。每次部署后,建议用df -h检查磁盘空间,用free -m观察内存占用,这些数据会成为日后性能调优的基准参考。

← 返回列表