PDA

Показать полную графическую версию : 1C 8.3, Apache 2.2, публикация базы 1С и SELinux Context


__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
- Может еще что-то, но я знаю только эти.

__sa__nya
18-11-2015, 11:18
Все настолько сложно, или эти темы просто никто не читает ? :-)




© OSzone.net 2001-2012