Гид по технологиям

Как установить Apache‑Solr и подключить его к Drupal и ISPConfig (OpenSUSE/Debian)

• 4 min read • DevOps • Обновлено 23 Nov 2025
Установка Apache Solr для Drupal и ISPConfig
Установка Apache Solr для Drupal и ISPConfig

Кратко

Solr — быстрый и мощный поисковый движок Apache Lucene. В этой инструкции показано, как установить Solr 1.4.1, подключить его к модулю ApacheSolr в Drupal и запускать через init-скрипт на OpenSUSE/Debian. Приведены команды, конфигурационные файлы и типичные решения проблем.

Важно: это руководство предполагает, что Drupal уже установлен и вы работаете под root или через sudo.

Что вам понадобится

  • Сервер под OpenSUSE или Debian с правами root/sudo.
  • Установленный Drupal (инструкция по установке Drupal не входит в этот документ).
  • Доступ через терминал и возможность открывать порт 8983 в брандмауэре ISPConfig.
  • Java (рекомендуемая версия, совместимая с Solr 1.4.1, в оригинале — Java 1.5).

Подготовка файлов .htaccess

В корне вашего Drupal установите этот файл .htaccess (замените существующий, если нужно):

    
RewriteEngine on  
#RewriteBase /    
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_FILENAME} !-d    
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]    
#RewriteCond %{REQUEST_URI} !=/favicon.ico  

В каталоге /web/sites/default/files откройте .htaccess и закомментируйте строки, как указано:

#SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006  
#Options None

Примечание: не удаляйте файл .htaccess целиком — закомментируйте только указанные строки.

Установка PHP-расширений, необходимых Drupal

Выполните на сервере (как root или через sudo):

pecl install uploadprogress  
pecl install json  
pecl install apc  
pecl install -n solr-beta

Откройте php.ini вашего Apache:

nano -w /etc/php5/apache2/php.ini

Добавьте (или убедитесь, что присутствуют) следующие строки, чтобы расширения загружались с PHP:

; Directory in which the loadable extensions (modules) reside.  
extension_dir = /usr/lib64/php5/extensions  
extension=uploadprogress.so  
extension=apc.so  
extension=solr.so

Сохраните и перезапустите веб-сервер:

/etc/init.d/apache2 restart

Важно: пути к расширениям и php.ini могут отличаться в зависимости от дистрибутива — проверьте их перед изменением.

Установка и запуск Apache‑Solr 1.4.1

Скачиваем и распаковываем Solr (пример для версии 1.4.1 из зеркала Apache):

cd /tmp  
wget http://mirrors.ukfast.co.uk/sites/ftp.apache.org/lucene/solr/1.4.1/apache-solr-1.4.1.zip  
unzip apache-solr-1.4.1.zip  
mv apache-solr-1.4.1 apache-solr  
cp -r apache-solr /usr/share/apache-solr

Скопируйте конфигурацию из модуля apachesolr вашего Drupal в конфигурацию Solr (пути в примере указаны для оригинальной установки автора):

cp /srv/www/web11/web/sites/all/modules/apachesolr/solrconfig.xml /usr/share/apache-solr/example/solr/conf/solrconfig.xml  
cp /srv/www/web11/web/sites/all/modules/apachesolr/schema.xml /usr/share/apache-solr/example/solr/conf/schema.xml

Запуск Solr вручную (для теста):

cd apache-solr/example  
java -jar start.jar

Откройте в браузере (не забудьте открыть порт 8983 в брандмауэре ISPConfig):

http://yourwebsite.com:8983/solr/admin/

Если страница доступна — тест успешен. Для остановки запущенного процесса нажмите Ctrl+C в терминале.

Автозапуск Solr при старте системы

Создайте init-скрипт:

nano -w /etc/init.d/solr

Вставьте следующий скрипт (в файл скопируйте точно как ниже):

#!/bin/sh -e  
  
# Starts, stops, and restarts solr  
  
SOLR_DIR="/usr/share/apache-solr/example"  
JAVA_OPTIONS="-Xmx1024m -DSTOP.PORT=8079 -DSTOP.KEY=stopkey -jar start.jar"  
LOG_FILE="/var/log/solr.log"  
JAVA="/usr/bin/java"  
  
