Алт Линукс 7, рабочая станция.
Установлена 1С 8.3.13.1809
запущен веб-сервер apache2
назначены ссылки (симлинки) на /etc/apache2 и /etc/apache2/apache2.conf (эти файлы и папки требуется 1с для поиска веб-сервера).
Даны все права на файл /etc/apache2/apache2.conf (1С туда пишет строку)
При попытке опубликовать базу из конфигуратора — ошибка.
Что еще можно сделать?
Записан
Записан
Конфигуратор не видит установленный Apache. Публикуйте командой webinst. Работает.
Записан
Я в линуксе новичок ….
Придется попробовать через webinst…
(Через конфигуратор-то проще было бы.)
Записан
Ну Webinst я нашел в папке /opt/1C/v8.3/x86_64
А как его запустить ?
Записан
Примерно так. Актуально для P8. На P7 не проверял.
Создаем файлик конфигурации, дабы 1С не гадила в httpd2.conf
#touch /etc/httpd2/conf/extra-available/1c.conf
Публикуем базу
#/opt/1C/v8.3/x86_64/webinst -publish -apache24 -wsdir UT1 -dir /var/www/UT1 -connstr "File=/bases1c/UT1;" -confpath /etc/httpd2/conf/extra-available/1c.conf
А вот этот файл должен быть доступен апачу на чтение
#ln -s /etc/httpd2/conf/extra-available/1c.conf /etc/httpd2/conf/extra-enabled/1c.conf
#chmod o+r /var/www/UT1/default.vrd
-apache24 — версия веб-сервера.
-wsdir — имя алиаса публикации, по которому к базе следует обращаться из браузера.
-dir — путь публикации, директория в рабочем каталоге веб-сервера
-connstr — строка соединения с базой, можно подсмотреть в списке баз 1С в нижней части окна.
-confpath — путь к конфигурационному файлу веб-сервера. Можно указать, конечно, и стандартный httpd2.conf.
Записан
Примерно так. Актуально для P8. На P7 не проверял.
Создаем файлик конфигурации, дабы 1С не гадила в httpd2.conf
Код: [Выделить]#touch /etc/httpd2/conf/extra-available/1c.conf
Публикуем базу
Код: [Выделить]#/opt/1C/v8.3/x86_64/webinst -publish -apache24 -wsdir UT1 -dir /var/www/UT1 -connstr «File=/bases1c/UT1;» -confpath /etc/httpd2/conf/extra-available/1c.conf
#ln -s /etc/httpd2/conf/extra-available/1c.conf /etc/httpd2/conf/extra-enabled/1c.confА вот этот файл должен быть доступен апачу на чтение
Код: [Выделить]#chmod o+r /var/www/UT1/default.vrd
Сделал так, результат тот же:
sh: httpd: команда не найдена
Публикация выполнена
Ответ 1С:
Полагаю, что в консольной утилите webinst все запрограммировано на вызов httpd,
у Вас же сам сервис называется httpd2.
Нужно сделать жесткую ссылку, чтобы при обращении к httpd все перенаправлялось на httpd2.
Я им написал, почему вызывают httpd, а не httpd2 (мы же указываем в параметрах, что апач 2).
Ответ 1С:
По крайней мере под Windows — Apache22 — имеет название httpd.exe.
Да и на сайте httpd.apache.org — тоже везде фигурирует httd.
Не совсем понимаю для чего на Alt Linux сделали изменения в имени…
В связи с этим два вопроса
1. Действительно ли это Alt Linux по своей инициативе сменил имя сервиса апач2 ?
2. Как создать нужную жесткую ссылку (на какой файл), чтодбы команда httpd соответствовала команде httpd2 ?
Записан
В Альте собираются и первый Apache с httpd и второй с httpd2. Это общая практика дистрибутивов.
А вот вызывать httpd вместо apachectl – показатель некомпетентности разработчиков 1С.
Записан
Андрей Черепанов (cas@)
в 1С я передам.
И все-таки….
Надо же пробовать разные варианты.
1. Как (на какой файл) назначить жесткую ссылку, чтобы при обращении к httpd обращение шло к httpd2 ?
2. Как установить и запустить просто Апач вместо Апач2 ?
3. Как правильно должны были сделать специалисты 1С ?
Я вот набрал apachectl и получил
-bash: apachectl: команда не найдена
Значит этот apachectl надо устанавливать дополнительно к серверу Апач ?
Записан
У вас же написано, что публикация выполнена — и она на самом деле выполнена. На то, что 1С не может найти httpd — не обращайте внимания.
Если же опубликованная база так и не заработала — искать ошибку надо в других местах.
Записан
Приступил очередной раз… включил компьютер.
Сначала сразу хотел в браузере строку набрать «localhost/demobase» — получил «Попытка соединения не удалась …»
Пытаюсь сделать публикацию через webinst…
[root@comp-core-i3-c35e50 logs]# /opt/1c/v8.3/x86_64/webinst -publish apache22 -wsdir demobase -dir /home/admin/Public/BP30 -connstr «File=»»/home/admin/Public/BP30″»;» -descriptor /home/admin/wwww
-bash: /opt/1c/v8.3/x86_64/webinst: Нет такого файла или каталога
Почему нет файла-то ? он на месте.
Записан
Он имеет права на выполнение? Если это скрипт, он содержит правильный шебанг?
Записан
Андрей Черепанов (cas@)
Как много новых слов ! (как определить, скрипт ли это, и что такое шебанг ?)
В прошлый-то раз выполнялся!
Может я какие-то симлинки пытался отменить (безуспешно), но «/opt/1C/v8.3/x86_64» вроде не трогал.
Записан
Как много новых слов ! (как определить, скрипт ли это, и что такое шебанг ?)
первая строчка в этом файле какая?
Записан
Следите за регистром. «1с» и «1С» — это разные вещи.
Записан
Многие из нас привыкли публиковать базу или веб сервис 1С нажатием нескольких кнопок.
Но не все из многих знают, что для этого необходимо запустить(от имени администратора!) конфигуратор 1С:Предприятие именно на той машине, где установлен веб сервер(а именно компонента веб-расширения 1С:Предприятия).
В случае, если веб-сервер и компонента веб-расширения 1С:Предприятия установлены на машину с ОС Linux без графической оболочки, то публикация через привычное окно конфигуратора становится невозможной.
Аналогичная ситуация возникает, когда на этой машине отсутствует клиент 1С:Предприятия и, следовательно, становится невозможным запуск конфигуратора.
О том, как осуществить публикацию базы можно почитать тут: Публикация 1С на Веб сервере Linux.
Отметим, что при ручной настройке публикации можно допустить различные ошибки. Описания которых и приведены в этой статье.
Итак, что делать, если не получается опубликовать веб-сервис 1С?
Список возможных ошибок:
1. Job for httpd.service failed because the control process exited with error code.
2. Ошибка веб-сервера Apache при публикации 1С «Syntax error on line…»
3. Ошибка «Invalid command ‘ManagedApplicationDescriptor’»
4. Не запускается 1С: Предприятие при подключении через веб сервер Linux. «Selinux policy enabled.»
5. Ошибка HTTP 404 Not found
6. Ошибка Service not found при обращении к веб-сервису 1С:Предприятия
Job for httpd.service failed because the control process exited with error code.
Полный текст ошибки:
Job for httpd.service failed because the control process exited with error code. See «systemctl status httpd.service» and «journalctl -xe» for details. |
Описание ошибки:
После выполнения всех настроек файлов публикации базы или сервиса 1С:Предприятия. При попытке запустить веб-сервер — выдается ошибка и веб-сервер не запускается.
Данное сообщение говорит о том, что процесс был завершен с ошибкой, более подробную информацию о которой можно получить в журнале. Как это сделать — описано далее.
Решение:
Необходимо проанализировать более подробное описание ошибки. Его можно получить следующим образом.
В результате выполнения команды будет выдано более подробное сообщение об ошибке.
Разбор, которых приведен в статье далее.
Ошибка веб-сервера Apache при публикации 1С «Syntax error on line…»
Полный текст ошибки:
сен 16 11:41:54 1s-on-web-1 httpd[6596]: AH00526: Syntax error on line 6 of /etc/httpd/e1c/base.conf: сен 16 11:41:54 1s-on-web-1 httpd[6596]: Invalid command ‘forceHandler’, perhaps misspelled or defined by a module not included in the server configuration |
Описание ошибки:
Ошибка связана с ошибками или «опечатками» в файле настроек base.conf. Иными словами, в данном файле есть некорректные строки, которые новичку бывает сходу не так просто найти.
Решение:
Исправить ошибку в строке сообщения. В данном случае допущена опечатка в имени команды.
vim /etc/httpd/e1c/base.conf |
Пример ошибочной строки. Команды forceHandler — на самом деле не существует :
Alias «/base» «/var/www/e1c/base/» <Directory «/var/www/e1c/base/»> AllowOverride All Options None Require all granted forceHandler 1c-application ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd» </Directory> |
Исправим файл. Укажем корректное наименвоание команды — SetHandler:
Alias «/base» «/var/www/e1c/base/» <Directory «/var/www/e1c/base/»> AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd» </Directory> |
Ошибка «Invalid command ‘ManagedApplicationDescriptor’»
Полный текст ошибки:
Начат процесс запуска юнита httpd.service. сен 16 12:18:11 1s-on-web-1 httpd[9857]: AH00526: Syntax error on line 7 of /etc/httpd/e1c/base.conf: сен 16 12:18:11 1s-on-web-1 httpd[9857]: Invalid command ‘ManagedApplicationDescriptor’, perhaps misspelled or defined by a module not included in the server configuration сен 16 12:18:11 1s-on-web-1 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE сен 16 12:18:11 1s-on-web-1 systemd[1]: Failed to start The Apache HTTP Server. — Subject: Ошибка юнита httpd.service |
Описание ошибки:
Ошибка связана с тем, что в файле httpd.conf отсутствует ссылка на модуль веб-расширения 1С:Предприятия, которая должна указываться в «LoadModule _1cws_module».
В этом можно убедиться выполнив команду.
cat /etc/httpd/conf/httpd.conf | grep wsap |
Если результат пустой, то строка вида «/opt/1C/v8.3/x86_64/wsap24.so», отсутвтует — модуль не прописан.
Решение:
Отредактировать конфигурационный файл httpd.conf
vim /etc/httpd/conf/httpd.conf |
Добавить строку:
LoadModule _1cws_module «/opt/1C/v8.3/x86_64/wsap24.so» |
Не запускается 1С: Предприятие при подключении через веб сервер, Linux. «Selinux policy enabled.»
Полный текст ошибки:
cat /var/log/httpd/error_log |
Описание проблемы:
При попытке запустить клиента 1С:Предприятие через веб-сервер (строка подключения вида: «ws=»http://1s-on-server/bast»;») — сеанс не запускается.
Но при этом, таже самая база — запускается успешно при прямом подключении к серверу 1С:Предприятия (строка подключения вида Srvr=»1s-on-server»;Ref=»base»;).
Решение:
1. Убедиться, что selinux, действительно, работает.
Если видим Enforcing, значит переходим к следующему пункту.
2. Отключить selinux:
3. Проверить, что настройка выполнена.
Permissive – включен, но ничего не запрещает.
Enforcing – включен, работает, и запрещает.
Ошибка HTTP 404 Not found
<strong>Пример полного текста ошибки:</strong> 404 Error in Request. HTTP Status: 404 — Not found |
<img class=«wp-image-809» src=«https://1s-on.ru/wp-content/uploads/2020/12/post-802-image-3.jpeg» /> HTTP 404 Not found The webpage cannot be found |
Описание:
После публикации базы на сервере, при попытке перейти по веб-ссылке базы из браузера– выдается ошибка.
Проще говоря, браузер сообщает, что не нашел такой папки публикации на сервере.
Решение:
Ошибка часто связана с неправильным вводом имени базы/папки публикации.
Необходимо проверить имена папок с конфигурационными файлами базы, а также имена базы и папок в самих конфигурационных файлах.
Проверить имена публикации базы(выделено):
1. Конфигурационный файл *.conf:
vim /etc/httpd/e1c/base.conf |
следующего содержания:
Alias «/base» «/var/www/e1c/base/» <Directory «/var/www/e1c/base/»> AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd» </Directory> |
2. Конфигурационный файл публикации базы *.vrd
vim /var/www/e1c/base/default.vrd |
следующего содержания:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?xml version=»1.0″ encoding=»UTF-8″?> <point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system» xmlns:xs=»http://www.w3.org/2001/XMLSchema» xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» base=»/base» ib=»Srvr=1s-on-1c-1; Ref=base»> <ws> <point name=»ws_1s_on_1″ alias=»ws_1s_on_1.1cws» enable=»true»/> <point name=»ws_1s_on_2″ alias=»ws_1s_on_2.1cws» enable=»true»/> </ws> </point> |
point name – имя сервиса в конфигураторе;
alias – это имя ссылки, по которой будем обращаться к веб-сервису.
Именно это имя необходимо вводить в браузер при проверке работы веб-сервиса: 1s-on-1c-1/base/ws/ws_1s_on_1.1cws
Ошибка Service not found при обращении к веб-сервису 1С:Предприятия
Пример полного текста ошибки:
Описание:
При обращении к веб-сервису, после авторизации(если таковая требуется) – возникает ошибка, что сервис не найден. То есть публикация самой базы отвечает, но веб-сервиса нет или он не отвечает.
Ошибка часто связана с ошибками в именах самого веб-сервиса или его ссылки.
Решение:
Проверить имена веб-сервисов и ссылок на них.
-
- Конфигурационный файл публикации базы *.vrd
vim /var/www/e1c/base/default.vrd |
следующего содержания:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?xml version=»1.0″ encoding=»UTF-8″?> <point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system» xmlns:xs=»http://www.w3.org/2001/XMLSchema» xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» base=»/base» ib=»Srvr=1s-on-1c-1; Ref=base»> <ws> <point name=»ws_1s_on_1″ alias=»ws_1s_on_1.1cws» enable=»true»/> <point name=»ws_1s_on_2″ alias=»ws_1s_on_2.1cws» enable=»true»/> </ws> </point> |
point name – имя сервиса в конфигураторе;
alias – это имя ссылки, по которой будем обращаться к веб-сервису. Именно это имя необходимо вводить в браузер при проверке работы веб-сервиса.
В нашем случае веб-сервиса ws_1s_on_3.1cws нет в файле.
Задание к занятию «Виды клиентов и режимы работы программы»
Задача 1 «Публикация информационной базы на веб-сервере»
Описание задачи
Нужно опубликовать учебную информационную базу на веб-сервере, установив его, если необходимо.
Требования к результату
Результат — снимок экрана, в котором должно быть окно браузера, а в нем — одна из учебных информационных баз с открытым окном «О программе».
Процесс выполнения
Процесс выполнения описан для операционных систем Windows. Если вы работаете под управлением операционной системы Linux, то установить веб-сервер и выполнить публикацию необходимо по инструкции от вендора: https://its.1c.ru/db/metod8dev#content:5979:hdoc.
Установка веб-сервера
- Определите разрядность установленной платформы 1С:Предприятие. Если у вас учебная версия, значит установлена 32-разрядная платформа. В противном случае посмотрите каталог установки платформы. Если путь содержит каталог «/Program Files (x86)/», то установлена 32-разрядная, если содержит «Program Files», то 64-разрядная.
- Убедитесь, что для платформы установлен модуль расширения веб-сервера. Для этого откройте окно «Установка и удаление программ», выберите пункт 1С:Предприятие 8 (учебная версия) и нажмите на кнопку изменить:
Выберите действие изменить:
Установите настройку для модуля расширения веб-сервера в значение Данный компонент будет установлен на локальный жесткий диск и нажмите Далее:
- Скачайте дистрибутив веб-сервера Apache с сайта https://www.apachehaus.com/cgi-bin/download.plx. При этом если платформа 64-битная, то нужно скачить сервер с приставкой «x64», если 32-битная, то без нее.
- Разархивируйте папку в Apache24 в каталог C:Apache24.
- Запустите командную строку от имени администратора: В строке найти меню пуск ввести «Командная строка», нажать на нее правой кнопкой мыши и выбрать пункт Запустить от имени администратора
- В командной строке перейтите в директорию установки апача, для этого последовательно введите команды: «C:», «cd C:Apache24bin»
- Установить веб-сервер как службу, для этого введите в командной строке команду «httpd.exe -k install»
- Запустите веб-сервер, для этого введите в командной строке команду «httpd.exe -k start»
- Проверьте работу веб-сервера. Откройне браузер и перейдите по ссылке http://localhost. Если страница выглядит как на картинке ниже, значит веб-сервер установлен правильно и можно переходить к публикации информационной базы.
Публикация информационной базы
- Убедитесь, что база «УправлениеИТФирмой» не содержит в пути символов кириллицы (только латиница). Если это не так, то перенесите ее в каталог, путь которого состоит только из латинских символов. Желательно поближе к корню диска.
- Запустите информационную базу «УправлениеИТФирмой» в конфигураторе от имени Администратора.
- Откройте окно публикации на веб-сервере (Администрирование / Публикация на веб-сервере). Укажите Имя: «IT-company-management», Каталог: «C:Apache24htdocsIT-company-management», остальные настройки оставьте по умолчанию и нажмите Опубликовать.
- После публикации платформа предложит перезапустить веб-сервер, сделайте это.
- Пройдите по ссылке http://localhost/IT-company-management и убедитесь, что опубликованная база успешно открывается.
- В качестве результата пришлите снимок экрана с окном браузера, в которой работает эта информационная база. В окне браузера должно быть открыто окно «О программе».
Типичные ошибки
- Разрядность веб-сервера должна совпадать с разрядностью версии платформы. Например, если вы используете 32-разрядную учебную версию, Apache тоже должен быть 32-разрядным.
- Веб-сервер может не запускаться (служба запускается и сразу останавливается), если используемый им порт 80 занят другой программой. Для того, чтобы изменить порт веб-сервера можно открыть файл «C:Apache24confhttpd.conf», найти строку «Listen 80» и поменять в ней порт 80 на 81 или 8000, после этого в ссылке после доменного имени нужно будет добавлять имя порта http://localhost:81 или http://localhost:8000.
Критерии оценки
Зачет
- Предоставлен скриншот запущенной информационной базы конфигурации УправлениеИТФирмой, открыто окно «О программе», в авторских правах конфигурации имя и фамилия студента.
На доработку
- Скриншот сделан не в веб-клиенте
- На скриншоте другая конфигурация
- Не открыто окно «О программе»
- В авторских права имя и фамилия не соответствует имени и фамилии студента