Последнее время отвечая на комментарии в теме “Установка сервера 1с предприятия” замечаю что 90% ошибок повторяются из раза в раз, причем ошибки в основном связаны либо с невнимательностью, либо с установкой на платформу отличную от указанной в статье.  Этот раздел посвящен именно ошибкам которые возникают во время установки и настройки сервера 1с предприятия и его компонентов.

В качестве эпиграфа приведу один из комментариев к статье “Установка сервера 1с предприятия на Fedora 12.”

“Я делаю все по статье, но прямо с первых строк ошибки, rpm – команда не найдена. Что я делаю не так? Ох уж эта 1с – как бубном была, так бубном и осталась. PS: У меня Ubuntu” ;)

1. Ошибка при запуске config_server

Проблема возникает на операционных системах с архитектурой x86_64 из-за отсутствия 32-х битного пакета glibc.

[root@srv1c utils]# ./config_server /usr/share/fonts/microsoft-core/
ls: cannot access /lib/libc-*.so: No such file or directory

Решение:

[root@srv1c utils]# yum install glibc.i686

2. Не запустился сервер 1с предприятия

После завершения установки сервер 1с предприятия сообщил о том что запустился, но не работает:

[root@1csrv ~]# rpm -i 1C_Enterprise82-common-8.2.14-528.x86_64.rpm 1C_Enterprise82-server-8.2.14-528.x86_64.rpm
Starting 1C:Enterprise 8.2 server: OK

При попытке остановить пишет:

[root@1csrv ~]# service srv1cv82 stop
Stopping 1C:Enterprise 8.2 server: Warning: server not running!

1. Проверяем какие порты слушает сервер 1с предприятия

При правильно функционирующем сервере с настройками по-умолчанию: ragent (агент сервера)  должен слушать порты 1540 и 1561; rmngr (менеджер сервера) -  порты 1541 и 1560;  rphost (рабочий процесс) – порты 1562 и 1563. Проверяем:

[root@1csrv ~]# netstat -tlnp | grep :15
tcp        0      0 0.0.0.0:1560    0.0.0.0:*    LISTEN      1508/rmngr
tcp        0      0 0.0.0.0:1541    0.0.0.0:*    LISTEN      1508/rmngr

Если в результате проверки получилось что работает только rmngr (менеджер сервера), значит при установке были не правильно созданы конфигурационные файлы и мы можем переходить к п.2.

2. Проверяем selinux

Сервер 1с предприятия вполне может работать при включенным SELinux c политикой targeted в запрещающем режиме Enforcing, однако в некоторых комбинациях он может вызвать проблему при запуске ragent (агента сервера 1с). Проверяем:

[root@1csrv ~]# getenforce
Enforcing

Открываем для редактирования /etc/sysconfig/selinux и меняем параметр SELINUX на disabled или permissive.

SELINUX=disabled

Перезагружаем сервер.

3. Разрешение имен hostname и hosts

Для работы сервера 1с предприятия очень важно что бы его имя правильно преобразовывалось в IP. По хорошему мы должны иметь возможность с любого хоста в сети разрешить FQDN и краткое имя сервера, но просто для запуска нам достаточно, что бы имя хоста разрешалось в пределах только самого сервера.

Смотрим какой у нас hostname, если hostname получился похожим на localhost.localdomain обязательно меняем его в файле /etc/sysconfig/network на FQDN-имя сервера, после перезагружаем систему.

[root@1csrv ~]# hostname
1csrv.mydomain.local

Просматриваем содержимое файла /etc/hosts, если видим что-то похожее – можно сразу начинать править.