case $1 in  
    start)  
        echo "Starting Solr"  
        cd $SOLR_DIR  
        $JAVA $JAVA_OPTIONS 2> $LOG_FILE &  
        ;;  
    stop)  
        echo "Stopping Solr"  
        cd $SOLR_DIR  
        $JAVA $JAVA_OPTIONS --stop  
        ;;  
    restart)  
        $0 stop  
        sleep 1  
        $0 start  
        ;;  
    *)  
        echo "Usage: $0 {start|stop|restart}" >&2  
        exit 1  
        ;;  
esac

Сделайте скрипт исполняемым:

chmod a+rx /etc/init.d/solr

Проверьте список сервисов и добавьте solr в автозагрузку:

chkconfig --list
chkconfig --add solr

Запуск/остановка через сервис:

service solr stop
service solr start

Проверьте в браузере:

http://yourdomain.com:8983/solr/admin/

Если всё верно — вы увидите интерфейс Solr.

Типичные проблемы и их решения

  • Solr не стартует: проверьте версию Java и логи /var/log/solr.log. Solr 1.4.1 чувствителен к версии JVM — в оригинале использовалась Java 1.5.
  • Порт 8983 недоступен: откройте порт в ISPConfig/iptables/ufw и проверьте, что нет локального firewall, блокирующего доступ.
  • Drupal не индексирует: убедитесь, что модуль ApacheSolr настроен и URL Solr в настройках модуля совпадает с http://localhost:8983/solr/ или нужным вам адресом.
  • Ошибки схемы: если Solr жалуется на поля, проверьте schema.xml, который скопирован из модуля apachesolr — он должен соответствовать полям, которые отправляет Drupal.

Важно: не удаляйте оригинальные конфигурационные файлы без их резервного копирования.

Альтернативные подходы

  • Использовать системные пакеты вашего дистрибутива (apt/yum/zypper) для установки Solr, если доступны — это упростит обновления и автозапуск.
  • Запускать Solr в Docker-контейнере — упрощает изоляцию и совместимость Java-версий.
  • Рассмотреть SolrCloud для распределённого поиска и высокой доступности, если нужно масштабирование.

Безопасность и эксплуатация

  • Закройте доступ к интерфейсу администратора Solr (8983) извне — используйте проксирование через Apache/Nginx с базовой аутентификацией или настройте firewall.
  • Резервное копирование: сохраняйте конфигурации solrconfig.xml и schema.xml отдельно и храните копии вместе с дампами Drupal.
  • Ограничьте память JVM через -Xmx*, чтобы избежать OOM на серверах с ограниченными ресурсами.

Контрольные списки по ролям

Системный администратор:

  • Проверить Java (совместимую версию).
  • Установить Solr и init-скрипт.
  • Открыть порт 8983 только для админов или проксировать через SSL.

Разработчик Drupal:

  • Установить модуль ApacheSolr в Drupal.
  • Скопировать solrconfig.xml и schema.xml из модуля в конфигурацию Solr.
  • Запустить полную переиндексацию после настройки.

Мини‑методология быстрого развертывания (шаги)

  1. Установить Java и проверить java -version.
  2. Установить PHP-расширения (PECL) и обновить php.ini.
  3. Скачать и развернуть Solr, скопировать конфиги из модуля Drupal.
  4. Запустить Solr вручную и проверить http://host:8983/solr/admin.
  5. Создать init-скрипт, добавить в автозапуск, настроить firewall и прокси.

Краткий словарь

  • Solr — поисковый сервер на базе Apache Lucene.
  • schema.xml — схема полей и типов данных для индекса.
  • solrconfig.xml — конфигурация поведения Solr (кеши, обработчики запросов).

Совместимость и примечания

  • Версия Solr 1.4.1 устарела; для новых проектов рассмотрите современные версии Solr или SolrCloud.
  • Путь к php.ini и extension_dir может отличаться между OpenSUSE и Debian — проверьте перед изменением.
  • Если используете ISPConfig, настройте правила брандмауэра так, чтобы админ-доступ был ограничен.

Итог

Это практическое руководство покрывает базовую установку Apache‑Solr 1.4.1, интеграцию с модулем ApacheSolr для Drupal и организацию автозапуска через init-скрипт. После выполнения шагов у вас должен работать локальный Solr, готовый принимать документы от Drupal.

Ключевые действия: установить Java и PHP-расширения, скопировать solrconfig.xml и schema.xml из модуля ApacheSolr, протестировать запуск через java -jar start.jar, затем создать init-скрипт и добавить сервис в автозагрузку.

Примечание

Если вы планируете промышленное использование или масштабирование, обновите Solr до современной поддерживаемой версии и рассмотрите SolrCloud или облачные сервисы поиска.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро