本篇介绍如何在Drupal中搭建Apache Solr搜索引擎.
【相关环境】
- Apache Solr 4.10.x
- Tomcat 7
- ubuntu 14.04或CentOS6.x
- Drupal 7
- apachesolr模块
- jdk1.7.x
【安装JDK】
CentOS
yum install java-1.7.0-openjdk
Ubuntu
aptitude install java7-jdk
【安装Tomcat7】
官方网站下载链接: http://tomcat.apache.org/download-70.cgi
cd /usr/local/src wget http://apache.dataguru.cn/tomcat/tomcat-7/v7.0.61/bin/apache-tomcat-7.0.61.tar.gz tar xvf apache-tomcat-7.0.61.tar.gz mv apache-tomcat-7.0.61 /usr/local/tomcat
上述命令行中的tomcat地址和版本可根据实际情况改变,我这里是把tomcat7下载到/usr/local/src路径并解压到/usr/local/tomcat.
--增加tomcat系统用户
useradd -Mb /usr/local tomcat chown -R tomcat:tomcat /usr/local/tomcat
--修改默认端口(我这里把tomcat的端口从8080改成8983,此项操作可选,但是你要知道将来Drupal如何访问他的端口)
sed -i s/8080/8983/g /usr/local/tomcat/conf/server.xml
--启动Tomcat
sudo -u tomcat /usr/local/tomcat/bin/startup.sh
我这里并没有把tomcat设置为系统服务,如果希望设置为开机自动启动,可以自行搜索,网上都有他的自动启动脚本.
上述步骤如果顺利,你可以在浏览器中输入 <http://你的域名或服务器ip:端口号> ,会看到tomcat的启动画面.
这里如果无法显示有可能是你的系统防火墙屏蔽了该端口,特别是在Centos下.可以使用以下命令开启访问tomcat的端口
iptables -A INPUT -p tcp -m tcp --dport 8983 -j ACCEPT service iptables save
命令中的8983可改成你自己的tomcat端口号.如果还是无法访问tomcat,那就关闭centos的防火墙,没有什么大不了的.
service iptables off
截图是tomcat的首页.
右上方的三个按钮Server Status, Manager App, HostManager.是访问Tomcat后台页面,目前状态下点击会提示你无权限访问,我们需要对tomcat设置一下访问权限的帐号.
--设置tomcat的后台访问权限
vim /usr/local/tomcat/conf/tomcat-users.xml
进入了Tomcat 的设置文件夹,不出意外你会看到tomcat-users.xml这个文件.我们对他修改.
大改在30行开始,会有范例.
我们按照这个范例,在最后一行的</tomcat-users>上面加一行,如下.
<user username="用户名" password="密码" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>
上面的用户名和密码写成你自己的.然后保存这个文件,我们重启tomcat.
sudo -u tomcat /usr/local/tomcat/bin/shutdown.sh sudo -u tomcat /usr/local/tomcat/bin/startup.sh
浏览器中访问tomcat首页的Manager App按钮,在弹出扽提示框内输入你之前设置的用户名和密码.你会看到下图.,
注意上图中最后一个是solr,目前是true状态,不过你现在还看不到它,接下来我们需要solr整合到tomcat中,让他出现并运行.
【安装solr4.10.x】
由于apache solr版本更新很快,而drupal的solr模块相对更新较慢,我们选择solr4.10.x系列,至少在我们的环境中没有发现他和drupal的solr模块有不兼容问题.
官网地址:http://lucene.apache.org/solr/mirrors-solr-latest-redir.html
cd /usr/local/src wget http://apache.dataguru.cn/lucene/solr/4.10.4/solr-4.10.4.tgz tar xvf solr-4.10.4.tgz yes | cp -a solr-4.10.4/dist/solrj-lib/* /usr/local/tomcat/lib/ yes | cp -a solr-4.10.4/example/resources/log4j.properties /usr/local/tomcat/conf/ yes | cp -a solr-4.10.4/dist/solr-4.10.4.war /usr/local/tomcat/webapps/solr.war yes | cp -a solr/example/lib/ext/* /usr/local/tomcat7/lib
上述是把solr下载并解压到 /usr/local/src下,并把它的dist/solrj-lib/下的所有文件拷贝到/usr/local/tomcat/lib/,同时我们把它的example/resources/log4j.properties拷贝到/usr/local/tomcat/conf/, dist/solr-4.10.4.war 拷贝到/usr/local/tomcat/webapps/并改名为solr.war.
--安装Apache Solr context 文件
vi /usr/local/tomcat/conf/Catalina/localhost/solr.xml
我们用vi创建这个文件并开始输入一下内容后保存.
<Context docBase="/usr/local/tomcat/webapps/solr.war" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="/usr/local/tomcat/solr" override="true" /> </Context>--重启tomcat
sudo -u tomcat /usr/local/tomcat/bin/shutdown.sh sudo -u tomcat /usr/local/tomcat/bin/startup.sh
此时在进入之前的截图画面你就会看到solr已经出现,并处于他true状态.单击solr链接后,会显示下图.
solr已经在tomcat下正式启动,注意左边的core Select下拉菜单里,你的环境可能还是空的,我会在一下篇幅里介绍如何创建和drupal互动的core(即索引库).