跳转到主要内容
phpartisan 提交于 5 May 2015

本篇介绍如何在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的首页.

screenshot_from_2015-05-05_231320.png

右上方的三个按钮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按钮,在弹出扽提示框内输入你之前设置的用户名和密码.你会看到下图.,

screenshot_from_2015-05-05_235455.png

注意上图中最后一个是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链接后,会显示下图.

screenshot_from_2015-05-06_001702.png

solr已经在tomcat下正式启动,注意左边的core Select下拉菜单里,你的环境可能还是空的,我会在一下篇幅里介绍如何创建和drupal互动的core(即索引库).

 

Drupal 版本