Unixodbc centos 7 настройка

Обновлено: 01.07.2024

Sphinx – это производительная и простая система для полнотекстового поиска с открытым исходным кодом. Sphinx может искать данные в любых источниках: в базах SQL, текстовых и HTML-файлах, почтовых ящиках, и т.д.

Основные функции Sphinx:

  • Высокопроизводительная индексация и поиск;
  • Продвинутые инструменты индексации и запросов;
  • Продвинутая постобработка;
  • Масштабируемость до миллиардов документов, терабайтов данных и тысяч запросов в секунду;
  • Простая интеграция с источниками данных SQL и XML и поисковыми интерфейсами SphinxQL, SphinxAPI или SphinxSE;
  • Распределенный поиск.

Данное руководство поможет установить Sphinx и настроить поисковую систему для взаимодействия с MySQL.

Требования

  • Настроенный сервер CentOS 7.
  • Не-root пользователь с доступом к sudo (о создании такого пользователя можно прочитать в руководстве по начальной настройке).
  • Предварительно установленный сервер MySQL (инструкции по установке можно найти в соответствующем разделе этого руководства).

1: Установка Sphinx

На момент написания статьи последней стабильной версией Sphinx является 2.2.11.

Примечание: Отслеживать версии можно здесь.

Прежде чем установить Sphinx на сервер, нужно установить зависимости программы:

sudo yum install -y postgresql-libs unixODBC

Перейдите в каталог tmp, чтобы загрузить файлы Sphinx.

Загрузите последнюю версию Sphinx:

sudo yum install -y sphinx-2.2.11-1.rhel7.x86_64.rpm

Поисковая система Sphinx успешно установлена на сервер. После установки Sphinx нуждается в дополнительной настройке.

2: Создание тестовой базы данных

Создайте базу данных с помощью образца файла SQL, который поставляется вместе с пакетом. Для этого нужно импортировать этот SQL-файл в базу данных.

Войдите в оболочку MySQL:

Введите root-пароль MySQL, после чего командная строка изменится:

Создайте БД (в данном руководстве она называется test):

CREATE DATABASE test;

Затем закройте оболочку MySQL:

Теперь БД test заполнена данными из импортированного файла.

3: Настройка Sphinx

Конфигурации Sphinx должны храниться в файле sphinx.conf в каталоге /etc/sphinxsearch. Они состоят из трёх основных блоков: index, searchd и source.

В файле по умолчанию предусмотрена минимальная конфигурация. Но лучше создать новый конфигурационный файл.

Переместите конфигурационный файл по умолчанию, sphinx.conf:

sudo mv /etc/sphinx/sphinx.conf /etc/sphinx/sphinx.conf2

Создайте новый sphinx.conf в текстовом редакторе:

sudo vi /etc/sphinx/sphinx.conf

Примечание: После описания каждого блока настроек можно найти полный код для sphinx.conf.

Блок source содержит тип источника данных, имя пользователя и пароль MySQL. Первый столбец sql_query должен содержать уникальный ID. Запрос SQL будет выполняться для каждого индекса, а затем передавать данные в индексный файл Sphinx. Блок source состоит из таких полей:

  • type: тип источника данных. В данном случае это mysql (также система поддерживает типы pgsql, mssql, xmlpipe2, odbc и т.д.).
  • sql_host: имя хоста MySQL; в данном случае это localhost. В это поле нужно внести домен или IP-адрес.
  • sql_user: имя пользователя MySQL (в данном случае это root).
  • sql_pass: пароль MySQL.
  • sql_db: имя БД, в которой хранятся нужные данные (в этом руководстве – test).
  • sql_query: запрос, который сбрасывает данные в индексный файл.

Блок source выглядит так:

Блок index содержит данные об источнике и путь к местонахождению данных.

  • source: имя блока source. В данном случае это src1.
  • path: путь к индексному файлу.

Этот блок выглядит так:

index test1
source = src1
path = /var/lib/sphinx/test1
docinfo = extern
>

Блок searchd содержит порты и переменные для запуска демона Sphinx.

Ниже приведены все конфигурации файла sphinx.conf. Вы можете просто скопировать и вставить их в свой файл. Единственная переменная, которую нужно отредактировать – это sql_pass в блоке source; укажите в ней свой пароль mysql.