[root@1csrv ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Для сервера с именем 1csrv.mydomain.local файл hosts должен выглядеть следующим побразом.

[root@1csrv ~]# cat  /etc/hosts
127.0.0.1   localhost
192.168.20.164 1csrv.mydomain.local 1csrv

При этом 192.168.20.164 – адрес нашего сервера.

4. Пересоздаем конфигурацию по умолчанию

Если сервер 1с предприятия при запуске не находит свои конфигурационные файлы srvribrg.lst и 1CV8Reg.lst – он создает их заново. Этим мы и воспользуемся, чтобы сгладить проблемы возникшие при установке. Останавливаем сервер 1с предприятия:

[root@1csrv ~]# service srv1cv82 stop
Stopping 1C:Enterprise 8.2 server: Warning: server not running!
OK

Удаляем конфигурационные файлы:

[root@1csrv ~]# rm -f /home/usr1cv82/.1cv82/1C/1Cv82/srvribrg.lst
[root@1csrv ~]# rm -f /home/usr1cv82/.1cv82/1C/1Cv82/reg_1541/1CV8Reg.lst

Запускаем:

[root@1csrv ~]# service srv1cv82 start
Starting 1C:Enterprise 8.2 server: OK

Проверяем работоспособность:

[root@1csrv ~]# netstat -tlnp | grep :15
tcp        0      0 0.0.0.0:1560     0.0.0.0:*    LISTEN      1508/rmngr
tcp        0      0 0.0.0.0:1561     0.0.0.0:*    LISTEN      1658/ragent
tcp        0      0 0.0.0.0:1562     0.0.0.0:*    LISTEN      1665/rphost
tcp        0      0 0.0.0.0:1563     0.0.0.0:*    LISTEN      1665/rphost
tcp        0      0 0.0.0.0:1540     0.0.0.0:*    LISTEN      1658/ragent
tcp        0      0 0.0.0.0:1541     0.0.0.0:*    LISTEN      1508/rmngr

Если мы видим вывод подобный приведенному выше, значит все отлично сервер 1с предприятия запустился и работает.

3. Не могу подключиться к серверу 1с предприятия.

При попытке соединиться с сервером через консоль “Администрирование серверов 1с-предприятия” появляется “Ошибка соединения с сервером 1с предприятия 8.2: server_addr=tcp//1csrv.mydomain.local descr=Ошибка сетевого доступа к серверу”.

1. Проверяем сетевое соединение с сервером. С компьютера где установлена консоль управления запускаем “ping 1csrv.mydomain.local”, если пинги ходят значит переходим к следующему пункту.

2. Проверяем работает ли сервер 1с предприятия. Для этого на сервере выполняем следующую комманду:

[root@1csrv ~]# netstat -tlnp | grep :15
tcp        0      0 0.0.0.0:1560     0.0.0.0:*    LISTEN      1508/rmngr
tcp        0      0 0.0.0.0:1561     0.0.0.0:*    LISTEN      1658/ragent
tcp        0      0 0.0.0.0:1562     0.0.0.0:*    LISTEN      1665/rphost
tcp        0      0 0.0.0.0:1563     0.0.0.0:*    LISTEN      1665/rphost
tcp        0      0 0.0.0.0:1540     0.0.0.0:*    LISTEN      1658/ragent
tcp        0      0 0.0.0.0:1541     0.0.0.0:*    LISTEN      1508/rmngr

Если мы получили другой результат – значит сервер 1с предприятия не работает или работает не правильно и нам нужно обратиться к 2-ой части этого манула “Не запустился сервер 1с предприятия”.

3. Настройка Iptables. Сервер 1с предприятия в большинстве случаев находится в пределах локальной сети и его вполне можно использовать с отключенным файрволом без большой угрозы безопасности. Отключаем iptables:

[root@1csrv ~]# chkconfig iptables off
[root@1csrv ~]# service iptables stop
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]

Для тех кто все-таки хочет заморочиться с правильной настройкой.

Консоли администрирования нужен доступ к агенту сервера (ragent) по порту 1540, а для создания базы понадобится еще и доступ к рабочим процессам по портам 1562-1591. Толстому клиенту нужен доступ к менеджеру сервера (rmngr) по порту 1541 и рабочим процессам порты 1562-1591.

Остальное зависит только от вашей фантазии. Для стандартно настроенного файрвола в CentOS набор разрешающих правили будет выглядеть приближенно так:

[root@1csrv ~]# iptables -t filter -I INPUT -p tcp --dport 1562:1591 -j ACCEPT
[root@1csrv ~]# iptables -t filter -I INPUT -p tcp --dport 1540 -j ACCEPT
[root@1csrv ~]# iptables -t filter -I INPUT -p tcp --dport 1541 -j ACCEPT
[root@1csrv ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

4. Postgesql – DATABASE не пригоден для использования

При создании базы данных через консоль администрирования, появляется сначала ошибка mvchar или fasttrun, а затем окно с ошибкой “DATABASE не пригоден для использования”.
Ошибка создания информационной базы, DATABASE не пригоден для использования.

1. Проверяем установлен ли potgresql-contrib. Для этого запрашиваем список установленных пакетов PostgreSQL:

[root@1csrv ~]# rpm -qa | grep postgresql
postgresql-libs-9.0.3-3.1C.x86_64
postgresql-server-9.0.3-3.1C.x86_64
postgresql-9.0.3-3.1C.x86_64

Если в списке не нет postgresql-contrib – устанавливаем его из установочной директории и перезапускаем PostgreSQL:

[root@1csrv x86_64]# rpm -i postgresql-contrib-9.0.3-3.1C.x86_64.rpm
[root@1csrv x86_64]# service postgresql restart
Stopping postgresql service: [ OK ]
Starting postgresql service: [ OK ]

2. Проверяем пакеты libicu. Не редко PostgreSQL собирают на одной машине, а устанавливают потом на другую – жесткой зависимости от пакетов licicu нет, отсюда и ошибки. Запрашиваем список пакетов icu:

[root@1csrv ~]# rpm -qa | grep icu
icu-4.2.1-9.el6.x86_64
libicu-4.2.1-9.el6.x86_64

Если не находим в выводе icu и libicu, устанавливаем их.

[root@1csrv ~]# yum install icu libicu

3. Ссылки на libicu. Наверное самый наболевший в этой теме вопрос, операционных систем много, версий библиотек еще больше – и ссылки для каждого случая свои. Смотрим где лежат библиотеки, установленные в пакете libicu:

[root@1csrv ~]# rpm -ql libicu | egrep '(icudata|icui18|icuuc)'
/usr/lib64/libicudata.so.42
/usr/lib64/libicudata.so.42.1
/usr/lib64/libicui18n.so.42
/usr/lib64/libicui18n.so.42.1
/usr/lib64/libicuuc.so.42
/usr/lib64/libicuuc.so.42.1

Делаем соответствующие ссылки

[root@1csrv ~]# ln -s /usr/lib64/libicui18n.so.42 /usr/local/lib64/libicui18n.so.46
[root@1csrv ~]# ln -s /usr/lib64/libicudata.so.42 /usr/local/lib64/libicudata.so.46
[root@1csrv ~]# ln -s /usr/lib64/libicuuc.so.42 /usr/local/lib64/libicuuc.so.46

4. Удаление базы. Итак мы проделали все вышеперечисленные процедуры, но ошибка “DATABASE не пригоден для использования” все-равно появляется. Это связано с тем что базу мы уже создали использования пакетов contrib и libicu, и 1с не может с ней работать. Запрашиваем список баз и удаляем испорченную.

[root@1csrv x86_64]# su postgres
bash-4.1$ psql -l
List of databases
   Name    |  Owner   | Encoding |  Collation  |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 basa1     | postgres | UTF8     | ru_RU.UTF-8 | ru_RU.UTF-8 |
 postgres  | postgres | UTF8     | ru_RU.UTF-8 | ru_RU.UTF-8 |
 template0 | postgres | UTF8     | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)
bash-4.1$ dropdb basa1
bash-4.1$ exit
exit

Заключение.

Этот раздел создан что бы упростить жизнь тем кто сталкивается с проблемами при установке 1с предприятие под Linux. Если вы хотите дополнить или к примеру вашей неполадки не оказалось в статье пишите на форум в теме “Настройка 1с предприятия 8.2 под Linux”.

Нет комментариев : “1c предприятие 8.2 – Troubleshooting”

Трекбеки/Пинги

  1. Статьи, не попавшие в ленту новостей (выпуск 155) | AllUNIX.ru — Всероссийский портал о UNIX-системах - [...] "Решение проблем при использовании "1c предприятие" 8.2 в L..." "Модернизация ядра сети передачи данных"; [...]
  2. Статьи, не попавшие в ленту новостей (выпуск 155) - [...] «Решение проблем при использовании «1c предприятие&raq...» «Модернизация ядра сети передачи данных«; [...]
  3. MyConsult2 » Архив сайта » Типичные ошибки при установке сервера 1С или ошибка сетевого доступа - [...] [1] 1c предприятие 8.2 – Troubleshooting (http://www.alsigned.ru/?p=1832) [...]