- Настройка веб-сервера Apache под Linux
- План работ:
- 1. Установка Apache под Linux
- 2. Выпуск самоподписанного сертификата
- 3. Публикация информационной базы
- 4. Проверка публикации
- Публикация базы 1С на стороннем web-сервере
- Записки IT специалиста
- Настраиваем веб-доступ для 1С:Предприятия в файловом режиме на платформе Linux
- Установка модуля расширения веб-сервера
- Установка Apache 2.4
- Настройка необходимых прав доступа
- Публикация информационной базы
- Несколько слов о производительности
- Дополнительные материалы:
Настройка веб-сервера Apache под Linux
План работ:
- Установка Apache под Linux.
- Выпуск самоподписанного сертификата (Необязательно).
- Публикация информационной базы.
- Проверка публикации.
В отличие от IIS, веб-сервер Apaсhe доступен как для Windows, так и для Linux и позволяет настроить работу публикаций по шифрованному протоколу HTTP.
1. Установка Apache под Linux
Установка веб-сервера и публикация информационной базы для операционной Linux будет продемонстрирована на базе Ubuntu 18.04 LTS. Все, что касается настроить информационной базы не зависит от конкретной версии дистрибутива Linux. Установка же веб-сервера может отличаться.
В данной статье не рассматривается установка и запуск Apache под всевозможные семейства операционных систем Linux. При использовании операционной системы отличной от указанной в статье следуют руководствоваться официальной документацией конкретного вашего дистрибутива.
Итак, предполагается, что есть только что установленная операционная система Ubuntu 18.04 LTS без графического интерфейса пользователя.
Перед тем как продолжить, нужно проверить доступные версии программного обеспечения дистрибутива. Выполняем команду:
В выводе результата команды можно увидеть, что доступны обновления. Рекомендуются их обновить с помощью команды (подсказка «Run ‘apt list –upgradable’»):
По завершению обновления пакетов приложений можно приступить к установке непосредственно веб-сервера.
После этого нужно выполнить команду:
Необходимо дождаться окончание выполнения команды и убедиться, что в момент установки никаких ошибок не возникло. В данном случае установка прошла без проблем.
Далее нужно проверить, что помимо самой установки, веб-сервер запустился и готов обрабатывать запросы (для данной команды использование sudo не обязательно):
В ответ можно увидеть, что состояние службы active (running). Это значит, что веб-сервер работает в штатном режим и можно переходить к публикации информационной базы с помощью командного интерпретатора bash, либо к генерации самоподписанного сертификата (если в этом есть необходимость).
2. Выпуск самоподписанного сертификата
После установки Apache в операционной системе уже должен быть установлен openssl как зависимость к дистрибутиву. Поэтому можно сразу приступить к генерации сертификата.
Первоначально нужно перейти в директорию хранилища сертификатов с помощью команды:
После чего требуется ввести команду генерации сертификата, где вместо нужно подставить имя компьютера, на котором планируется размещен Apache:
Во время выполнения команды будет задано несколько вопросов. Для «Common Name (e.g. server FQDN or Your bane)» нужно также указать имя сервера. Остальные поля заполняются произвольно (кроме «Country name» — здесь можно оставить по умолчанию).
3. Публикация информационной базы
Так в данной статье идет настройка публикации информационных баз без использования графического интерфейса, то публикация информационной базы будет также производиться из командного интерпретатора.
Если до этого сервер «1С:Предприятие» был уже установлен на данном компьютере, то следующие 2 шага можно пропустить. Иначе в качестве подготовительной работы нужно скачать последний доступный дистрибутив платформы и распаковать его временную директорию с помощью команды:
После разархивирования нужно инициировать процедуру установки пакетов.
Как только все готово, необходимо перейти к публикации информационной базы. Для этого требуется перейти в директорию установленной платформы и выполнить команду:
В директории платформы следом нужно выполнить команду:
где нужно заменить:
ИМЯ ПУБЛИКАЦИИ – на произвольное имя публикации
ИМЯ СЕРВЕРА – на адрес сервера 1С:Предприятие
ИМЯ БАЗЫ – на имя базы, совпадающим с именем базы зарегистрированной в кластере
После этого следует перейти в директорию публикаций:
С помощью любого удобного редактора нужно отредактировать файл 000-default.conf и добавить в самый конец файла следующий текст настройки:
После добавления нужно сохранить и закрыть файл и выполнить команду для включения модуля ssl для Apache:
И после этого нужно перезапустить Apache и убедиться, что ошибок не возникает.
4. Проверка публикации
Для проверки корректной работы нужно открыть страницу в браузере и перейти по ссылке, которая состоит из двух частей:
- Имя вашего сервера (например, server2).
- Имя публикации базы (которое было указано в окне настройки публикации).
Для таких параметров ссылка будет иметь вид:
Источник
Публикация базы 1С на стороннем web-сервере
Имеется windows-сервер c 1С 8.3 (БД — MSSQL).
Задача — настроить публикацию базы на линуксовом web-сервере.
Тонкости — модуль 1С для апача работает только с 2.0 и 2.2, а текущая версия в большинстве дистрибутивов — 2.4+
Пишется больше для себя, чтобы не забыть. Ну и мало ли, вдруг пригодится еще кому — не придется бегать по форумам в поисках нужных команд.
Железо — дал гигабайт оперативки, одно ядро и 20 гигабайт диска. Увеличить никогда не поздно.
ОС: Debian Stable, привык я к нему.
Ставлю минимум, включая ssh-сервер, но не включая web. К этому еще вернемся.
После установки базовая настройка по вкусу, я обычно ставлю локаль utf8, ставлю sudo, mc и vim, остальное по потребностям.
Дальше надо поставить apache 2.2. Причем сделать это правильным способом, а не просто скачав deb-пакет. 🙂
Сперва добавляем в /etc/apt/sources.list строчки со ссылкой на предыдущую версию дистрибутива.
Можно, конечно, написать oldstable — в настоящий момент тоже будет правильно. Но только в настоящий, потому рано или поздно выйдет новая стабильная версия и в oldstable и тогда вместо apache 2.2 там будет 2.4. Хотя, надеюсь, к тому времени 1С обновится и заработает с более новыми версиями апача. Но кто их знает? 🙂
Где mirror.yandex.ru — там пишется имя вашего любимого сервера с репозиторием.
Потом обновляем индексы — apt-get update — и смотрим, что у нас тут есть по apache командой apt-cache showpkg apache2
Там много всего выводится, но нас интересует только начало вывода:
Видим, что кроме 2.4.10 имеется версия 2.2.22-13+deb7u6 — то, что нужно.
Ставим: apt-get install apache2=2.2.22-13+deb7u6
Или, точнее: apt-get install apache2=2.2.22-13+deb7u6 apache2-mpm-worker=2.2.22-13+deb7u6 apache2.2-common=2.2.22-13+deb7u6 apache2.2-bin=2.2.22-13+deb7u6, а остальные зависимости уже подтянутся автоматом.
После этого ставим апачей на холд, чтобы не обновить случайно.
Можно запустить service apache2 start и стукнуть телнетом на 80 порт для проверки, если лень браузер запускать.
telnet localhost 80
Ругается — значит работает.
Теперь ставим 1С.
Нужны только веб-сервисы 1С (пакет 1c-enterprise83-ws). И 1c-enterprise83-common, который в зависимостях прописан. И 1c-enterprise83-server, который в зависимостях не прописан, но без него утилита публикации пишет «Ошибка сегментирования».
В принципе, необходим только модуль для апача wsap22.so из пакета 1c-enterprise83-ws, а всё остальное можно через текстовый редактор сделать. Но я человек ленивый и лучше потрачу несколько мегабайт на 1С, чем буду руками вбивать строчки в конфиги. 🙂
Дальше надо создать папку для хранения настроек опубликованных БД 1С. Можно в дереве вебсервера, но я лучше отдельно сделаю, прямо в корне, /1с.
После этого из папки с установленными файлами 1С (/opt/1C/v8.3/i386) запускаем утилиту публикации webinst со следующими параметрами (публикую нашу тестовую базу):
-apache22 — наша версия вебсервера
-wsdir testlitupp — папка на вебсервере, в которой будет доступна опубликованная база (http://вашсервер/testlitupp)
-dir /1c/testlitupp — папка, в которой будет храниться файл default.vrd с настройками публикации
-connstr «Srvr=10.0.0.4;Ref=testlitupp;» — ip сервера 1С и имя публикуемой базы данных
-confPath /etc/apache2/apache2.conf — путь к конфигу apache
Если было написано «Публикация выполнена», значит всё прошло удачно. Если пишет «Ошибка сегментирования», то вы, скорее всего, забыли поставить 1c-enterprise83-server.
По результатам имеем файл default.vrd
И несколько новых строк в файле конфигурации веб-сервера:
Перезапускаем апач (service apache2 restart) и идём смотреть, что там опубликовалось.
Опубликовалось, просит пароль.
И впускает в базу.
Работает. Дополнительные настройки публикации делаются через редактирование vrd-файлов (к примеру, включение отладки), а допиливанием интерфейса веб-клиента должны заниматься ваши программисты 1С.
Если будете дописывать опции, к примеру, с подключением сервисов руками, то не забудьте удалить в файле default.vrd последний слэш в строчке «base=»/testlitupp» ib=»Srvr=10.0.0.4;Ref=testlitupp;» / >», я с этим долго возился. Если не удалить и что-то дописать после, то вылетает «ошибка 500» без дополнительной информации.
Какая будет нагрузка на вебсервер — я ещё не знаю, у нас это пока в тестовом режиме работает и хватает выделенных ресурсов. Но добавить памяти или ядер по мере увеличения потребностей проблем не составит.
В целом, в других дистрибутивах linux всё делается аналогично, различия только в способах установки старой версии apache.
Источник
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Настраиваем веб-доступ для 1С:Предприятия в файловом режиме на платформе Linux
Настраиваем веб-доступ для 1С:Предприятия в файловом режиме на платформе Linux
Операционные системы семейства Linux с каждым годом вызывают все больший интерес среди пользователей 1С:Предприятия, особенно после выпуска платформы для наиболее популярных дистрибутивов. Наиболее часто Linux используется как серверная платформа для 1С, но в последнее время все чаще можно встретить рабочие станции на базе этой операционной системы. Если дополнить такую рабочую станцию веб-сервером, то можно легко и просто организовать удаленный доступ к информационным базам, сегодня мы расскажем, как сделать это в файловом режиме.
Несмотря на кажущуюся простоту, настройка веб-доступа к файловым базам несколько сложнее, чем к серверным, это связано с тем, что необходимо правильно установить права доступа для всех участников данной схемы. Официальная документация довольно скупо освещает этот вопрос, поэтому ниже мы уделим ему повышенное внимание:
После выполнения публикации необходимо предоставить пользователю, от лица которого запускается Apache, права на каталог исполняемых файлов (/opt/1C/v8.3/i386/ для 32-разрядной версии или /opt/1C/v8.3/x86_64/ для 64-разрядной версии) конкретной версии системы «1C:Предприятие» (чтение и выполнение). В случае файлового варианта информационной базы необходимо дать права на модификацию каталога информационной базы пользователю, от лица которого работает веб-сервер.
Итак, рассмотрим подробнее всех участников нашей схемы. Ключевую роль в ней занимает информационная база, права на модификацию которой должны иметь все подключающиеся к ней клиенты, а также исполняемые файлы платформы, к которым должен иметь доступ веб-сервер.
Начнем с платформы, она размещается в /opt/1C и имеет владельцем usr1cv8:grp1cv8, такой формат записи является общеупотребительным в Linux и обозначает связку пользователь:группа. Если быть точным, то веб-серверу требуется доступ на чтение и выполнение к единственному файлу платформы — библиотеке wsap24.so (для Apache 2.4).
Гораздо интереснее с информационной базой, изначально ее владельцем является локальный пользователь user:user, который является также членом одноименной персональной группы. По умолчанию он имеет все необходимые права доступа к базе (чтение и запись). Аналогичные права также должен иметь веб-сервер, который работает от имени www-data:www-data.
Существуют способы запустить Apache от имени нужного пользователя, но на практике выяснилось, что 1С не работает с mpm-itk, даже если веб-сервер запущен от системного пользователя, практически сразу после запуска базы вы будете получать следующую ошибку: Сеанс отсутствует или удален.
Поэтому самое время вспомнить, что в Linux права устанавливаются для пользователя, группы и остальных, права по умолчанию, в зависимости от системы, несколько отличаются. За их назначение отвечает такой параметр как umask, грубо говоря, это маска, которую надо вычесть из полных прав, чтобы получить права, применяющиеся по умолчанию. В Ubuntu umask равен 002, а в Debian 022, следовательно, набор стандартных прав в Ubuntu/Debian будет 775/755 для папок и 664/644 для файлов.
Набор 775/664 дает права чтения/записи как владельцу, так и группе, а 755/644 — только владельцу. Таким образом в Ubuntu набор прав по умолчанию полностью подходит для наших целей, а в Debian потребуется изменить umask на 002.
Что касается прав, то потребуется взаимное включение пользователя и веб-сервера в персональные группы друг друга, а также веб-сервера в группу владельца бинарных файлов 1С. Теория понятна, перейдем к практике.
Установка модуля расширения веб-сервера
Будем считать, что у вас уже установлена платформа согласно нашему руководству Установка клиента 1С:Предприятие на Ubuntu 12.04. В таком случае нам понадобятся пакеты 1c-enterprise83-ws и 1c-enterprise83-ws-nls из поставки сервера. Обратите внимание, что версия и разрядность данных пакетов должна совпадать с версией и разрядностью установленной платформы.
Скопируем указанные пакеты в произвольную папку и установим их командой:
Обратите внимание, что данная команда установит все пакеты из текущего расположения по маске 1с*, поэтому будьте внимательны и убедитесь, что в ней нет ничего лишнего.
Затем установим нужного владельца для платформы:
на этом установка модуля веб-сервера окончена.
Установка Apache 2.4
Начиная с платформы 8.3.8 добавлена поддержка актуальной версии Apache 2.4, теперь нет необходимости понижать версию пакета, если вы используете более раннюю версию платформы, то вам потребуется понизить Apache до версии 2.2, как это сделать описано в нашей статье Используем APT Pinning для закрепления пакетов в Debian и Ubuntu.
Также мы категорически не советуем использовать экземпляр Apache используемый для 1С:Предприятия для иных целей, как мы уже видели, 1С оказалась несовместима с mpm-itk, кроме того 1С достаточно вольно обращается с файлами конфигурации, игнорируя виртуальные хосты и дописывая свои директивы прямо в основной конфигурационный файл Apache.
Конечно, можно вручную настроить все красиво, но это потребует повышенных затрат на администрирование при добавлении новых баз, поэтому более разумным решением будет выделение для 1С собственного экземпляра Apache.
Его установка производится одной единственной командой:
После установки следует уточнить какой MPM-модуль использует ваш сервер:
Если это будет prefork или event, то их следует отключить:
А затем включить модуль worker:
Затем откройте /etc/apache2/mods-available/mpm_worker.conf и внесите следующие изменения:
После чего перезапустите веб-сервер:
его настройка завершена.
Настройка необходимых прав доступа
Если вы используете Debian, то прежде всего следует изменить umask системы на 002, для этого откройте файл /etc/pam.d/common-session и добавьте в его конец строку:
Затем включим пользователя веб-сервера в группы 1С и текущего пользователя системы:
Также включим текущего пользователя в группу веб-сервера:
где вместо user следует использовать имя текущего пользователя.
После чего нужно установить права на папки с информационными базами, допустим они находятся в /opt/1C_bases:
Закончив с установкой прав следует перезагрузить сервер.
Публикация информационной базы
Публикацию базы можно выполнить двумя путями: через Конфигуратор и при помощи командной строки. Ниже мы рассмотрим оба способа.
Перед публикацией создадим директорию для нее в рабочем каталоге веб сервера, по умолчанию это /var/www, мы будем публиковать Бухгалтерию 3.0 поэтому назовем директорию acc30:
Запустим 1С:Предприятие с повышенными правами, для этого в терминале от имени суперпользователя выполните для 32-разрядной системы:
Откроется стандартное окно запуска 1С из которого откроем в Конфигураторе нужную нам базу. Затем перейдем в Администрирование — Публикация на веб-сервере и заполним небольшую форму:
В поле Имя указываем желаемый алиас информационной базы, его вы будете набирать в адресной строке браузера для доступа к данной базе, поэтому не следует делать его длинным или неудобочитаемым. Веб-сервер — здесь все понятно, в нашем случае Apache 2.4 и, наконец, Каталог — здесь следует указать директорию публикации, которую мы создали несколько ранее, не следует путать ее с рабочим каталогом ИБ. Если вы не используете интерфейс OData и Web-сервисы, то публиковать их не нужно.
Заполнив все необходимые поля нажмите кнопку Опубликовать, затем согласитесь с предложением перезапустить веб-сервер.
Для публикации из командной строки следует перейти в директорию с бинарными файлами 1С, в 32-разрядной системе выполните:
После чего запустите утилиту webinst со следующими параметрами:
На первый взгляд ее синтаксис довольно сложен, но на самом деле все довольно просто, давайте разберем каждый параметр:
- publish — указывает необходимое действие, в данном случае публикацию, может быть опущен, так как это действие по умолчанию.
- apache24 — задает тип веб-сервера, для Apache 2.2 следует указывать apache22.
- wsdir — имя алиаса публикации, по которому к базе следует обращаться из браузера.
- dir — путь публикации, созданная нами директория в рабочем каталоге веб-сервера
- connstr — строка соединения, состоит из трех частей, каждая из которых взята в кавычки: «File=» — указывает что база файловая, «/opt/1C_bases/acc30/» — путь к каталогу ИБ, «;» — служебный символ.
- confpath — путь к конфигурационному файлу веб-сервера.
Опубликовав базу следует восстановить владельца папки публикации:
Теперь можем попробовать запустить базу, обратившись к ней в браузере по имени хоста или IP-адресу, добавив через слеш нужный алиас, на локальной машине можно набрать http://127.0.0.1/acc30.
Если вы внимательно следовали инструкции и не допустили нигде ошибок, то все должно работать. Однако при выборе режима работы, через браузер или тонкий клиент, учитывайте особенности лицензирования. При работе в режиме веб-клиента (через браузер) веб-сервер ищет доступные лицензии на собственном хосте, а тонкий клиент использует локальную лицензию рабочего места. Более подробно об особенностях лицензирования читайте в статье: Особенности применения программных лицензий 1С:Предприятие.
Несколько слов о производительности
По-хорошему здесь должен был быть завершающий абзац статьи с заключением и пожеланиями, но наш материал был бы неполным без темы производительности данного решения. Так как веб доступ в файловом режиме обычно используют небольшие предприятия, то в роли веб-сервера чаще всего используется обычный офисный ПК. В его роли мы использовали виртуальную машину, которой выделили два ядра от Core i5-4670 и 4 ГБ оперативной памяти, что соответствует неплохой офисной машине.
Если по процессорным или дисковым ресурсам вопросов не возникло, то вот расход оперативной памяти нас не порадовал. Ниже показана система сразу после загрузки:
Затем мы запустили два экземпляра базы (один в веб-клиенте, другой в тонком) локально и два экземпляра по сети:
Как видим, свободная память в системе закончилась, и она ушла в своп, а если немного поработать в базах, то быстро закончится и файл подкачки. При этом, кроме 1С, на данном ПК больше ничего не запущено, что для обычной офисной машины не характерно. Эмпирическим путем мы выяснили, что на каждый сеанс работы с такими конфигурациями, как Бухгалтерия предприятия 3.0 требуется иметь 1 ГБ оперативной памяти.
Хорошо, закрываем все сеансы, но что это?
Система не спешит освобождать ресурсы, а переключившись на первую вкладку мы обнаружим запущенные процессы Apache, которые и не думают завершаться. Ошибка в платформе? Нет, начиная с платформы 8.3.9.1818 был реализован новый механизм работы с сеансами веб-сервисов, подробнее об этом можно прочитать в статье: Повышение производительности веб-сервисов.
Если коротко, то раньше веб-сервисы 1С работали как CGI-приложение, т.е. при каждом запуске веб-клиента или обращении к веб-сервисам происходил запуск рабочего процесса Apache, который загружал модуль веб-расширения 1С, а по завершении работы выгружал его и закрывался сам. Недостатком подобного метода являются высокие накладные расходы на запуск и завершение процесса.
Теперь модель работы веб-сервисов соответствует FastCGI-приложению, которое запускается один раз и продолжает оставаться запущенным даже при завершении сеансов работы с ним. Процитируем разработчиков 1С:
При вызове платформа проверяет, есть ли простаивающий сеанс с подходящим сочетанием этих реквизитов. Если такой сеанс есть, то он выделяется для обработки вызова. Если такого сеанса нет, то создается новый сеанс и выделяется для обработки.
Сеанс автоматически завершается по истечении периода бездействия (ВремяЖизниСеанса).
Что из этого следует? А то, что если вы одновременно запустите 4 сеанса работы с веб-сервером, то по их завершении рабочие процессы Apache продолжат работу в ожидании новых подключений, а если их не будет, то по окончании времени жизни сеанса, которое по умолчанию составляет 20 минут, будут завершены.
Таким образом вам нужно иметь достаточное количество оперативной памяти для обеспечения одновременной работы максимально возможного числа одновременно подключившихся клиентов, в противном случае ваша система может катастрофически снизить производительность по причине отсутствия свободной памяти. Даже если эти подключения будут носить кратковременный характер память под них будет «зарезервирована» в течении еще 20 минут.
Для небольших фирм мы можем рекомендовать установить объем оперативной памяти исходя из соображений 1 ГБ на одну свободную лицензию 1С, это позволит всегда иметь необходимый запас свободной памяти и избежать неприятных ситуаций с недоступностью сервера в разгар работы.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Источник