source src1
type = mysql
sql_host = localhost
sql_user = root
sql_pass = your_root_mysql_password
sql_db = test
sql_port = 3306
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
>
index test1
source = src1
path = /var/lib/sphinx/test1
docinfo = extern
>
searchd
listen = 9306:mysql41
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
binlog_path = /var/lib/sphinx/
>

Больше конфигураций можно найти в файле /etc/sphinxsearch/sphinx.conf.sample, который содержит подробное описание всех переменных.

4: Управление индексом

В данном разделе показано, как добавить данные в индекс Sphinx, и обновить индекс с помощью cron.

Чтобы добавить данные в индекс, используется только что созданный конфигурационный файл.

sudo indexer --all

Команда должна вернуть:

В среде производства нужно постоянно поддерживать индекс в актуальном состоянии. Для этого создайте cronjob. Откройте crontab:

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

@hourly /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all

Теперь поисковая система Sphinx готова к запуску.

5: Запуск Sphinx

Чтобы запустить демон Sphinx, используйте systemctl.

sudo systemctl start searchd

Убедитесь, что демон Sphinx запущен:

sudo systemctl status searchd

Команда должна вернуть:

6: Тестирование поиска

Теперь попробуйте найти данные с помощью Sphinx. Подключитесь к SphinxQL с помощью интерфейса MySQL (командная строка изменится на mysql>).

Попробуйте найти предложение:

SELECT * FROM test1 WHERE MATCH('test document'); SHOW META;

Как видите, система Sphinx обнаружила два совпадения из индекса test1. Команда SHOW META; показывает соответствия каждого ключевого слова в предложении.

Попробуйте выполнить поиск по ключевым словам:

CALL KEYWORDS ('test one three', 'test1', 1);

В индексе test1 система Sphinx нашла:

  • 5 совпадений в 3 документах для ключа test.
  • 2 совпадения в 1 документе для ключа one.
  • 0 совпадений в 0 документах для ключа three.

Теперь можно удалить тестовую БД Sphinx:

DROP DATABASE test;

Закройте оболочку MySQL:

Заключение

Данное руководство помогает установить Sphinx и выполнить простой поиск данных с помощью SphinxQL и MySQL.

По этой ссылке можно найти реализации Sphinx API для PHP, Perl, Python, Ruby и Java.

Пользователи Nodejs могут найти пакет SphinxAPI по этой ссылке.

Sphinx позволяет добавить пользовательский поиск на сайт. Более подробную информацию по использованию Sphinx можно найти на сайте проекта.

В этой статье объясняется, как установить Microsoft ODBC Driver for SQL Server в Linux. В ней также содержатся инструкции для необязательных средств командной строки для SQL Server ( bcp и sqlcmd ) и заголовков разработки unixODBC.

В этой статье приведены команды для установки драйвера ODBC из оболочки bash. Сведения о том, как загрузить пакеты напрямую, см. в разделе Скачивание драйвера ODBC Driver for SQL Server.

Microsoft ODBC 17

В следующих разделах объясняется, как установить драйвер Microsoft ODBC 17 из оболочки bash в различных дистрибутивах Linux.

Если вы установили пакет msodbcsql версии 17, который был доступен непродолжительное время, его следует удалить перед установкой пакета msodbcsql17 . Это позволит избежать конфликтов. Пакет msodbcsql17 можно установить параллельно с пакетом msodbcsql версии 13.

Alpine Linux

Для поддержки Alpine требуется драйвер версии 17.5 или более поздней.

Debian

Вместо настройки переменной среды ACCEPT_EULA вы можете создать переменную debconf с именем "msodbcsql/ACCEPT_EULA": echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections

Red Hat Enterprise Server и Oracle Linux

SUSE Linux Enterprise Server

Ubuntu

Вместо настройки переменной среды ACCEPT_EULA вы можете создать переменную debconf с именем "msodbcsql/ACCEPT_EULA": echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections

Предыдущие версии

В следующих разделах приведены инструкции по установке предыдущих версий драйвера Microsoft ODBC в Linux. Рассматриваются следующие версии драйверов.

ODBC 13.1

В следующих разделах объясняется, как установить драйвер Microsoft ODBC 13.1 из оболочки bash в различных дистрибутивах Linux.

Debian 8

Red Hat Enterprise Server 6

Red Hat Enterprise Server 7

SUSE Linux Enterprise Server 11

SUSE Linux Enterprise Server 12

Ubuntu 15.10

Ubuntu 16.04

