需依次完成JDK 11安装配置、Solr 9.5下载解压、systemd服务创建、8983端口放行及首个Core初始化验证。

如果您需要在宝塔面板中部署 Solr 搜索服务,但尚未安装 Java 运行环境或 Solr 实例,则需依次完成 JDK 安装、Solr 下载解压、服务配置及端口放行等操作。以下是具体实施步骤:
一、安装并配置 JDK 11 环境
JDK 是 Solr 运行的必要依赖,Solr 9.x 要求使用 JDK 11 或更高版本。宝塔默认不预装 JDK,需手动安装并设置系统级环境变量。
1、登录宝塔面板,在左侧菜单点击【软件商店】,搜索“Java”并安装【JDK 11】(推荐使用 OpenJDK 11)。
2、安装完成后,进入【终端】,执行 java -version 验证是否输出包含 “11” 的版本信息。
3、若未识别,编辑全局环境配置文件:echo 'export JAVA_HOME=/www/server/jdk11' >> /etc/profile && echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile && source /etc/profile。
二、下载并解压 Solr 9.5 官方发行包
Solr 9 推荐使用官方二进制分发包,避免源码编译带来的兼容性风险。需选择与 Linux x64 架构匹配的 tar.gz 包,并解压至非 Web 根目录的安全路径。
1、在【终端】中执行:cd /www && wget https://downloads.apache.org/lucene/solr/9.5.0/solr-9.5.0.tgz。
2、解压到独立目录:tar -xzf solr-9.5.0.tgz -C /www && mv /www/solr-9.5.0 /www/solr。
3、修改目录权限,确保 solr 用户可读写:chown -R www:www /www/solr。
三、创建 systemd 服务实现开机自启
为保障 Solr 长期稳定运行,应通过 systemd 托管进程,避免直接前台启动或使用 nohup,同时支持日志追踪与状态管理。
1、创建服务定义文件:vi /etc/systemd/system/solr.service,填入以下内容:
[Unit]
Description=Apache Solr
After=network.target
[Service]
Type=simple
User=www
WorkingDirectory=/www/solr
ExecStart=/www/solr/bin/solr start -force -p 8983 -d /www/solr/server
Restart=on-failure
[Install]
WantedBy=multi-user.target
2、重载服务配置并启用:systemctl daemon-reload && systemctl enable solr && systemctl start solr。
3、检查状态:systemctl status solr,确认显示 active (running)。
四、配置宝塔防火墙与安全组放行 8983 端口
Solr 默认监听 8983 端口,该端口必须对外可访问才能被应用调用。宝塔自带防火墙与云服务器安全组需同步开放。
1、在宝塔面板【安全】页面,点击【放行端口】,输入 8983 并点击【添加】。
2、登录云服务商控制台(如阿里云、腾讯云),进入实例对应的安全组规则,添加入方向规则:协议类型 TCP,端口范围 8983/8983,授权对象 0.0.0.0/0(生产环境建议限制为后端服务器 IP)。
3、验证端口连通性:在浏览器中访问 http://您的服务器IP:8983/solr,应显示 Solr Admin UI 页面。
五、初始化首个 Core 并验证索引功能
Core 是 Solr 中的数据容器,每个 Core 对应一个独立的索引库。需通过命令行创建 Core,并上传 schema 和配置文件以支持中文分词与字段映射。
1、进入 Solr 目录:cd /www/solr。
2、创建名为 mycore 的 Core:bin/solr create -c mycore -n _default。
3、验证 Core 是否注册成功:curl "http://localhost:8983/solr/admin/cores?wt=json",响应中应包含 mycore 名称。
4、向 mycore 提交测试文档:curl "http://localhost:8983/solr/mycore/update/json/docs" --data-binary '{"id":"1","title_s":"测试文档","content_txt":"Solr 在宝塔中已正常运行"}' -H 'Content-type:application/json' && curl "http://localhost:8983/solr/mycore/update?commit=true"。
5、执行查询验证:curl "http://localhost:8983/solr/mycore/select?q=title_s:测试",返回结果中应含 numFound:1。










