Solr и TYPO3 · 3 min read · Dec 27, 2025

Использование Solr с TYPO3 на Debian Squeeze

Использование Solr с TYPO3 на Debian Squeeze

Версия 1.0
Автор: Фалко Тимме
Следите за мной в Twitter

Расширение поиска по умолчанию TYPO3, называемое “Индексированный поиск”, подходит для небольших веб-сайтов, но если ваш веб-сайт больше (> 500 страниц), он становится очень медленным. К счастью, вы можете заменить его на расширение поиска, которое использует ультра-быстрый сервер поиска Apache Solr. Этот учебник объясняет, как использовать Apache Solr с TYPO3 на Debian Squeeze.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

В этом учебнике я использую два сервера:

  • server1.example.com (IP: 192.168.0.100): веб-сервер, на котором установлен пакет TYPO3 4.7 Introduction (в vhost www.example.com).
  • server2.example.com (IP: 192.168.0.101): отдельный сервер, на котором я установлю Apache Solr.

Конечно, возможно установить Solr на той же системе, что и веб-сервер; однако я хотел бы разделить оба сервиса, чтобы они не влияли на производительность друг друга.

2 Установка Solr

server2.example.com:

Откройте /etc/apt/sources.list…

vi /etc/apt/sources.list

… и убедитесь, что у вас включены репозитории contrib и non-free:

| deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.de.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free deb http://ftp.de.debian.org/debian/ squeeze-updates main contrib non-free deb-src http://ftp.de.debian.org/debian/ squeeze-updates main contrib non-free |

Обновите базу данных пакетов…

apt-get update

… и установите Java:

apt-get install sun-java6-bin sun-java6-jdk sun-java6-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

Теперь мы устанавливаем Solr. По умолчанию (если вы не укажете языки в качестве параметров) Solr устанавливается с поддержкой только английского языка; если вам нужна поддержка других языков, просто добавьте их к команде, например, так:

./install-solr.sh german english french

Это устанавливает сервер Tomcat (на котором работает Solr) и Solr. По умолчанию Tomcat слушает только на 127.0.0.1; поскольку мы хотим получить доступ к Solr с удаленного хоста, мы должны настроить Tomcat на прослушивание на всех интерфейсах, поэтому мы заменяем 127.0.0.1 на 0.0.0.0 в /opt/solr-tomcat/tomcat/conf/server.xml:

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

| [...] [...] |

Перезапустите 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

| |

Перезапустите 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 с паролем secret для английского ядра.

Откройте /opt/solr-tomcat/tomcat/conf/web.xml…

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

… и добавьте следующий раздел где-то внутри контейнера :

| [...] Solr authenticated application /core_en/* role1 BASIC Admin and Update protection [...] |

Как вы видите, это действительно для английского ядра только ( /core_en/*), и я настроил это для роли role1, поэтому действительные пользователи должны принадлежать этой роли. Чтобы добавить пользователя user1 с его паролем в эту роль, откройте /opt/solr-tomcat/tomcat/conf/tomcat-users.xml…

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

… и добавьте следующий раздел внутри контейнера :

| [...] [...] |

Перезапустите Tomcat после этого:

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

Теперь вы можете открыть браузер и посетить Solr по адресу http://192.168.0.101:8080/solr, где вы должны увидеть все настроенные ядра:

Когда вы посетите английское ядро (для которого мы только что настроили аутентификацию), вас должны попросить ввести имя пользователя и пароль:

После успешной аутентификации вы должны увидеть следующую страницу, что означает, что Solr работает успешно:

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.