欢迎各位兄弟 发布技术文章
这里的技术是共享的
solr版本 最好使用 Solr 4.3.0
Solr是Apache发布的功能强大且功能丰富的搜索平台。将其与Drupal集成可以实现更快,更高级的搜索选项。但是,这也意味着需要在某处安装和运行Solr实例,类似于需要像MySQL这样的数据库。
Solr是一个Java应用程序,可以独立于任何服务器技术运行。但是,/node-admin/17051对于生产环境,通常最好在J2EE服务器环境中运行它,例如Tomcat,Glassfish,JBoss等。本文介绍如何安装Solr 4.3.0以供在Linux上运行在Tomcat 7下的Drupal使用服务器。
Tomcat和Solr都是Java应用程序,因此唯一真正的先决条件是安装Java。安装方法因Linux发行版和Java所需的风格而异。Redhat,CentOS,Debian和Ubuntu都在其软件存储库中提供了Java 7的OpenJDK实现,这里使用了它们。但是,任何Java实现都应该在这里工作。因此,如果需要不同的风格,或者服务器上已经安装了Java,请随意跳过此步骤。请注意,必须安装完整的Java Development Kit(JDK)。Java Runtime Environment(JRE)安装是不够的。
红帽/ CentOS的:
yum install java-1.7.0-openjdk
见 /node-admin/17051 源码编译安装 java1.8
见 /node-admin/17176 yum 安装 java1.8
于Debian / Ubuntu:
aptitude install java7-jdk
一些Linux发行版在其软件存储库中提供了Tomcat包。但是,从Apache Software Foundation安装
最新版本可确保存在所有最新的安全性和错误修复。
它还将所有配置和数据文件合并到一个位置,无论Linux发行版如何,它都可以正常工作。
步骤1:创建一个低权限用户,该用户将用于运行Tomcat服务。
useradd -Mb /usr/local tomcat
步骤2:将最新的Tomcat 7的tar.gz二进制文件从http://tomcat.apache.org/download-70.cgi下载
( https://tomcat.apache.org/download-80.cgi 使用tomcat8吧) 到服务器上的/ usr / local / src /。
步骤3:将Tomcat tar.gz文件解压缩到/ usr / local / tomcat
tar -C /usr/local -zxf /usr/local/src/apache-tomcat-7.*.tar.gz mv /usr/local/apache-tomcat-7.* /usr/local/tomcat
步骤4:默认情况下,Tomcat侦听端口8080.但是,这也是其他服务的常用端口。为避免冲突,请将Tomcat更改为使用端口8983而不是此搜索/替换命令。
sudo sed -i s/8080/8983/g /usr/local/tomcat/conf/server.xml
步骤5:最后,更改Tomcat目录的所有权,并启动它以验证它是否正常工作
chown -R tomcat:tomcat /usr/local/tomcat sudo -u tomcat /usr/local/tomcat/bin/startup.sh
需要注意的是,运行Tomcat需要考虑一些安全隐患。Tomcat安全性超出了本文的范围, 但是有许多可用的资源可用于描述如何强化Tomcat安装,包括由Tomcat项目直接提供的安装,如http://tomcat.apache.org/tomcat- 7.0-doc / security-howto.html。但是,一般来说,
如果此Tomcat实例的唯一用途是提供内部Solr请求, 则使用防火墙阻止外部访问通常就足够了。
见 /node-admin/13308 加入开机启动服务
drupal 后台 使用 120.0.0.1 所以 iptables 这样阻止( iptables -I INPUT -p tcp -m tcp -d 本机外网ip --dport 8983 )
()
某些Linux发行版还在其存储库中提供了Solr包,但它通常是旧版本。就像Tomcat一样,从上游项目安装最新的包是这里使用的方法。
步骤1:从http://lucene.apache.org/solr/
(我是到 http://archive.apache.org/dist/lucene/solr/ 下载 4.9.1 )
下载Solr-4.3.0 到服务器并解压缩下载的文件。
tar -zxf solr-4.3.0.tgz
步骤2:将Solr提供的java库复制到Tomcat库目录
cp solr-4.3.0/dist/solrj-lib/* /usr/local/tomcat/lib/
步骤3:将Solr提供的log4j配置文件复制到Tomcat配置目录
cp solr-4.3.0/example/resources/log4j.properties /usr/local/tomcat/conf/
步骤4:将Solr webapp文件复制到Tomcat webbapp目录
cp solr-4.3.0/dist/solr-4.3.0.war /usr/local/tomcat/webapps/solr.war
步骤5:使用以下内容在/usr/local/tomcat/conf/Catalina/localhost/solr.xml中创建Solr上下文文件。
<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>
Solr只需使用Solr应用程序的一个实例即可提供多个搜索索引或核心。每个核心都是独立配置的,并且只有一个配置文件来定义每个核心。以下步骤显示了如何创建名为drupal的核心。这些步骤可用于创建所需数量的核心,每个核心都具有唯一的名称。
步骤1:创建基本Solr目录,并创建示例配置的副本
mkdir -p /usr/local/tomcat/solr cp -r solr-4.3.0/example/solr/collection1/conf /usr/local/tomcat/solr/
步骤2:从https://drupal.org/project/apachesolr下载最新版本的apachesolr Drupal模块到服务器并解压缩下载的文件。
tar -zxf apachesolr-*.tar.gz
步骤3:将Solr配置文件从Drupal模块复制到上面的示例Solr配置目录。
rsync -av apachesolr/solr-conf/solr-4.x/ /usr/local/tomcat/solr/conf/
步骤4:使用以下内容在/usr/local/tomcat/solr/solr.xml中创建Solr核心定义文件,以定义drupal核心。
<?xml version="1.0" encoding="UTF-8" ?> <solr persistent="false"> <cores adminPath="/admin/cores"> <core name="drupal" instanceDir="drupal" /> </cores> </solr>
步骤5:创建如上定义的drupal Solr核心目录,并将示例Solr配置文件复制到该位置。对于此核心的任何特定要求,可以根据需要进一步修改这些配置文件。
mkdir /usr/local/tomcat/solr/drupal cp -r /usr/local/tomcat/solr/conf /usr/local/tomcat/solr/drupal/
步骤6:停止Tomcat,确保权限正确,并启动Tomcat备份
/usr/local/tomcat/bin/shutdown.sh chown -R tomcat:tomcat /usr/local/tomcat sudo -u tomcat /usr/local/tomcat/bin/startup.sh
新的Solr核心管理界面现在可从http:// localhost:8983 / solr /#/ drupal获得。
http://localhost:8983/manager/html ( solr 可能会有 403 错误 /node-admin/17054,还有登录用户名密码的设置 也见 /node-admin/17054)
可能 solr 无法启动 见 /node-admin/17060
sudo -u tomcat /usr/local/tomcat/bin/shutdown.sh #停止下
sudo -u tomcat /usr/local/tomcat/bin/startup.sh #启动下
在Drupal的Apache Solr配置中使用的URL是http:// localhost:8983 / solr / drupal。
最后的业务顺序是提供一种方法,当服务器重新启动时,Solr可以自动启动。本文附有一个init脚本,
可以见 /node-admin/13308 有大用 有大大用
它将提供完全相同的内容,并且可以与基于Redhat和基于Debian的Linux发行版一起使用。在/etc/init.d/tomcat创建init文件。然后,确保它是可执行的,并使用以下命令将其配置为在重新启动时启动。
chmod +x /etc/init.d/tomcat
红帽/ CentOS的:
chkconfig --add tomcat
于Debian / Ubuntu:
update-rc.d tomcat defaults
如果一切顺利,您将拥有一个有效的Solr搜索服务器。有关将其与Drupal集成的更多信息,您可以访问Drupal.org上的Apache Solr Integration项目。
来自 https://www.lullabot.com/articles/installing-solr-for-use-with-drupal