От одной мысли об этой гремучей связке пробегают по спине мурашки. Тем не менее она начинает встречаться и судя по форумам набирает потихоньку обороты. Периодически всплывают заказы на внедрение/оптимизацию работы 1C или сопряженной с ней базы данных PostgreSQL.
Описанию процесса внедрения 1C:Предприятия на Linux-сервере посвящена статья «
Установка Сервера 1С:Предприятия 8.1 на Linux-сервер (со скриншотами)», которая достаточно полно раскрывает основные вехи установки. Мы позволим себе заострить внимание на внедрении 1C:Предприятия на базе CentOS 5.4 (32 bit). 32
х битная операционная система выбрана из-за отсутствия поддержки 64 бит компанией Aladdin в драйверах
HASP.
Первый момент - установка службы
samba. Четкого описания необходимости этой службы для работы 1C:Предприятия не удалось найти. Одно из предположений - задействование сервиса
WINS для преобразования имен. Рекомендуем завести отдельный DNS сервер и в нем прописать соответствие или довольствоваться файлом
hosts. Мы продолжим рассмотрение на примере имени сервера
srv1c.local, который корректно преобразуется в
IP-адрес сервера.
Вторым этапом является установка приложений, обслуживающих защитный ключ. Для их установки необходимо скачать архивы
HDD_RPM_RedHat_i386.tar.gz и
hasplm_linux_8.30.tgz с сайта
ftp.aladdin.com. Распакуем и установим пакеты:
tar xf HDD_RPM_RedHat_i386.tar.gz
tar xzf hasplm_linux_8.30.tgz
rpm -ivh hasplm-redhat-8.30-1.i386.rpm HDD_RPM_RedHat_i386/aksusbd-redhat-1.8.1-2.i386.rpm
Хочу обратить внимание, что архив
HDD_RPM_RedHat_i386.tar.gz является обычным архивом без gzip сжатия. Запустим службы
service hasplm start
service aksusbd start
chkconfig hasplm on
chkconfig aksusbd on
Базовым костяком необходимых пакетов для 1C:Предприятия являются
1C_Enterprise-common и
1C_Enterprise-server. Официальная зона скачивания находится по адресу
users.v8.1c.ru. Неофициальная -
forum.ruboard.ru.
Пакеты
1C_Enterprise-common и
1C_Enterprise-server включают в себя поддержку русского языка. Пакеты содержащие в своем имени
nls (Native Language Support) предоставляют поддержку дополнительных языков Болгарского, Украинского, Польского и других. Мы ограничимся установкой базового набора
rpm -ivh 1C_Enterprise-common-8.1.14-72.i386.rpm 1C_Enterprise-server-8.1.14-72.i386.rpm
До момента установки 1C:Предприятия и базы данных PostgreSQL многие рекомендуют установить системную локаль в ru_RU.utf8. Мы этого делать не рекомендуем. Более красивым решением является установка локали для конкретных приложений без изменения системных настроек. Каждое из приложений: 1C:Предприятие и PostgreSQL,— запускаются с предварительным сбросом привилегий вызовом
su, что позволяет прописать экспорт переменной через пользовательский
.bash_profile.
Для 1C:Предприятия при установке регистрируется отдельный пользователь
usr1cv81 с домашней директорией
/home/usr1cv81. В ней 1C:Предприятие хранит все настройки. Пропишем локаль для 1C:Предприятия
cat <<'EOF' >> /home/usr1cv81/.bash_profile
LANG="ru_RU.utf-8"
export LANG
EOF
Если до этого 1C:Предприятие запускалось, то файлы конфигурации были созданы с использованием системной локали. Необходимо удалить старые файлы конфигурации и пересоздать их сызнова
service srv1cv81 stop >/dev/null 2>&1
mv /home/usr1cv81/.1cv81 /home/usr1cv81/bkp.1cv81
Запустим службы 1C:Предприятия
service srv1cv81 start
chkconfig srv1cv81 on
Из пакетов для PostgreSQL потребуется установить
postgresql-libs,
postgresql,
postgresql-server и
postgresql-contrib. Сборку PostgreSQL необходимо брать исключительно от поставщика 1C. Мы использовали PostgreSQL 8.2.4 с модификациями из
материалов для сборки версии СУБД PostgreSQL. Для желающих можем разместить собственную сборку и
SRPM.
Перед выполнением команды
service postgresql initdb необходимо выполнить
cat <<'EOF' >> /var/lib/pgsql/.bash_profile
LANG="ru_RU.utf-8"
export LANG
EOF
После этого выполняем
service postgresql initdb. Вносим минимальные изменения в
/var/lib/pgsql/data/postgresql.conf
default_with_oids = on
stats_row_level = off
Описанных изменений достаточно для корректной работы связки 1C:Предприятие и сервера PostgreSQL. Для оптимальной работы требуется более тщательная настройка. Запускаем сервер PostgreSQL
service postgresql start
chkconfig postgresql on
Изменяем пароль пользователю
postgres
cat <<'EOF' | psql -U postgres
ALTER ROLE postgres PASSWORD 'ваш пароль';
EOF
В качестве альтернативного варианта последнему пункту можно предложить создать отдельного пользователя с правами суперпользователя
cat <<'EOF' | psql -U postgres
CREATE ROLE 'usr1c' WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN PASSWORD 'ваш пароль';
EOF
На этом описание UNIX части закачивается и повествование переходит к настройке оснастки 1C. Этот этап в полном объеме изложен в параграфе "Создание сервера предприятия" статьи «
Установка Сервера 1С:Предприятия 8.1 на Linux-сервер (со скриншотами)».
Сегодня, 29 января, обнаружил еще одно руководство «
Установка 1С:Предприятия 8.1 на Red Hat Enterprise Linux 5 (RHEL 5, CentOS 5)».