__sa__nya
16-11-2015, 14:51
Доброе время суток.
Имеется проблема с публикацией БД 1С на Сервере 1С. Выяснил, что эта проблема связана с SELinux, но как ее решить дальне - не знаю.
ОС сервера - CentOS 6.6 64 бита
СУБД - PostGreSQL 9.3.4-1.1C
Сервер 1С Предприятия и клиентская платформа 1С (64 бита): 8.3.6.2363
Имеется БД 1С созданная на вышеуказанном сервере БД
публикую данную БД командой:
/opt/1C/v8.3/x86_64/webinst -publish -apache22 -wsdir testlinuxbuh30 -dir /webbases2/testlinuxbuh30 -connstr "Srvr=192.168.2.249;Ref=test_linux_buh_30" -confpath /etc/httpd/conf/httpd.conf
После публикации перезапускаю службу веб-сервера:
service httpd stop; service httpd start
В окне терминала выходит сообщение что публикация выполнена успешно (см файл publication вложения). Но опубликованная база не открывается через веб-обозреватель или веб-клиента (см файл 1C_web_error вложения).
В свойствах папки webbases2 в Permissions в SELinux Context поставил httpd_user_script_exec_t. Ошибка 500 ушла, но появилась другая
1C:Enterprise 8 application error:
Ошибка установки соединения
by reason:
server_addr=tcp://192.168.2.249:1541 descr=192.168.2.249:1541:13(0x0000000D): Permission denied; line=853 file=./src/DataExchangeTcpClientImpl.cpp
- см файл (1C_ent_app_error) вложения
При этом веб-сервер работает - см файл worked_apache вложения. В пути /webbases2/testlinuxbuh30 создается файл default.vrd - т.е. у службы httpd есть права на доступ к каталогу с базой.
Погуглив, почитав, понял, что нормально работать не Apache (или 1С) не дает SELinux. Выяснил, что если его отключить вообще, проблема уходит:
Правил файл
vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
Но, опять же, как пишут в интернете, полностью отключать SELinux плохо. Нужно как-то разрешить работу Apache в SELinux, не могу понять как это сделать:
Пробовал разрешить работу apache такой командой:
setsebool httpd_disable_trans 1
- Но выходит ошибка:
Could not change active booleans: Invalid boolean
Если делать c параметром P:
setsebool -P httpd_disable_trans 1
- Выходит такая ошибка:
Boolean httpd_disable_trans is not defined
Так же, в сообщении ошибки, идет ссылка на файл DataExchangeTcpClientImpl.cpp - я нигде не могу его найти.
В общем, вопрос - как разрешить работу Apache в SELinux, не отключая при этом SELinux?
Каталоги, связанные с публикацией БД:
/webbases2
/opt/1C/v8.3/x86_64
- Может еще что-то, но я знаю только эти.
Имеется проблема с публикацией БД 1С на Сервере 1С. Выяснил, что эта проблема связана с SELinux, но как ее решить дальне - не знаю.
ОС сервера - CentOS 6.6 64 бита
СУБД - PostGreSQL 9.3.4-1.1C
Сервер 1С Предприятия и клиентская платформа 1С (64 бита): 8.3.6.2363
Имеется БД 1С созданная на вышеуказанном сервере БД
публикую данную БД командой:
/opt/1C/v8.3/x86_64/webinst -publish -apache22 -wsdir testlinuxbuh30 -dir /webbases2/testlinuxbuh30 -connstr "Srvr=192.168.2.249;Ref=test_linux_buh_30" -confpath /etc/httpd/conf/httpd.conf
После публикации перезапускаю службу веб-сервера:
service httpd stop; service httpd start
В окне терминала выходит сообщение что публикация выполнена успешно (см файл publication вложения). Но опубликованная база не открывается через веб-обозреватель или веб-клиента (см файл 1C_web_error вложения).
В свойствах папки webbases2 в Permissions в SELinux Context поставил httpd_user_script_exec_t. Ошибка 500 ушла, но появилась другая
1C:Enterprise 8 application error:
Ошибка установки соединения
by reason:
server_addr=tcp://192.168.2.249:1541 descr=192.168.2.249:1541:13(0x0000000D): Permission denied; line=853 file=./src/DataExchangeTcpClientImpl.cpp
- см файл (1C_ent_app_error) вложения
При этом веб-сервер работает - см файл worked_apache вложения. В пути /webbases2/testlinuxbuh30 создается файл default.vrd - т.е. у службы httpd есть права на доступ к каталогу с базой.
Погуглив, почитав, понял, что нормально работать не Apache (или 1С) не дает SELinux. Выяснил, что если его отключить вообще, проблема уходит:
Правил файл
vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
Но, опять же, как пишут в интернете, полностью отключать SELinux плохо. Нужно как-то разрешить работу Apache в SELinux, не могу понять как это сделать:
Пробовал разрешить работу apache такой командой:
setsebool httpd_disable_trans 1
- Но выходит ошибка:
Could not change active booleans: Invalid boolean
Если делать c параметром P:
setsebool -P httpd_disable_trans 1
- Выходит такая ошибка:
Boolean httpd_disable_trans is not defined
Так же, в сообщении ошибки, идет ссылка на файл DataExchangeTcpClientImpl.cpp - я нигде не могу его найти.
В общем, вопрос - как разрешить работу Apache в SELinux, не отключая при этом SELinux?
Каталоги, связанные с публикацией БД:
/webbases2
/opt/1C/v8.3/x86_64
- Может еще что-то, но я знаю только эти.