简介ArcGIS 10.1 for Server在Linux环境下单机安装的专题图文教程适合GIS管理员、系统运维人员和刚接触Linux的ArcGIS初学者。文档针对Red Hat Enterprise Linux 5/6、SUSE Linux Enterprise Server 10/11等官方支持的64位系统详解安装前环境检查X Windows、3.1GB磁盘、OpenGL、非root安装用户、依赖包离线传输、CheckPackagePrerequisites.sh脚本使用、修改limits.conf等关键步骤。正文按安装启动、授权、创建站点、登录Manager验证的流程展开并教读者利用安装后自带服务测试安装是否成功。资源为单个docx文档共1个文件压缩包大小2.41MB便于离线查阅或打印对照操作。已有146人学习下载适合在实施Linux版ArcGIS Server部署前作为避坑参考帮助降低初次安装的环境障碍和失败概率。1. 为什么老掉牙的ArcGIS 10.1 for Server还要装Linux单机ArcGIS 10.1 for Server在Linux下的单机安装是不少存量GIS项目绕不开的坎。这个版本虽然老却还在不少单位的地图服务、内部业务系统和历史数据接口里跑着尤其是只有一台Linux服务器的环境里单机部署几乎是唯一经济、可控的方案。它解决的问题很明确在服务器上把ArcGIS Server立起来、授权正常、能在浏览器里看到服务目录和管理页面。如果你是要接手老项目或者想在测试机上复刻一套旧服务做验证这篇文章就是为这个场景写的。本文以10.1的常见安装布局为基础命令和路径可以根据你手头安装包的实际版本微调。2. 环境准备先落地发行版、账号、磁盘与依赖核查Linux下装ArcGIS Server最容易被低估的是准备环节。很多人拿到安装包就想直接跑Setup结果在账号权限、磁盘布局和依赖检查上来回翻车。这里的准备不只是“留够磁盘空间”而是把发行版兼容性、运行账号、目录划分和主机名解析四项一次做完后面安装才不会反复返工。2.1 发行版选型RHEL/CentOS最稳Ubuntu要谨慎ArcGIS 10.1 for Server官方支持的Linux发行版是Red Hat Enterprise Linux和SUSE Linux Enterprise Server而国内运维现场出现频率最高的是CentOS 6和CentOS 7。CentOS 6的glibc版本偏老但正好落在当年ArcGIS Server 10.1的兼容区间里CentOS 7则更容易补齐运行库。如果手头没有特殊约束CentOS 7是省心选择。Ubuntu/Debian能不能装实测能装但第一个坑就是安装器对libX11和字体库的依赖常常要手动补libxrender、libfreetype等一堆包。这类发行版可以在测试环境尝试生产环境不建议毕竟10.1的老二进制没有人为新版Ubuntu做完整验证。这里要单独提醒一句遇到国产化要求时先别急着在核心业务服务器上下结论ArcGIS Server 10.1的年代远早于国产Linux生态能不能跑取决于兼容层、系统调用和JDK版本我一般会拿一台测试机完整装一遍确认安装器、授权进程和后续服务都正常再考虑迁移。选型阶段还要留意系统位数。10.1只有64位版本可用检查命令是uname -m cat /etc/redhat-release如果输出是x86_64基本可以继续。若是i686或arm64就别费力了这个版本没提供对应二进制。发行版这关过后再结合下面的账号和目录一起规划。2.2 账号与目录规划esri账号、独立数据盘、可执行权限Linux运维里常见的坏习惯是用root直接装、甚至让server进程跑在root下。ArcGIS 10.1 for Server在Linux上要求有一个专门运行server进程的账号官方文档里通常叫ArcGIS Server Account。生产惯例是单独建esri用户安装目录放到独立数据盘不让系统盘和/tmp来凑合。如果安装目录挤在系统盘缓存写满导致服务离线那才是真正的心累。groupadd esri useradd -g esri -m -s /bin/bash esri mkdir -p /data/arcgis/server chown -R esri:esri /data/arcgis df -h /data/arcgis这段命令做的事情是先创建esri用户组和esri用户-m表示同时创建home目录-s /bin/bash指定登录shell避免有些安装脚本为了切用户执行而读不到shell然后创建安装目录并递归改为esri所有最后用df确认数据盘确实挂载且没有接近写满。很多人忽略chown这一步用root创建目录后没改属主等server进程以esri身份启动时就没有写权限站点创建会和你说再见。目录规划上我习惯再单独分一个目录放授权文件和安装包比如/data/software。这样授权文件路径干净不会有中文或空格问题后面授权激活阶段少踩一个坑。还有磁盘预留ArcGIS Server 10.1本体安装占2GB左右但缓存、日志和作业目录会随业务增长建议预留至少30GB给/data/arcgis。2.3 依赖项自检用linux常用命令核查glibc、libX11与主机名ArcGIS Server 10.1不是纯Java程序它的本地so库和字体渲染依赖一套底层运行库。libX11、libstdc、fontconfig缺了或版本不匹配安装器或服务启动阶段只会报莫名其妙的小错日志里看不到根因。避免这种黑匣子式报错装前先跑一组linux常用命令自查ldd --version | head -1 rpm -qa | grep -E libX11|libstdc\\|fontconfig hostname getent hosts $(hostname)第一条看glibc版本10.1要求glibc 2.5以上CentOS 6/7都没问题第二条确认三个关键运行库是否已装第三条和第四条看主机名解析。ArcGIS Server在创建站点时会把机器名作为站点标识如果hostname解析不到本机IPManager页面会出现登录后站点立即离线的问题这在后面排查章节会详说。缺包时在CentOS上直接补齐yum -y install libX11 libXext libXrender fontconfig libstdc补完后再执行一次rpm -qa验证。另外建议同步关闭SELinux或把SELinux设为permissive10.1发布时对SELinux的支持本来就有限enforcing模式下server进程访问目录和端口可能被拒绝而这个拒绝在应用日志里完全看不到。这一步虽然说起来有点“玄学”但确实是老版本Linux部署最常见的隐性障碍。3. 执行安装主流程解压、setup.sh与授权导入环境准备做完进入实操。无论安装包从哪个渠道拿到的先解压再找到安装脚本。Linux下ArcGIS Server 10.1的安装器不是双击exe那套逻辑它是典型的tar包加可执行脚本结构解压出来的目录里会有一个Setup或setup.sh文件。3.1 解压安装包并核对目录结构下载回来的安装包体积不小解压时建议先确认目标盘空间然后执行mkdir -p /data/software tar -xzvf /data/software/arcgis_server_10_1_linux.tar.gz -C /data/software ls -l /data/softwaretar命令用了-xzvf四个参数-x解压-z表示gzip压缩格式-v打印解压过程方便观察-f指定文件名。解压目标用-C指到/data/software避免解压文件散落到当前目录。解压后ls确认一下应该能看到类似Setup、文档和若干资源目录的结构。如果解压出来是.zip或.iso处理方式稍有不同.zip用unzip.iso需要mount -o loop挂载后再复制。这个版本在老旧服务器上解压时间可能较长不要看终端没动静就强杀进程耐心等一两分钟是值得的。3.2 图形安装与静默安装单机首次装推荐哪种进入安装目录后如果有图形桌面环境或者X11转发可以直接运行./Setup启动图形向导服务器通常没有桌面更推荐静默安装。我个人的建议是即使是第一次装也优先用静默方式因为单机安装参数就那么几个静默方式输出的是确定性日志比图形界面更容易排错。cd /data/software ./Setup --help先看帮助确认你手上这个安装包的参数写法。不同批次安装包的参数虽然接近但严谨起见以帮助输出为准。常见静默安装命令是./Setup -m silent -d /data/arcgis/server -a /data/software/license.ecp -l yes这条命令里-m silent表示静默模式-d指定安装目录必须和前面创建的目录一致-a指定授权文件路径这里用的是/es/data/software下的license.ecp-l yes表示接受许可协议。如果不想在安装阶段授权也可以去掉-a参数安装完再通过Manager界面做授权激活但建议一次装完省得后面补授权时还要重启服务。静默安装执行完后注意看终端输出的最后几行一般会有安装成功或后续步骤的提示。不要看到一个log文件就以为成功要看有没有“installation completed successfully”之类的明确字样。装完后顺手确认一下目录权限避免后面服务起不来ls -ld /data/arcgis/server chown -R esri:esri /data/arcgis/server第二条命令是保险操作即使安装时已经指定过目录属主也再执行一次确保server子目录都归esri用户。3.3 授权文件形态与安装后基础检查授权文件通常是.ecp后缀也可能是一段授权码。若手头暂时只有试用许可10.1支持90天试用安装后先跑通流程后续再更新正式授权。授权文件存放路径切忌带中文和空格否则Java进程读取授权时可能因为路径编码问题直接失败。安装后的第一件事不是马上打开浏览器而是检查安装目录结构和关键进程ls /data/arcgis/server pgrep -lf arcgis正常情况下能看到server框架目录、bin目录和日志目录。ArcGIS Server不是装完就自动全部启动的版本这里只是确认核心目录已生成。在单机Linux环境中安装完成后会进入站点初始化阶段也就是下一章的内容。4. 初始化站点并验证REST服务Manager配置与端口自检ArcGIS Server 10.1的架构和更早版本差异很大它引入了站点概念所有机器、服务和配置都归属到一个站点里。单机安装没有集群负担但仍然必须完成站点创建这一步否则服务无法对外发布。实际上10.1之后很多运维问题都出在站点创建不完整或目录配置不正确。4.1 通过Manager创建主站点管理员安装完成后在浏览器里访问http://服务器主机名:6080/arcgis/manager第一次打开会进入创建主站点管理员页面。这里要区分两个账号之前创建的系统esri账号是ArcGIS Server运行账号而主站点管理员是一个业务账号用来登录Manager管理站点。主站点管理员可以单独设置用户名和密码不必和esri系统账号一致但密码要足够复杂因为后续所有服务发布和配置都靠它。创建主站点管理员时还会要求确认站点名称和配置存储位置。单机部署直接用默认值即可但主机名很关键Manager页面里会把当前机器名作为站点机器注册如果主机名在后端改过站点机器名会对不上出现服务发布成功了却找不到运行节点的诡异现象。我习惯在创建站点前先固定hostname并且保证/etc/hosts里有对应解析。4.2 站点目录、缓存目录和日志目录的规划10.1默认会在安装目录下生成directories目录里面包含缓存目录、作业目录和系统目录。单机部署看起来不用管但目录规划直接影响磁盘和排查效率。我一般会在创建站点时把缓存目录和日志目录明确指向独立路径避免和系统盘抢空间。站点配置存储、服务缓存和日志三类的规划建议项目默认位置个人建议站点配置存储/data/arcgis/server/usr/etc保持默认定期备份服务缓存目录/data/arcgis/server/directories/arcgiscache单独挂载大容量数据盘日志目录/data/arcgis/server/logs单独目录配置轮转这里尤其别忽视日志目录10.1的server日志是文本文件按天追加故障排查全靠它。实际遇到过日志盘写满导致server进程假死的情况所以日志目录独立出来并定时清理超过30天的文件是单机运维的底线操作。4.3 防火墙与REST自测6080/6443端口连通性检查创建站点并登录Manager后用命令验证服务状态这一步比在浏览器里肉眼判断可靠得多。ArcGIS Server 10.1默认监听6080HTTP和6443HTTPS但多数内网部署只走6080。检查命令curl -s http://localhost:6080/arcgis/rest/info?fjson curl -s -o /dev/null -w %{http_code}\n http://localhost:6080/arcgis/manager第一条命令请求REST服务根地址正常会返回一段JSON里面包含currentVersion字段能看到10.1字样就说明核心服务在跑。第二条命令用-w参数输出HTTP状态码200代表Manager页面可达。如果第一条返回空或连接拒绝先看进程再查防火墙ps -ef | grep arcgis | grep -v grep ss -tlnp | grep 6080ss输出里如果看不到6080监听说明server进程没起来去日志目录找server.log看有没有报错。防火墙放行方面CentOS 7用firewall-cmd开放6080和6443两个端口如果前面没关SELinux这一步同时检查SELinux状态。REST接口验证通过后单机安装的主流程就算走通了。此时你可以发布一个测试地图服务或者在REST根目录里确认站点信息。需要注意的是10.1的REST接口路径和较新版本有差异ArcGIS Server 10.1是/arcgis/rest不是更高版本中常见的/arcgis/rest/services。知道这个差异后面排查外部系统对接时就不会摸不着头脑。5. 避坑排查五个常见故障的现象、原因与处置老版本Linux部署最不缺的就是坑。这一章整理了我在多台服务器上遇到过的五类真实故障每一条都按现象、原因、解决来写。这些问题的共性在于单看日志很难定位必须把主机名、权限、依赖和启动方式串在一起看。5.1 Manager页面打不开先查hosts再查防火墙现象浏览器访问http://主机名:6080/arcgis/manager页面长时间转圈或直接拒绝连接但ps能看到arcgis相关进程。原因最常见的有三种一是hostname解析不到本机IP二是防火墙没放行6080三是server框架启动过程中因为配置存储目录权限异常而退出。判断顺序建议是先解析后端口再权限。解决先执行hostname和getent hosts $(hostname)看解析结果。如果主机名解析到127.0.0.1或干脆解析失败改/etc/hosts把主机名映射到服务器实际IP。然后确认防火墙状态ss -tlnp | grep 6080 firewall-cmd --list-ports没有监听就去看日志最后再用chown -R esri:esri修复目录权限。这三板斧能解决大半Manager打不开的问题。5.2 授权文件导入失败ecp路径、文件权限与JDK版本现象授权进度条一直转或者提示授权文件无效有时导入后Manager里仍显示未授权。原因授权文件路径包含中文或空格文件权限不是esri用户可读或当前环境的JDK版本和10.1自带的兼容层不一致。第二个原因最隐蔽因为授权进程是独立Java进程报错往往只留在临时目录的日志里。解决把.ecp文件挪到/data/software这种纯英文路径执行chmod 644给到可读权限。JDK问题则检查系统默认java -version如果版本过新安装前先通过环境变量指定一个较老的JDK路径让安装器和授权进程都使用同一版本。这里免不了试一两次所以授权激活我习惯放在安装阶段一起做而不是事后补授权。5.3 站点创建后立即离线磁盘目录权限和空间不足现象Manager里能创建站点但创建完立刻显示站点离线刷新后服务目录空荡荡。原因server进程以esri身份运行但配置存储或日志目录属主不是esri或者数据盘写满server框架启动时无法写配置导致状态回滚。有时候df一看可用空间还有但inode耗尽了这种细节最容易漏。解决df -h看过空间后同时df -i看inode然后检查配置存储目录属主ls -ld /data/arcgis/server/usr/etc chown -R esri:esri /data/arcgis/server修完属主后重启server进程再回Manager看站点状态。这条问题的核心是“运行账号写不了自己的目录”也是Linux权限模型下最典型的ArcGIS Server故障。5.4 重启Linux后服务消失自启动脚本没配现象服务器重启后浏览器打不开Managerps里也找不到任何arcgis进程。原因ArcGIS Server 10.1在Linux下装完并不会注册开机自启它自带的管理脚本需要手动挂到系统启动流程里。新版本有systemd但这个老版本基本还是靠rc.local或init脚本。解决在/etc/rc.local里追加一行调用server框架的启动脚本。不同安装包的脚本名可能不同常见的是startserver.sh你可以先到安装目录下找ls /data/arcgis/server/*.sh echo /data/arcgis/server/startserver.sh start /etc/rc.local chmod x /etc/rc.local加完后建议重启前手动执行一次脚本确认命令本身能拉起进程。这一步做完才能算真正交付了可重启的服务器。5.5 图形安装界面黑屏或卡死DISPLAY变量与字体库缺失现象通过X11转发运行./Setup窗口打开但内容空白或者卡在初始化界面终端无报错。原因服务器上没有图形环境DISPLAY变量没正确导出或者字体库缺失导致Java图形界面渲染失败。10.1的图形安装器本身就是Java应用字体渲染问题非常常见。解决最省事的方式是放弃图形安装改用3.2节里的静默安装。如果必须用图形界面先确认DISPLAY变量指向可用的X服务器并用xclock这类简单程序测试X转发是否正常同时补装fontconfig和xorg-x11-fonts。遇到中文乱码或字体方块多半是系统中文字体目录不对但既然最终目的是装ArcGIS Server直接走静默安装是止损最快的路径。6. 收尾运维用健康检查脚本和REST API盯住单机服务装完、站点创建好、REST能通这只是开始。单机部署最怕的是服务在半夜静悄悄挂掉第二天别人问起来才一脸茫然。所以我习惯在每次部署收尾时写一个简单的健康检查脚本放到crontab里定时跑并把结果写到本地日志。#!/bin/bash # check_ags.sh - Minimal ArcGIS Server health check HOSTlocalhost PORT6080 HTTP_CODE$(curl -s -o /dev/null -w %{http_code} --connect-timeout 5 http://$HOST:$PORT/arcgis/rest/info?fjson) if [ $HTTP_CODE 200 ]; then echo $(date): ArcGIS Server RSP OK /var/log/ags_health.log else echo $(date): ArcGIS Server DOWN - HTTP $HTTP_CODE /var/log/ags_health.log /data/arcgis/server/startserver.sh start /var/log/ags_health.log 21 fi脚本的逻辑很简单用curl请求REST根地址判断HTTP状态码如果不是200就调用启动脚本尝试拉起。实际线上更推荐再加上一层进程判断比如pgrep -f arcgis避免服务在重启中时重复触发拉起命令。把这个脚本加到crontabchmod x /data/script/check_ags.sh echo */5 * * * * /data/script/check_ags.sh /var/spool/cron/rootcrontab每五分钟跑一次配合REST接口的状态码基本能把“离线无人知”的风险压到最低。REST API本身也是排障利器。登录Manager不方便时直接用curl访问REST服务和admin接口curl -s http://localhost:6080/arcgis/rest/info?fjson curl -s http://localhost:6080/arcgis/rest/services?fjsonservices接口返回当前已发布的所有服务列表这个列表为空说明站点虽然活着但服务没有正确注册。发布阶段的错误大多能从服务状态里直接看到Startup Error字样比翻日志快得多。运维习惯上我现在的固定动作是每次做完站点配置或服务发布就备份安装目录下的server/usr/etc配置目录到另一块磁盘同时清理超过30天的server/logs日志。这个习惯救过我很多次——配置存储损坏时靠备份几分钟就能恢复站点不需要重装重配。希望这些经验在你部署ArcGIS 10.1 for Server时能少走弯路也希望你的单机服务跑得久、少折腾。本文还有配套的精品资源点击获取