需手动部署Solr:一、用yum或apt安装OpenJDK 11并配置JAVA_HOME;二、下载解压Solr 9.6.0至/opt/solr;三、配置systemd服务实现开机自启;四、宝塔放行8983端口并设反向代理;五、创建mycollection Core并验证Admin界面与查询功能。

如果您希望在宝塔面板环境中快速部署Solr搜索引擎服务,则需绕过宝塔官方软件商店的限制,采用手动编译或脚本部署方式。以下是实现此目标的具体操作步骤:
一、通过Shell命令安装JDK环境
Solr依赖Java运行时环境,宝塔面板默认不预装JDK,必须先配置兼容版本(推荐OpenJDK 11或Oracle JDK 8)。该步骤确保后续Solr可正常启动与加载核心类库。
1、登录宝塔面板,在左侧菜单栏点击【终端】进入SSH命令行界面。
2、执行命令安装OpenJDK 11:yum install -y java-11-openjdk-devel(CentOS/RHEL)或apt install -y openjdk-11-jdk(Ubuntu/Debian)。
3、验证安装结果:java -version,输出应包含“11”且无错误提示。
4、设置JAVA_HOME环境变量:编辑/etc/profile文件,末尾添加两行:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk与export PATH=$JAVA_HOME/bin:$PATH,然后执行source /etc/profile生效。
二、下载并解压Solr二进制包
直接获取Apache官方发布的稳定版Solr压缩包,避免使用第三方打包镜像,防止权限或路径异常导致服务无法初始化。
1、切换至/opt目录:cd /opt。
2、使用wget下载Solr 9.6.0(以当前最新稳定版为例):wget https://downloads.apache.org/lucene/solr/9.6.0/solr-9.6.0.tgz。
3、解压至当前目录:tar xzf solr-9.6.0.tgz。
4、重命名解压目录便于管理:mv solr-9.6.0 solr。
三、配置Solr服务为系统守护进程
将Solr注册为systemd服务,使其支持开机自启、状态监控及日志统一管理,替代手动执行bin/solr脚本的临时方式。
1、创建服务定义文件:nano /etc/systemd/system/solr.service。
2、写入以下内容(注意替换/opt/solr为实际安装路径):[Unit]\nDescription=Apache Solr\nAfter=network.target\n[Service]\nType=simple\nUser=root\nWorkingDirectory=/opt/solr\nExecStart=/opt/solr/bin/solr start -f -p 8983\nRestart=on-failure\nRestartSec=10\n[Install]\nWantedBy=multi-user.target。
3、重载systemd配置:systemctl daemon-reload。
4、启用并启动服务:systemctl enable solr && systemctl start solr。
四、在宝塔面板中开放Solr端口并绑定域名(可选)
若需通过域名访问Solr Admin界面,需在宝塔防火墙与反向代理模块中完成端口放行和请求转发,避免直接暴露8983端口。
1、进入宝塔面板【安全】页面,点击【放行端口】,输入8983并保存。
2、在【网站】中添加新站点,绑定目标域名(如solr.example.com),不创建根目录。
3、点击该站点右侧【设置】→【反向代理】→【添加反向代理】,目标URL填写http://127.0.0.1:8983,提交后启用代理。
4、检查SSL选项是否已启用,确保HTTPS访问正常;若未自动签发证书,可手动申请Let's Encrypt。
五、初始化首个Solr Core并验证服务状态
创建一个测试Core用于确认Solr服务已正确加载索引结构与HTTP接口,排除配置残留或权限拒绝问题。
1、执行Core创建命令:/opt/solr/bin/solr create -c mycollection -n _default。
2、等待输出显示“Created core ‘mycollection’”,表示Core初始化成功。
3、访问http://服务器IP:8983/solr或绑定域名,确认Solr Admin控制台可正常加载。
4、在Admin界面左侧选择mycollection,点击【Query】标签页,执行默认查询:q=*:*,返回JSON响应中包含“numFound”:0即表示服务通信正常。