Ubuntu 16.10

ODBC 13

В следующих разделах объясняется, как установить драйвер Microsoft ODBC 13 из оболочки bash в различных дистрибутивах Linux.

Red Hat Enterprise Server 6 (ODBC 13)

Red Hat Enterprise Server 7 (ODBC 13)

Ubuntu 15.10 (ODBC 13)

Ubuntu 16.04 (ODBC 13)

SUSE Linux Enterprise Server 12 (ODBC 13)

Автономная установка

Если необходимо установить драйвер Microsoft ODBC версии 13 на компьютере без подключения к Интернету, потребуется разрешить зависимости пакетов вручную. Драйвер Microsoft ODBC версии 13 имеет следующие прямые зависимости:

  • Ubuntu: libc6 (>= 2.21), libstdc++6 (>= 4.9), libkrb5-3, libcurl3, openssl, debconf (>= 0.5), unixodbc (>= 2.3.1-1)
  • Red Hat: glibc, e2fsprogs, krb5-libs, openssl, unixODBC
  • SUSE: glibc, libuuid1, krb5, openssl, unixODBC

Каждый из этих пакетов, в свою очередь, имеет собственные зависимости, которые могут отсутствовать в системе. Для решения этой проблемы в общем случае следует обратиться к документации по диспетчеру пакетов используемого дистрибутива: Red Hat, Ubuntu и SUSE

Другое распространенное решение — вручную скачать все зависимые пакеты в одну папку на компьютере установки, а затем вручную установить каждый пакет по очереди, завершив пакетом драйвера Microsoft ODBC версии 13.

Red Hat Linux Enterprise Server 7

Ubuntu 16.04 (ODBC 13 в автономном режиме)

SUSE Linux Enterprise Server 12 (ODBC 13 в автономном режиме)

После установки пакета можно проверить, находит ли драйвер Microsoft ODBC версии 13 все нужные зависимости. Для этого выполните команду ldd и проверьте наличие отсутствующих библиотек в выходных данных:

ODBC 11

В следующих разделах объясняется, как установить Microsoft ODBC Driver 11 в Linux. Для использования драйвера сначала установите диспетчер драйверов unixODBC. Дополнительные сведения: Установка диспетчера драйверов.

Процесс установки

Эти инструкции ссылаются на msodbcsql-11.0.2270.0.tar.gz (файл установки для Red Hat Linux). В случае установке предварительной версии для SUSE Linux файл называется msodbcsql-11.0.2260.0.tar.gz .

Порядок установки драйвера

Убедитесь, что у вас есть корневое разрешение.

Перейдите в каталог, куда был скачан файл с именем msodbcsql-11.0.2270.0.tar.gz . Убедитесь в наличии файла *.TAR.GZ, который соответствует вашей версии Linux. Чтобы извлечь файлы, выполните следующую команду: tar xvzf msodbcsql-11.0.2270.0.tar.gz .

Перейдите в каталог msodbcsql-11.0.2270.0 , где должен находиться файл install.sh.

Чтобы просмотреть список доступных параметров установки, выполните следующую команду: ./install.sh.

Перед установкой драйвера выполните следующую команду: ./install.sh verify . Выходные данные команды ./install.sh verify показывают, есть ли на компьютере ПО, необходимое для поддержки драйвера ODBC на Linux.

Когда вы будете готовы установить драйвер ODBC на Linux, выполните команду: ./install.sh install . Если вам нужно будет дополнительно указать команду установки ( bin-dir или lib-dir ), сделайте это после параметра install.

После просмотра лицензионного соглашения введите YES для продолжения установки.

При установке драйвер помещается в папку /opt/microsoft/msodbcsql/11.0.2270.0 . Драйвер и его вспомогательные файлы должны находиться в папке /opt/microsoft/msodbcsql/11.0.2270.0 .

Удаление

Вы можете удалить драйвер ODBC 11 на Linux, выполнив следующие команды:

rm -f /usr/bin/sqlcmd

rm -rf /opt/microsoft/msodbcsql

odbcinst -u -d -n "ODBC Driver 11 for SQL Server"

Файлы драйвера

Драйвер ODBC в Linux состоит из следующих компонентов.

Примечание. В одной программе нельзя ссылаться на msodbcsql.h и odbcss.h одновременно.

Загрузка файла ресурсов

