Поиск на Drupal 7 с помощью Apache Solr ч.6 — настраиваем apache solr + tomcat

от автора


После долгого перерыва, я решил написать очередную статью об apache solr и drupal. В этот раз речь пойдёт о настройке tomcat для того, чтобы apache solr мог работать, как демон. В интернете уже есть много разных мануалов по настройке tomcat, но не всегда они подходят для работы с drupal. В частности я настраивал tomcat и apache solr работал прекрасно. Но после того, как я подменил стандартные конфиги солра на конфиги друпала, солр перестал работать (начали вылетать java эксепшены).

Итак перейдем к делу.

Моя конфигурация

Ubuntu server 12.04
Apache solr 3.6.1
Drupal 7
Модули для поиска — search api и search_api_solr

А теперь установка

Устанавливаем tomcat

sudo apt-get install tomcat6 

Скачиваем и распаковываем apache solr во временную директорию

mkdir /tmp/solr/   cd /tmp/solr/  wget http://archive.apache.org/dist/lucene/solr/3.6.1/apache-solr-3.6.1.tgz  tar xzvf apache-solr-3.6.1.tgz 

Затем создаем директорию в которой будет работать на сервер Apache solr и копируем туда необходимые файлы

sudo mkdir /var/solr  Копируем war файл sudo cp apache-solr-3.6.1/dist/apache-solr-3.6.1.war /var/solr/solr.war  Примеры ядер и конфиг для использования нескольких ядер. sudo cp -R apache-solr-3.6.1/example/multicore/* /var/solr/  sudo chown -R tomcat6 /var/solr/ 

Связываем tomcat с нашим сервером Apache solr

echo -e '<Context docBase="/var/solr/solr.war" debug="0" privileged="true" allowLinking="true" crossContext="true">\n<Environment name="solr/home" type="java.lang.String" value="/var/solr" override="true" />\n</Context>' | sudo tee -a /etc/tomcat6/Catalina/localhost/solr.xml  echo 'TOMCAT6_SECURITY=no' | sudo tee -a /etc/default/tomcat6 

Теперь в файле /etc/init.d/tomcat6 необходимо указать домашнюю директорию solr — /var/solr. Для этого редактируем параметр JAVA_OPTS

sudo nano /etc/init.d/tomcat6 

И выставляем там:

if [ -z "$JAVA_OPTS" ]; then         JAVA_OPTS="$JAVA_OPTS -Dsolr.home=/var/solr" fi 

После этого перезагружаем tomcat:

sudo /etc/init.d/tomcat6 restart 

Убеждаемся что все работает, для этого можно перейти по урлу localhost:8080/solr/

В случае успеха, вы должны увидеть примерно такую картинку

По умолчанию уже есть два ядра, но для того чтобы можно было использовать конфиг и схему из search_api для друпала, создадим новое ядро.
Сперва вписываем его в /var/solr/solr.xml

В конце файла описаны ядра, в моем случае, после добавления ядра, конфиг выглядит следующим образом:

<solr persistent="false">    <!--   adminPath: RequestHandler path to manage cores.       If 'null' (or absent), cores will not be manageable via request handler   -->   <cores adminPath="/admin/cores">     <core name="core0" instanceDir="core0" />     <core name="core1" instanceDir="core1" />     <core name="drupal" instanceDir="drupal" />   </cores> </solr> 

Затем копируем файлы из скачанного apache solr для нашего ядра которое будет работать с Drupal.

sudo mkdir /var/solr/drupal  sudo cp -R /tmp/solr/apache-solr-3.6.1/example/solr/* /var/solr/drupal 

Кладем туда конфиг и схему из модуля search_api_solr

Снова перезагружаем tomcat командой

sudo /etc/init.d/tomcat6 restart 

Устанавливаем настройки солра в Drupal

Теперь индексируем контент и наслаждаемся работой поиска!

ссылка на оригинал статьи http://habrahabr.ru/post/189840/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *