使用Solr与TYPO3在Debian Wheezy

使用Solr与TYPO3在Debian Wheezy

TYPO3的默认搜索扩展名为“索引搜索”对于小型网站是适用的,但如果您的网站更大(> 500页),则变得非常慢。 幸运的是,您可以用使用超快速Apache Solr搜索服务器的搜索扩展名替换它。 本教程将介绍如何在Debian Wheezy上使用Apache Solr与TYPO3。

我不会保证这将为您工作!

1初步说明

在本教程中,我使用两个服务器:

  • server1.example.com (IP: 192.168.0.100 ):安装了TYPO3 4.7简介包的Web服务器(在www.example.com vhost中)。
  • server2.example.com (IP: 192.168.0.101 ):单独的服务器,我将安装Apache Solr。

当然,可以在与Web服务器相同的系统上安装Solr; 不过,我想分开这两个服务,以免他们影响对方的表现。

2安装Solr

server2.example.com:

首先安装Java:

apt-get install openjdk-6-jdk openjdk-6-jre unzip
update-alternatives --config java
update-alternatives --config javac

TYPO3项目提供了一个Solr安装脚本,我们下载如下:

wget http://forge.typo3.org/projects/extension-solr/repository/revisions/master/raw/resources/shell/install-solr.sh
chmod 755 install-solr.sh

接下来,检查当前的Apache Tomcat 6版本是通过访问http://tomcat.apache.org/download-60.cgi 。 在撰写本文时,是6.0.37。 现在打开install-solr.sh ...

vi install-solr.sh

...并确保TOMCAT_VER变量保存正确的版本号 - 如有必要,更改它:

[...]
TOMCAT_VER=6.0.37
[...]

现在我们安装Solr。 默认情况下(如果您不提供任何语言作为参数),Solr仅安装了英文语言支持; 如果您需要更多语言的支持,只需将其附加到命令中,例如:

./install-solr.sh german english french

这将安装一个Tomcat服务器(其中运行Solr)和Solr。 默认情况下,Tomcat只监听127.0.0.1 ; 因为我们要从远程主机访问Solr,所以我们必须配置Tomcat监听所有接口,因此我们将/ var / solc/conf/server.xml中的0.0.0.0替换 127.0.0.1

vi /opt/solr-tomcat/tomcat/conf/server.xml
[...]
    <Connector port="8080" protocol="HTTP/1.1"
               maxHttpHeaderSize="65536"
               connectionTimeout="20000"
               redirectPort="8443"
               address="0.0.0.0"
               URIEncoding="UTF-8" />
[...]

重新启动Tomcat:

/opt/solr-tomcat/tomcat/bin/shutdown.sh
/opt/solr-tomcat/tomcat/bin/startup.sh

接下来我们可以在Solr中配置内核。 默认情况下,英文核心已经配置好了; 如果您需要更多语言,可以将它们添加到/opt/solr-tomcat/solr/solr.xml中 ,例如:

vi /opt/solr-tomcat/solr/solr.xml
<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
        <cores adminPath="/admin/cores" shareSchema="true">
                <core name="core_en" instanceDir="typo3cores" schema="english/schema.xml" dataDir="data/core_en" />
                <core name="core_de" instanceDir="typo3cores" schema="german/schema.xml" dataDir="data/core_de" />
                <core name="core_fr" instanceDir="typo3cores" schema="french/schema.xml" dataDir="data/core_fr" />
        </cores>
</solr>

重新启动Solr之后:

/opt/solr-tomcat/tomcat/bin/shutdown.sh
/opt/solr-tomcat/tomcat/bin/startup.sh

因为我们不想在每次启动服务器时手动启动Tomcat,所以我们可以将Tomcat启动命令添加到/etc/rc.local中

vi /etc/rc.local
[...]
/opt/solr-tomcat/tomcat/bin/startup.sh
[...]

2.1添加验证到Solr

因为Solr正在监听所有接口,所以添加身份验证是个好主意。 我现在将配置用户user1与英文内核的密码密码。

打开/opt/solr-tomcat/tomcat/conf/web.xml ...

vi /opt/solr-tomcat/tomcat/conf/web.xml

...并在<web-app>容器中的某个地方添加以下部分:

[...]
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Solr authenticated application</web-resource-name>
      <url-pattern>/core_en/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>role1</role-name>
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Admin and Update protection</realm-name>
  </login-config>
[...]

如您所见,这仅适用于英文核心( <url-pattern> / core_en / * </ url-pattern> ),并且我已将其配置为角色role1 ,因此有效用户必须属于该角色。 要将用户user1及其密码添加到该角色,请打开/opt/solr-tomcat/tomcat/conf/tomcat-users.xml ...

vi /opt/solr-tomcat/tomcat/conf/tomcat-users.xml

...并在<tomcat-users>容器中添加以下部分:

[...]
  <role rolename="role1"/>
  <user username="user1" password="secret" roles="role1"/>
[...]

之后重启Tomcat:

/opt/solr-tomcat/tomcat/bin/shutdown.sh
/opt/solr-tomcat/tomcat/bin/startup.sh

您现在可以打开一个浏览器,并访问Solr http://192.168.0.101:8080/solr ,您应该看到所有配置的内核:

当您访问英文核心(我们刚刚配置身份验证)时,应询问用户名和密码:

验证成功后,您应该看到以下页面,这意味着Solr正在成功运行:

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