Для работы драйверу необходимо загрузить файл ресурсов. Этот файл имеет имя msodbcsqlr17.rll или msodbcsqlr13.rll в зависимости от версии драйвера. Файл .rll располагается по пути относительно расположения самого драйвера ( so или dylib ), указанного в таблице выше. Кроме того, начиная с версии 17.1 драйвер пытается загрузить файл .rll из каталога по умолчанию, если его не удалось загрузить по относительному пути. Путь к файлу ресурсов по умолчанию в Linux: /opt/microsoft/msodbcsql17/share/resources/en_US/ .

Устранение неполадок

Если не удается установить подключение к SQL Server с помощью драйвера ODBC, см. статью, посвященную известным проблемам при устранении неполадок подключения.

Дальнейшие действия

После установки драйвера можно попробовать пример приложения C++ ODBC. Подробнее о разработке приложений ODBC см. в разделе Разработка приложений.

Дополнительные сведения см. в статьях с заметками о выпуске и требованиями к системе для драйвера ODBC.

Так как 1С работает только с русской локализацией, то необходимо сразу устанавливать систему с учётом этого. В дальнейшем все действия производятся от имени суперпользователя.

Проверка текущей локализации системы:

Проверка текущей локализации

Для проверки доступности необходимой локали используем команду:

Для проверки доступности

Для смены локали:

Для смены локали

Далее настраиваем статический IP-адрес, маску подсети, шлюз по умолчанию, DNS.

Предварительно делаем бекап стандартного файла конфигурации сетевого интерфейса:

Делаем бекап

Далее конфигурируем интерфейс (адреса выставляем свои):

Конфигурируем интерфейс

В файле /etc/hostname изменим имя хоста на более удобное: 1с-srv.

Сопоставим IP с именем хоста для удобства обращения к серверу. В файле /etc/hosts добавляем запись:

Сопоставим IP

Так же необходимо это соответствие будет прописать на все клиентах, которые будут работать с сервером 1С. В операционной системе Windows это прописывается в файле: C:\Windows\System32\drivers\etc\hosts

Также редактируем файл /etc/sysconfig/network, прописываем имя хоста и отключим адресацию IPv6:

Прописываем имя хоста

Отключаем использование IPv6 на уровне ядра. В файле /etc/sysctl.conf добавляем строчки:

Сохраняем и применяем настройки:

Сохраняем и применяем настройки

Отключаем SELinux в файле /etc/sysconfig/selinux

Отключаем SELinux

После всех манипуляций обязательно рестарт сети: systemctl restart network и проверяем работу введенной конфигурации.

Следующим шагом обновляем систему и устанавливаем пакеты программ и библиотек:

Скачиваем необходимые нам пакеты с 1с сервером и PostgreSQL и копируем на сервер:

Скачиваем необходимые нам пакеты

Переходим в папку с 1с:

Распаковываем наш архив:

Прописываем сервер в автозагрузку:

Проверяем запуск сервера:

Проверяем запуск сервера

Назначим владельцем директории /opt/1C автоматически созданного пользователя usr1cv8 и группу пользователей grp1cv8:

Задаём пароль для usr1cv8:

Переходим в папку с пакетами PostgreSQL:

Распаковываем наш архивы:

Устанавливаем доп. модули:

Переключаемся на пользователя postgres (создаётся автоматически при сборке из исходников):

Далее необходимо проинициализировать служебные базы данных с русской локалью:

Необходимо проинициализировать служебные базы данных

Если все прошло успешно можно запускать сервер базы данных. Если нужно создать новую системную базу, то необходимо удалить папку /var/lib/pgsql/10/data.

Можно запускать сервер базы данных

Заходим в базу и задаём пароль для пользователя postgres:

Заходим в базу и задаём пароль

Проверяем локализацию и работоспособность сервера Postgres:

Проверяем локализацию и работоспособность сервера Postgres

Обязательно редактируем файл /var/lib/pgsql/10/data/pg_hba.conf задаем в нем доступ к базам по паролю, а также передачу данных аутентификации в формате md5 хеш суммы.

После перезагрузки запускаем вручную Postgre и добавляем в автозагрузку:

Проверяем результат

По умолчанию postgres использует порт

Следующим шагом задаем конфигурации сервера Postgres.

Здесь нужно ориентироваться на конфигурацию 1С, количество пользователей 1С, объёмы баз, количество операций с базами. Поэтому конфигурирование большей части параметров производится, на запущенном сервере, путём подбора оптимальных показателей. Настройку выполняем путем редактирования файла /var/lib/pgsql/10/data/postgresql.conf

