做中间件运维的朋友应该都有体会:WebLogic这东西你说难装吧,Oracle把安装向导做得很傻瓜化;你说简单吧,换成Linux环境、尤其是一台没有桌面的服务器,很多人第一步就卡在“图形化界面”上。我自己装过很多次,版本从11g一路走到14c,要说最省心的,反而是把手头机器配好桌面或X转发,跑图形化向导来装WebLogic 14.1.2.0——可以边装边核对每一步,顺带把JDK、安装目录、域模板这些关键信息一次性确认清楚。这篇文章就完整记录我在Linux图形化界面下安装WebLogic 14.1.2.0的过程,把环境准备、安装包选择、向导步骤、建域启动、常见报错一次性讲透。适合刚接手中间件的新人,也适合要在测试环境快速复现一套WebLogic的人参考。
1. 安装前的环境与前置准备
1.1 WebLogic 14.1.2.0版本定位,选对安装包比啥都重要
WebLogic Server 14.1.2.0属于Oracle Fusion Middleware 14c序列,官方版本号全称是14.1.2.0.0。相比老牌的12c,它在JDK支持、Jakarta EE规范、管理控制台体验这些方面都有明显更新,默认跑在JDK 17上,对云原生部署、容器化改造的适配也更好。如果手里是一个从零开始的中间件项目,现在直接上新版本是合理选择,毕竟12c那套用久了,迁移成本只会越拖越高。
安装包这里要特别提醒:WebLogic在Linux下的安装文件统一是jar包格式,常见的有几类。一是Generic安装包,文件名类似fmw_14.1.2.0.0_wls_lite_generic.jar,这是纯WebLogic Server精简版,体积适中,不含Infrastructure的一些组件,日常部署应用完全够用。二是Infrastructure完整安装包,会带上Coherence、JRF等更多组件,适合要跟Fusion Middleware其他套件对接的场景,文件更大、安装更慢。还有Quick Installer那种小包,适合无界面快速部署,但它本身不是为了图形化向导准备的。
下载的时候一定要核对文件名里的14.1.2.0、wls_lite、generic这些关键字。我之前见过有人拿12c的jar文件装14c,界面刚起来就让更新,最后版本对不上,白白折腾一晚上。Oracle官网下载需要登录账号,生产环境记得确认订阅和授权范围内允许的版本。
1.2 JDK 17与基础依赖,先认清环境再动手
WebLogic 14.1.2.0对JDK版本的要求是17,这是硬性门槛。JDK 8、JDK 11在这里都不能用,安装向导会自动检测并报“The version of the JDK being used is not supported”。所以我一般建议在准备阶段就把JDK装好,推荐Temurin 17或者Oracle JDK 17,OpenJDK发行版也没问题,关键是版本号对齐。
进入Linux之后先做一轮体检:
java -version which java echo $JAVA_HOME如果java -version输出的是17或者其他版本,心里就有数了。JAVA_HOME最好也显式配置到/etc/profile或者用户级~/.bashrc,不然后面启动安装程序时Oracle的脚本会到处找Java,特别容易因为PATH优先级问题跑到一个错误版本。
图形化安装还需要X11相关的依赖库。最小化安装的Linux服务器往往没有这些库,启动jar时界面根本弹不出来,或者弹出来全是乱码。提前装好:
yum install -y libXext libXrender libXtst libXi libxinerama如果是Debian系,用:
apt-get install -y libxext6 libxrender1 libxtst6 libxi6 libxinerama1这些库体积不大,但少了任何一个都可能导致安装界面起不来。我自己的习惯是:只要打算跑图形化安装,先把xterm、xclock这类基础X客户端装上,能用它们测出DISPLAY正常,再运行WebLogic安装程序,排查问题会简单很多。
1.3 用户、目录和显示环境,三条线都别缺
WebLogic安装强烈不建议用root用户直接跑。Oracle官方文档也建议创建一个普通用户,比如weblogic或者oracle,这样安装出来的目录权限更干净,后面启停服务也更安全。如果非要root装,后面无论是Nodemanager还是受管服务器,都会有权限上的坑。我通常这样初始化:
useradd weblogic mkdir -p /u01/app/oracle/product chown -R weblogic:weblogic /u01 su - weblogic目录规划方面,可以把ORACLE_HOME放在/u01/app/oracle/product/14.1.2.0/wls,后面域目录默认在$ORACLE_HOME/user_projects/domains。磁盘空间建议预留至少10GB,单纯安装包解压不算大,但后面域建多了、补丁打了、日志长了,空间会涨得很快。
然后是图形显示环境。有三种常见方式:
- 机器本身安装了GNOME/KDE桌面,直接本地操作,最简单。
- 机器没有桌面,但能访问物理控制台,可以临时起一个X会话。
- 远程环境,最常见的是用VNC、Xmanager或者MobaXterm做X11转发。
不管哪种方式,关键就是DISPLAY环境变量要指对位置。比如本机桌面场景:
export DISPLAY=:0.0如果是Windows上的Xmanager转发,通常DISPLAY要指向Windows主机的IP地址,比如:
export DISPLAY=192.168.1.100:0.0这里有个很容易踩的坑:Linux服务器上的认证可能拒绝来自其他主机的X连接。需要在本机的SSH配置里打开X11Forwarding,或者临时用xhost +放开访问限制。但这个命令只适合测试环境,生产环境不建议随便放开X认证。
2. 图形化安装全程实录
2.1 启动图形安装程序,先搞定DISPLAY再java -jar
安装包上传到服务器后,我习惯放到一个专用的软件目录,比如/u01/software,不要直接扔在用户根目录下找半天。然后切换到weblogic用户,设置好JAVA环境:
su - weblogic export JAVA_HOME=/usr/local/jdk-17.0.10 export PATH=$JAVA_HOME/bin:$PATH export DISPLAY=:0.0 cd /u01/software java -jar fmw_14.1.2.0.0_wls_lite_generic.jar正常情况下,几秒钟后Linux桌面或X转发窗口里会出现WebLogic安装欢迎页。如果半天没反应,先判断是不是DISPLAY的问题,终端会提示类似:
Unable to open display :0.0或者
java.awt.AWTError: Can't connect to X11 window server看到这种提示,说明图形通道没打通,别急着重装,先检查echo $DISPLAY,再确认xhost权限。这一步是最容易卡住的地方,但也是最容易解决的。
2.2 向导关键节点逐项拆解,每一步别急着“下一步”
安装向导虽然是一路“Next”,但有几个界面需要认真看。
欢迎页出现后,第一个选择是是否配置自动更新。如果服务器能联网,Oracle会检查补丁更新,但这个环节一方面会拖慢安装,另一方面生产内网环境往往根本访问不到外部更新源。我一般直接选“Skip Software Updates”,等装完之后再规划补丁策略。
接下来是选择安装目录。默认值通常是/u01/app/oracle/product/14.1.2.0/wls,如果你之前规划过目录结构,可以在这里修改。注意这个目录一旦装了组件,后期不太好挪,一定要提前想清楚。
安装类型界面会看到“Typical Installation”和“Custom Installation”两个选项。典型安装适合大多数场景,会把WebLogic Server核心组件和基础模板装好。自定义安装可以细选Coherence、JRF等附加组件,但如果你用的是wls_lite包,很多高级组件本来就不在包内,可选项有限。我个人的判断标准很简单:只是跑业务应用、建管理域,选典型;要跟其他Oracle中间件套件联动,选自定义并逐一核对组件清单。
JDK选择界面,向导会自动检测环境变量里的Java版本。如果检测出来不是17,一定要点“Browse”去手动定位JDK 17的主目录。很多人栽在这:系统里装了多个JDK,环境变量PATH指到旧版本,程序却用新版本启动,最后安装日志显示一堆class版本错误。
然后就是安装摘要。这里会列出ORACLE_HOME、安装组件、占用空间。我每次都会截个图或者抄到笔记里,后续查问题、打补丁都用得上。确认没问题点Install,安装进度条开始走,这个时候才真正进入等待期。
2.3 安装进度里的真实等待,别以为卡死了
图形化安装过程中,进度条走到一半不动是高频现象。常见的真实原因是磁盘IO或者内存不足,而不是程序死了。这时候切换到一个终端,用top、free -h、df -h看看资源情况。安装程序本身不算特别吃内存,但如果机器只有1~2GB内存,又跑着桌面环境,很容易触发OOM。
如果进度条长时间不动,可以打开安装日志看明细。日志位置一般在临时目录下的oraInstall_*.log,或者在ORACLE_HOME的cfgtoollogs目录里。看到日志还在不断追加内容,就说明程序还活着,只是进度刷新慢。
整个安装过程我实测通常在5到15分钟之间,取决于磁盘速度和机器性能。等进度条走完,会有一个“Installation Complete”界面。点Finish之前,建议把安装摘要里列出的ORACLE_HOME、JDK路径再拍一下。Finish之后,图形化安装阶段就算结束了,接下来要面对的是更关键的问题:建域。
3. 建域、启动与验证
3.1 用配置向导创建基础域,图形化建域最直观
安装完成之后,很多人以为就能直接启动Server了,其实不是。WebLogic Server本体相当于引擎,你必须先创建一个Domain(域),它才是一个可以启动的中间件实例。建域也有图形化工具,路径在:
$ORACLE_HOME/oracle_common/common/bin/config.sh执行前还是先确认DISPLAY,然后运行:
cd $ORACLE_HOME/oracle_common/common/bin ./config.sh这里会进入“Configuration Wizard”。第一步选择创建新域(Create a New Domain),第二步选模板,列表里能看到“Basic WebLogic Server Domain”模板。如果装了Infrastructure包,还会多出一些JRF相关模板。对绝大多数应用场景,选基础模板就行,其他模板等确需要再勾,别把域做得过重。
接着是位置和身份信息。域目录我习惯放在$ORACLE_HOME/user_projects/domains/base_domain。管理员账号默认提示weblogic,密码必须满足复杂规则,至少8位,包含数字和字母。建域密码一定不能用默认的,而且要用密码管理器记牢,这个密码是以后进Console、连Nodemanager都要用的。
再往下是“Administration Server”配置。监听地址可以设成服务器的实际IP,也可以设成0.0.0.0表示监听所有网卡,端口默认7001。如果这台机器后面要配防火墙白名单,监听地址用具体IP会更可控。接下来是开发模式和生产模式的选择。开发模式会自动启用演示证书、允许自动部署,适合测试;生产模式会更严格地处理SSL证书和部署权限。如果只是学习或者联调,选开发模式没问题。
最后一步是JDK选择,会列出系统现有的JDK,确认选到JDK 17之后点Create。建域过程很快,十几秒就完成,窗口底部会显示“Domain Created Successfully”。这样才算真正有了一个能启动的管理服务器。
3.2 启动AdminServer并验证Console,装完必须走一遍这个流程
域建好之后,启动管理服务器是验证安装是否成功的黄金标准。启动脚本在:
cd $ORACLE_HOME/user_projects/domains/base_domain/bin ./startWebLogic.sh首次启动会花点时间,日志会不断输出到终端。看到类似这样的关键行:
Server state changed to RUNNING说明AdminServer已经起来了。我一般不开终端直接挂后台,更推荐这样:
nohup ./startWebLogic.sh > $ORACLE_HOME/user_projects/domains/base_domain/startup.log 2>&1 &然后浏览器访问:
http://<服务器IP>:7001/console用建域时设置的weblogic账号密码登录,能看到管理控制台首页,整个安装链路就验证打通了。需要注意的是,服务器防火墙如果没放行7001端口,本地浏览器可能一直转圈。用curl在服务器本地先测:
curl -I http://localhost:7001/console如果本地有响应,基本就是防火墙的锅,排查firewalld或者安全组规则。
3.3 安装目录结构与日常管理要点,先别急着部署业务
装完建完域之后,我习惯把几个重要目录记下来,因为后面做托管服务器、打补丁、写启停脚本都会用到:
$ORACLE_HOME/wlserver:WebLogic Server核心安装目录,脚本、lib、服务端二进制都在这里。$ORACLE_HOME/oracle_common:Oracle Fusion Middleware公共组件目录,config.sh、wlst等工具在这里。$DOMAIN_HOME:域目录,包含bin、config、servers等子目录。$DOMAIN_HOME/servers/AdminServer:管理服务器实例产生的日志、tmp、data都在这。
如果想让WebLogic作为系统服务常驻,可以写一个Systemd unit文件,把startWebLogic.sh交给systemd管理,比较简单,但要注意启动用户必须写成weblogic,而且设置User=和Group=,避免用root拉起整个中间件进程。
4. 图形化安装问题排查与心得
4.1 服务器没有桌面环境,怎么把图形化界面跑起来
这是问得最多的问题。生产Linux服务器大多不带桌面,但图形化安装不是非要物理桌面不可。我常用两个思路:
思路一,SSH X11转发。Windows端用Xshell、MobaXterm或PuTTY配合Xming,勾选X11转发,然后在服务器上确认会话内DISPLAY已被自动设置。运行xclock能弹出窗口,再启动安装程序基本就没问题。
思路二,VNC。如果不想依赖SSH转发,可以在服务器上装tigervnc-server,启动一个虚拟桌面,再用VNC客户端连上去。VNC的好处是后续多次操作都在这一个桌面里进行,装WebLogic、建域、查看控制台都能搞定。
Netty 无关。回到正题,如果老是提示连不上显示,就先跑:
xhost +来放开X访问权限,确认能显示后再卸掉这个限制。这只是应急手段,别在生产上长期开着。
4.2 root用户、内存和JDK版本,三类问题最容易翻车
root用户安装的问题,我之前已经强调了。有些朋友图省事直接root跑,结果WebLogic安装程序可能不会强制拦截,但建域或启动阶段总是报权限错误。而且用root部署应用,可能让应用进程拥有过高权限,这不是一个中间件应有的姿态。解决办法就是老老实实建weblogic用户。
内存问题也是高频。安装程序界面上没提示,但在config.sh建域或者启动AdminServer时,可能报:
Not enough memory to start the server这种通常出现在机器只有1GB内存的测试机上。建议至少2GB物理内存,再加2GB swap。启动脚本里也可以通过USER_MEM_ARGS调整JVM堆大小,但别盲目调大,内存不够时调大反而会起不来。
JDK版本问题前面说过,但我要再强调:14.1.2.0只认JDK 17。报错里出现UnsupportedClassVersionError或直接提示JDK不支持,十有八九是环境变量里的Java不是17。先确认:
java -version如果输出不是17,就改JAVA_HOME和PATH,再重新启动安装程序或config.sh。
4.3 中文乱码和字体缺失,界面全变方块怎么处理
国产桌面Linux和部分中文本地化的Linux发行版上,安装界面有时会出现中文乱码或者一堆方框,这不是WebLogic的问题,是JVM找不到中文字体。处理方式很简单,要么把环境切成英文环境:
export LANG=en_US.UTF-8重新运行java -jar或config.sh,界面就变成英文了。要么安装字体包:
yum install -y fontconfig dejavu-sans-fonts安装中文字体后,中文界面大概率也能正常渲染。我自己的习惯是安装阶段统一用英文界面,安装完成后再根据现场需要调整语言,这样能少很多字体相关的幺蛾子。
4.4 常见问题速查表,直接对着查
| 症状 | 可能原因 | 处理方式 |
|---|---|---|
| 运行jar后无任何图形界面 | DISPLAY未设置或X认证失败 | echo $DISPLAY,使用VNC或SSH X11转发,必要时xhost +临时放开 |
| 提示JDK版本不支持 | 环境变量指向的Java不是17 | 安装JDK 17,重新设置JAVA_HOME和PATH |
| 安装进度条长时间不动 | 磁盘IO慢、内存不足 | 查看oraInstall_*.log,用free -h和df -h检查资源 |
| root启动时提示权限问题 | 中间件进程用root运行 | 创建weblogic用户,重设目录归属 |
| 建域密码不通过 | 未达到密码复杂度规则 | 改成至少8位,字母数字混合 |
| 7001端口无法访问 | 防火墙未放行或AdminServer未启动 | netstat -tlnp检查端口,查看AdminServer.log |
| Console登录后界面JS不刷新 | 浏览器缓存旧版本控制台资源 | 清缓存,换Chrome/Edge无痕窗口 |
| 启动服务报OutOfMemoryError | 服务器内存不足或JVM参数过大 | 增加Linux物理内存或swap,调小JVM堆参数 |
这张表是我排障时使用率最高的东西,很多问题看着复杂,本质就是环境变量、权限、资源这三板斧。图形化安装的最大价值,恰恰是让你把这些问题暴露在安装阶段,总比等建好域再回头查环境强。
最后再分享一个我自己的习惯:每次装完,我都会把JDK路径、ORACLE_HOME、域路径、AdminServer端口、日志位置这五个关键信息写到一张小抄上,放进项目的交接文档里。后面不管是扩管理服务器、打补丁,还是做环境迁移,这张小抄都能省很多时间。图形化安装适合单台验证,如果以后碰到二三十台机器批量装,我建议还是用响应文件做静默安装,但在那之前,用图形化把安装流程走通一遍,会让你对WebLogic的目录和概念有更直观的理解。有了这个底子,再去看静默安装参数,几乎不用背就能写出来。