Предварительно делаем резервную копию postgresql.conf

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

Параметр listen_addresses

Теперь необходимо добавить шрифты и кодировки.

Устанавливаем библиотеки для иконок и картинок:

При подключении 1с к серверу может выдать ошибку на отсутствие библиотеки libWand.so, поэтому создадим символическую ссылку на файл установленной библиотеки:

Создадим символическую ссылку на файл

Настроим firewall на нашем сервере.

Заходим в настройки iptables и приводим файл к следующему виду:

Заходим в настройки iptables

Переходим на машину с Windows. Устанавливаем клиент 1С и утилиты для администрирования. Запускаем администрирование 1С.

Теперь можно добавить наш сервер.

Теперь можно добавить наш сервер

В появившемся окне прописываем имя нашего сервера.

Имя нашего сервера

Если все настроено правильно, то увидим локальный кластер с нашим сервером. Создаём информационную базу.

Локальный кластер

Создаём информационную базу

В случае ошибки, при создании базы, идем на сервер и заходим под пользователем postgres. Далее удаляем базу: dropdb postgres.

Следующим шагом переходим в 1С и добавляем нашу базу:

Переходим в 1С и добавляем нашу базу

Переходим в 1С и добавляем нашу базу

Переходим в 1С и добавляем нашу базу

Заходим в конфигуратор и загружаем базу Gilev для теста:

Заходим в конфигуратор и загружаем базу

Следующим шагом настроим Web-публикацию:

В корневом каталоге сайта создаем директорию test, где test — имя базы к которой мы будем предоставлять доступ.

Теперь нам необходимо запустить специальный скрипт для публикации базы на веб-сервере:

Выдаем права на директорию:

Запускаем Apache и добавляем в автозагрузку:

Теперь проверяем по адресу 1c-srv/test

Заключительным этапом настроим резервное копирование базы данных и обслуживание.

Первым делом установим архиватор pigz, поскольку он, в отличии от gzip, хорошо загружает все ядра процессора, что в свою очередь повышает производительность и скорость выполнения архивации.

Создадим папку для монтирования диска для бекапов и монтируем его:

Для автоматического монтирования прописываем диск в файл fstab:

Создаем директории, в которых будут находиться наши бекапы (Day, Week, Month…) и назначим владельцем postgres:

Дистрибутив сервера 1с для Centos

Для удобства ввода пароля и вообще вставки команд, необходимо кликнуть правой кнопкой мыши скопированный текст или команда вставится в консоль.

Обновляем систему

Отключаем selinux

Редактируем файл /etc/sysconfig/selinux с помощью утилиты WinSCP, как на рисунке ниже:


Настройка хоста

Необходимо отредактировать файл /etc/hosts с помощью утилиты WinSCP, добавив запись:


Так же необходимо отредактировать файл hosts на клиентском компьютере в директории C:\Windows\System32\drivers\etc\hosts, добавив аналогично строку:

Копируем пакеты установки 1С сервера

Нам удалось подключиться к серверу, теперь для начала установки сервера 1С, необходимо скопировать файлы дистрибутива на vds сервер, для этого воспользуемся утилитой WinSCP


Авторизация

В папке root на сервере centos создадим папку rpm1c и скопируем установочные пакеты


Установка ImageMagick и других бибилотек



Установка сервера 1С

После загрузки всех файлов из консоли, перемещаемся в нужный нам каталог и запускаем установку всех пакетов




Настраиваем автоматический запуск демона и запускаем сервер

При повторном выполнении команды service srv1cv83 start, проблема исчезает.


Настройка фаервола

Можно использовать стандартный firewalld, который предустановлен в Centos, для настройки необходимо ввести:

Можно использовать iptables, тогда отключаем firewalld, который по умолчанию установлен в Сentos

Отключаем firewalld

Отключаем автозагрузку

Установка iptables

Включение и добавление в автозагрузку

Настройка правил

Можно попробовать подключиться к серверу из консоли администрирования 1С, которая находится на локальном компьютере.

Обратите внимание, чтобы на компьютере была установлена платформа или тонкий клиент и консоль администрирования 1с той же версии, что и сервер 1c, установленный на сервере CentOS.

В консоли добавляем DNS имя нашего сервера, которое мы указали в файлах hosts:

Читайте также: