Опубликовать базу 1с на веб сервере apache
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти вступительный теcт.
Введение
Допустим, у вас небольшой рабочий коллектив и вам нужно работать с базами 1С. Одновременно там будет работать 2-3 человека, редко 5. В общем, в этих пределах. Вам надо купить как минимум 5 софтовых лицензий для сотрудников. Но куда их ставить, если у каждого сотрудника свой компьютер, а сервер терминалов поднимать не было в ваших планах. Во-первых, он денег стоит, во-вторых, его надо настраивать, обслуживать, защищать от угроз извне, если доступ будет по rdp. В общем, на маленьких масштабах это пушкой по воробьям. Чего уж говорить о клиент серверной установке 1С с использованием сервера баз данных mssql или postgresql. Для небольших компаний это перебор как по цене, так и функционалу. Я предлагаю решение значительно проще.
На помощь приходит публикация баз 1С на веб сервере с доступом пользователей через браузер. Лицензии ставятся на один компьютер. На него устанавливается веб сервер, публикуются базы 1С и настраивается доступ. Пользователям достаточно будет передать только ссылку для работы в базах. Это удобная схема работы, плюс в целом быстродействие файловых баз при одновременной работе нескольких пользователей будет выше. Ко всему прочему еще и пользователям на компьютер не нужно ставить платформу и обновлять ее.
Схема установки
Я предлагаю следующую схему работы с базами 1С при их публикации. Доступ нужен будет отовсюду через интернет. Для этого арендуется выделенный сервер, например в selectel. Достаточно будет сервера примерно за 4000р. с 2 ssd дисками и 32g оперативной памяти. Туда ставится гипервизор proxmox. И настраиваются минимум 3 виртуальные машины:
Это минимальный набор виртуалок. Сюда же можно добавить мониторинг либо еще какой-то сервис, необходимый вашей компании. Например чат или ip телефония. Производительности дедика хватит для небольшой компании.
Публикация баз 1С на веб сервере
Идем на виртуалку с windows и работаем там с 1С. Кстати, если хотите обойтись вообще без windows, то есть возможность настроить публикацию баз 1С на linux на примере Centos.
Для начала устанавливаем технологическую платформу и не забываем выбрать Модули расширения веб-сервера.
Создаем там необходимую вам базу данных. Я покажу на примере публикации типовой базы Бухгалтерия 3.0. При первом запуске необходимо будет установить на этот компьютер софтовые лицензии. Они будут использоваться при доступе к базам через браузер.
Установка и настройка Apache 2.4 в Windows
Если вы настраиваете apache на Windows Server, то скорее всего 80-й порт у вас будет занимать Служба веб-публикаций (World Wide Web Publushing Service) или W3SVC. Ее можно остановить и отключить.
Для того, чтобы точно узнать, кто занимает тот или иной порт в Windows, можно воспользоваться командой в консоли:
Дальше через диспетчер задач смотрите, какой процесс имеет указанный pid. В моем случае это apache. Если это какой-то системный процесс, у него будет pid 4.
Итак, конфиг apache отредактировали, порт 80 указали. Теперь установим apache 2.4 как службу windows. Для этого открываем командную строку от администратора (это важно), переходим в каталог C:\Apache24\bin и выполняем:
Вы можете увидеть ошибку, связанную с отсутствием fqdn имени у сервера. Но реально это не представляет проблемы, можно игнорировать.
Переходим в оснастку windows Службы и запускаем Apache2.4.
Дальше выполняем непосредственно публикацию базы 1С через web сервер apache. Открываем базу через Конфигуратор, выбираем Администрирование -> Публикация на веб-сервере. В качестве каталога можно указать тот же, где лежит сам файл с базой.
Все настройки можно оставлять дефолтными. Сохраняем изменения. После этого должен быть выполнен перезапуск службы apache автоматически. Но если платформа была запущена не от администратора, то у нее не хватит прав это сделать. Надо сходить в Службы и перезапустить вручную.
Теперь с ней можно работать через браузер, но пока только с этого компьютера, либо по локальной сети. Далее сделаем так, чтобы доступ был и через интернет.
Доступ к файловой базе 1с через интернет в браузере
На данную виртуальную машину должны быть проброшены 80 и 443 порты с внешнего ip адреса. Как это будет сделано, зависит от ваших сетевых настроек. В случае с proxmox я настраиваю подобный проброс с самого хоста с помощью iptables. Пример настройки iptables читайте в отдельной статье. Там есть и про проброс. Не буду на этом задерживаться в статье про 1С.
Теперь нам нужно получить сертификат. Для этого запускайте в консоли certbot и следуйте инструкциям. Перед этим остановите nginx. Для быстрого получения сертификата certbot предлагает временно запустить свой веб сервер на 80-м порту.
В данном случае 10.10.10.11 - локальный ip адрес виртуальной машины с windows, где опубликована база 1С через apache. Доступ к 1С сразу же закрыт отдельным паролем и механизмом веб сервера auth basic. Создадим файл с именем пользователя и паролем, указанным в конфиге.
Вот и все. Можно относительно безопасно выставлять такую конструкцию в интернет. В случае необходимости можно настроить fail2ban, если кто-то надумает перебирать пароли или просто выполнять непонятные запросы к веб серверу с опубликованными базами. При желании в том же nginx с помощью директив allow и deny можно ограничить доступ к виртуальному хосту с базами на уровне ip адресов. Это на случай, если не умеете делать то же самое на фаерволе. В nginx проще и быстрее.
Не забудьте настроить автоматическое обновление tls сертификатов. Как это сделать, я рассказываю в статье с настройкой web сервера. Ссылку на нее я дал выше.
Какие бывают проблемы с работой в 1С через браузер
В таком режиме у меня уже пару лет работают несколько серверов с 1С. Иногда возникают нюансы с доступом через браузер. Например, не настроить обмен между базами, не зная их локальных путей. Бухгалтера сами его не смогут настроить. Им нужно будет передать информацию по директориям с базами. Понятное дело, что и обновить платформу они сами не смогут, так как нужно будет обновлять и публикацию баз. Когда вы сами подключены через браузер, сделать это невозможно.
Так что некоторые вещи, которые обычно бухгалтера в небольших компаниях способны сделать сами, придется делать тому, кто обслуживает этот сервер. Но бонусом идет то, что на самих пользовательских компьютерах ничего настраивать не надо. Вы просто передаете пользователю адрес в интернете и учетные данные. И он начинает работать в базе 1с. Платформу ставить не надо, как и решать вопрос с лицензиями на клиентах.
Сделать это надо в cmd с правами администратора. И повторять каждый раз при обновлении платформы, не забывая указать путь к новой версии файла.
Ошибка совершенно не гуглится, так что потратил много времени на ее решение. Помог режим отладки в chrome. Я просто проверил все запросы и нашел ошибочные с кривыми урлами. И так и сяк пытался их решить редиректами на веб серверах, но в итоге пришлось в apache переехать на 80-й порт и ошибка ушла.
Ну и еще одно отмечу. Иногда apache зависает или начинает сильно тупить. Обычно после долгого аптайма в несколько недель. Я подробно не разбирался в проблеме. Предпочел просто перезапускать его раз в сутки ночью. Для этого сделал обычный bat файл и настроил запуск через планировщик Windows.
Понятно, что это грубый костыль, но проблему решает. Ночью все равно с 1С никто не работает. Это история не про отказоустойчивость, резервирование и работу 7/24/365.
Подключение через Платформу 1С:Предприятие к базе 1С, опубликованной в веб
Упомяну одну важную вещь, про которую я сам узнал не сразу. С опубликованной в web базой 1С не обязательно работать через браузер. Можно подключиться через обычную платформу, если она у вас установлена на компьютере. Причем все отлично заработает даже с дополнительной basic auth в виде еще одной авторизации.
Чтобы добавить такую базу в платформу, достаточно указать, что тип расположения информационной базы - веб-сервер.
При подключении к такой базе вам сначала нужно будет ввести пароль на доступ к веб сайту, а потом уже появится авторизация самой 1С. Удобно выходит. И субъективно кажется, что через платформу 1С работать с опубликованной базой немного быстрее. Быстрее отклик на действия пользователя.
Бэкап баз 1С
Для полноты картины расскажу, как легко и быстро забэкапить файловые базы 1С. Пошаговую инструкцию не буду писать, так как у всех свои ситуации и каждый делает по-своему. Я на словах расскажу, как можно поступить с архивными копиями. Сам я каждый раз придумываю разные решения для бэкапов 1С в зависимости от обстоятельств.
Для меня важно держать где-то недалеко от рабочего сервера несколько архивных копий баз, чтобы их можно было оперативно загрузить на сервер и работать с ними. Для этого у меня на этом же гипервизоре отдельная виртуальная машина исключительно для бэкапов. Доступ к ней максимально ограничен. Она сама забирает все бэкапы к себе. С windows машины к ней доступа нет. Сделано это для простейшей защиты от шифровальщиков. Если какой-то вирус попадет на сервер и зашифрует базы 1С, я очень быстро смогу их восстановить из архивных копий, которые хранятся на этом же гипервизоре, только в другой виртуальной машине.
На windows сервере можно просто расшарить директорию с базами 1С, а на виртуалке для бэкапов подключить ее. Я обычно использую Linux систему для этого. В ней монтирую шару по smb. Как это сделать рассказываю в отдельной статье - Как быстро подмонтировать сетевой диск в Linux. После того, как подключили папку с базами 1С к бэкап серверу, можете делать с ними все, что угодно. Например, куда-то копировать с помощью rsync и сохранять изменившиеся базы. Подробно схему бэкапов с помощью rsync описываю тоже отдельно - настройка rsync для бэкапа. Обязательно одну копию держу локально на сервере с бэкапами, вторую отправляю куда-то в удаленный приемник. После этого шару отмонтирую. Она подключена только для копирования баз с windows машины на linux.
Так же для бэкапов вы можете использовать какое-нибудь S3 хранилище, например у того же Selectel. По моим недавним сравнениям по ценам там наиболее выгодные условия из известных хостеров. По крайней мере я дешевле не нашел. Заливать бэкапы в S3 можно с помощью утилиты rclone. У Selectel еще очень удобно сделано в плане настройки времени хранения данных в контейнерах. Я обычно создаю 3 разных контейнера:
- Day - в него заливаются архивы каждый день. Срок хранения файлов в этом контейнере - 7 дней. Настраивается это штатно в панели управления. На стороне хоста, с которого заливаются данные, ничего делать не надо.
- Week - архивы заливаются раз в неделю и хранятся 31 день.
- Month - архивы заливаются раз в месяц и хранятся условно бесконечно.
Таким образом мы просто каждый день льем файлы в S3 в разные контейнеры, а там они автоматом ротируются. Мы всегда имеем 7 последних копий, 4 недельные и помесячные. Удобная схема и не очень дорогая. Стоимость хранения можете сами прикинуть по калькулятору хранилища.
Еще один вариант бэкапа - копировать базы по nfs на какой-то сервер. В общем, тут вариантов может быть очень много. Я для этого и использую такую схему - подключение директории с базами к linux серверу, а там уже возможности по работе с бэкапами безграничные. Можно на тот же Яндекс.Диск их передавать. Вот тоже статья по этому поводу - бэкап на яндекс диск. Правда там речь идет про сайт, но принципиальной разницы нет.
Заключение
Это все, что я хотел рассказать по поводу публикации файловых баз 1С в интернет. Постарался дать не только технические данные но и свои личные подробности, основанные на опыте подобных эксплуатаций. Я хоть и пытаюсь дистанцироваться от 1С, но она настолько популярна в России, что так или иначе сталкиваешься с этим продуктом. Да я и свою бухгалтерию ИП сам веду в 1С :)
Если захотите себе настроить что-то подобное, то обращайтесь ко мне. Я могу подобрать подходящее решение под ваш бюджет и выполнить настройку. Это будет дешевле быстрее и скорее всего лучше, чем вам настроят через франчайзи. По крайней мере то, что я видел, чаще всего было настроено так себе. Без акцента на безопасность и удобство, лишь бы работало.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Проверьте себя на вступительном тесте и смотрите подробнее программу ссылке.
Пошаговое руководство настройки Web сервера Apache на Windows. Не секрет, что файловые базы через веб-сервер будут работать намного шустрее, чем через обычный доступ к сетевому каталогу. Эффект особенно заметен, когда старые компы вообще не справляются с обычным сетевым доступом, регулярно выплевывают 1С. А доступ через веб сервер даже на компьютерах серии "Хлам" работает на ура!
Хоть 1С и не рекомендует использовать веб сервер в файловом режиме (а только в серверном) - тем не меннее для маленьких предприятий с 2-3 бухгалтерами использование веб сервера на новых конфигурациях с "управляемыми формами" (Бухгалтерия 3.0, Зарплата 3.0 и прочее) - позволяет организовать довольно быстрый доступ к базе сетевых компьютеров, даже если они компьютеры эти по сути уже старый хлам. Важно лишь, что бы основной компьютер с базами и веб сервером был приличный (например Core I3, 8 Гбайт оперативки и SSD диск).
Пошаговое руководство по настройке вебсервера 1С на Apache (включая файловый вариант баз данных)
1. Скачиваем установщик Apache
По каким-то причинам все новые версии (например 2.4.25) Apache перестал выкладывать в виде самораспаковывающегося дистрибутива. Для нас вполне приемлемо использовать не самый последний дистрибутив 2.2.25 - позволяющий получить удобный установщик и избежать дополнительных манипуляций.
Обращаю внимание - нам удобно использовать именно *.msi установщик
По рекомендации пользователя ogre2007 (спасибо, Владимир) выкладываю ссылку на
Выбираем “no ssl” дистрибутив, если базы будут открыты только внутри нашей локальной сети или “ssl” дистрибутив, если база будет открываться в интернете. Дополнительно про настройку ssl можно почитать в статье инфостарт 1С + Apache + SSL: почему вы должны использовать SSL (наглядная демонстрация)
В нашем примере будем настраивать сервер без ssl для использования только внутри локальной сети.
2. Запускаем скачанный установщик
Заполняем Network Domain: Localhost, Server name: Localhost
Нажимает NEXT, Setup type: Typical NEXT, NEXT, INSTALL
3. Проверяем запустился ли веб сервер
Мы должны увидеть страничку с надписью It Works !
Выясним IP адрес нашего компьютера в локальной сети. Для этого в нижнем правом углу (рядом с часами) находим иконку локальной сети, кликаем на ней правой кнопкой и открываем "Центр управления сетями и общим доступом"
И нажимаем кнопку "Сведения"
В моем случае адрес компьютера в локальной сети 192.168.0.189
Теперь возвращаемся в броузер и проверяем доступность страницы It Works по IP адресу Если снова увидели знакомую страницу It Works - все хорошо,
4. Проверяем доступность страницы с других компьютеров и настраиваем брандмауэр
Кликаем на раздел "Правила для входящих подключений", затем в правой части окна "Создать правило"
Выбираем "Для порта" - Далее, Протокол TCP, Опреленные локальные порты: 80, Далее
Устанавливаем "Разрешить подключение" - Далее,
Указываем произвольное имя, например "Веб сервер 80 порт для 1С". Готово.
Снова идем на другие компьютеры и убеждаемся, что теперь по IP адресу 5. Публикуем нашу базу на веб сервере.
Открываем конфигуратор нашей базы (Запуск 1С обязательно от имени администратора)
Переходим в Администрирование - "Публикация на веб-сервере"
Каталог - по сути произвольный каталог с файлами веб сервера для текущей базы. Желательно название каталога, что бы совпадало с названием базы (для простоты). Остальные флажки оставляем как на картинке. Смысл и необходимость каждого флажка можно будет разобрать позже.
Невозможно записать c:\Program Files (x86)\Apache . значит вы запустили 1С не от имени администратора. Закройте 1С и заново запустите (теперь "от имени администратора")
Специальные предложения
Хорошая статья, часто пользуюсь. Но прошу автора добавить информацию про более новый апач. Например 2.4, вот сайт для скачивания: https://www.apachelounge.com/download/ . Также если качаете х64, то будьте готовы поставить аналогичную х64 1с платформу и в httpd.conf отредактировать строку LoadModule _1cws_module "C:/Program Files/1cv8/8.3.9.2016/bin/wsap24.dll". Спасибо.
zolkin_i; Chaotic; LavrikovaJ; i.c.h; maksa2005; user1571738; psa247; al40in; evgenepc; Gendelf; Basil_Kudinov; criptid; Nubsdale; Thalt; vashkostya; BoltVl; tatakuka; maxst22; user696048_; Nefilimus; davdykin; nems; Tarlich; wowik; acanta; user705522_constantin_h; Aleksey81; + 27 – Ответить
(142) Не подскажите еще если база расположена на сервере 1с в кластере серверов возможно ли так же подключаться через браузер ?
(143) Да, конечно. Использование веб сервера официально фирмой именно для "серверных" (кластер+SQL) и предусмотрен.
Файловый вариант по мнению 1С и не предназначен для работы с веб сервером (то есть фирма не гарантирует корректную работу веб сервера в файловом режиме).
(0) Вот только одно непонятно, нафига апач то? Я ещё понимаю там, примеры были бы на убунту или цент ос. так нет же, все скрины с виндовз системы, в которую уже встроен веб сервер и ничего дополнительно качать не надо, надо только "галочки" в компонентах системы правильно расставить.
(5) + добавлю негативный опыт использования Апач.
в нескольких небольших офисах 5-6 рабочих мест базы опубликованы через Апач, конфигурации УТ 11, БП 3.0, ЗУП 3.0. Поначалу - все отлично. Где-то без проблем больше 2-х лет, где-то и 3-х месяцев толком не проработало. В одном офисе в течение 3-х месяцев пытался заставить нормально работать, там кстати, на Убунту стоял файловый сервер с базами 1С.
В конце концов начинались одни и те же проблемы - пользователь открывал документ, закрывал, но он почему-то оставался заблокированным. Плюс часто отваливалось соединение. И т.д. и т.п.
Танцы с бубном проблем не решали, иногда проблема пропадала где на неделю, где на 2. Потом "снова здорово".
Пробовали разные версии Апача, в том числе и 2.4. Что мертвому припарка.
Замена на штатный (для Windows 7 и поздние) IIS решило проблему совсем.
(6) у меня на IIS проблем при работе до 6-ти пользователей включительно не наблюдается (несколько разных офисов, с разным оборудованием).
(9) таких "инструкций" в интернете тьма тьмущая, в том числе и тут на инфостарте.
Кстати, поставили тут IIS. В браузере все работает, а платформа не запускается. Т.е. она даже запускается, но вываливается на любой попытке открыть окошко. И ладно бы платформа - так и мобильное приложение отказывается подключать внешнюю компоненту из общего макета. И ладно бы эти глюки были общими для IIS и Apache, так ведь нет же - поставил Apache и все заработало как надо: и платформа запускается, и МП внешнюю компоненту волшебно начал видеть. Так что я, лично, по поводу IIS очень плохо думаю, что-то там разработчики 1С в компоненте связки в последней платформе явно намудрили. Windows 10, IIS искаропки который, веб-сервисы работают, а МП и платформа - нет (запускаются, но дальше глюканы).
а как дела с блокировками обстоят? при такой организации работы на 5-6 пользователей страдать от излишних блокировок не будут?
а как дела с блокировками обстоят? при такой организации работы на 5-6 пользователей страдать от излишних блокировок не будут?
5-6 пользователей вполне смогут работать. Есть немалый опыт, когда до 10 пользователей успешно работало в файловой базе (сервер терминалов + ssd диск).
В нашем случае мы избавляемся от терминального сервера и получим приемлемое по производительности решение.
(10) 10 пользователей в терминале на файловой базе не равно 5-6 через web сервер. Принцип работы у веб сервера и обычной файловой базы другой. Разве веб сервер не блокирует целиком всю таблицу на время выполнения запроса пользователя?
Зачем выкладывать +100500 инструкций. А что делать если апач не запустился? Как посмотреть занятные порты? Как настроить безопасность? Раскройте чуть больше, чем всем уже и так известно.
(7) Кому-то и такого достаточно. Главное идея, о том, что можно задрать лёгкий сервис для отладки без использования серверов, а это уже плюс в репу! :)
Зачем выкладывать +100500 инструкций. А что делать если апач не запустился? Как посмотреть занятные порты? Как настроить безопасность? Раскройте чуть больше, чем всем уже и так известно.
Попробую ответить, Андрей, коль уж вы поинтересовались.. В какой то момент я обнаружил, что критиковать чужую работу - приносит мало пользы. А вот написать простую инструкцию как я обнаружил из своей публикации "УПП. Инструкция для бухгалтера по формированию НДС" по количеству одобрений- реально помогает людям решать свои задачи.
Кроме того инструкцию я писал прежде всего для своих сотрудников - стажеров. Потому как мы не нашли за вменяемое время что-либо настолько простое, что бы новичек смог бы бы сразу попробовать не имея багажа знаний.
(9) Сколько статей выдается в поиске по настройке НДС? По слову Apache - 113, из низ 50% это настройка web сервера, инфостарт в последнее время стал прямо личным блогом. Сколько статей начинается с "я это пишу чтобы не забыть для себя, так что строго не судите". Ваша статья о том же, сделайте себе локальную wiki и пишите туда все что угодно, или блог заведите.
Потому как мы не нашли за вменяемое время что-либо настолько простое, что бы новичек смог бы бы сразу попробовать не имея багажа знаний.
Зато там еще и про SSL! :)
psa247; Емельянов Алексей; starik-2005; Мах; Gendelf; jif; Anna_arbuz; svcoopers; monkbest; + 9 – Ответить
Один из сценариев публикации базы 1С — использование веб-сервера Apache на системе Windows. Это может быть актуально, если мы больше доверяем данному веб-серверу, вместо встроенного в Windows IIS. Описанные действия применимы для любой версии Windows от 7 до Server 2019. В моем примере использовались Windows Server 2012 R2, Apache 2.4, 1C 8.3.
Установка Apache
Переходим на страницу загрузки официального сайта Apache и скачиваем нужную версию программы:
* в данном примере скачивается одна из последних версий на момент обновления инструкции — 2.4.46 для системы x64 с поддержкой SSL.
Загруженный архив распаковываем в любой каталог, например, C:\Apache24.
Открываем командную строку от администратора и переходим в папку bin каталога, куда распаковали apache — в нашем случае:
Запускаем установку apache как сервиса Windows:
Мы должны увидеть:
* наш веб-сервер успешно установлен.
В процессе запуска службы сразу после установки может выскочить ошибка. Нужно просто запустить Apache вручную. Для этого открываем службы Windows командой:
Находим сервис с названием Apache и запускаем его:
Установка завершена, и мы можем переходить к публикации.
Публикация базы 1С
Мы можем опубликовать базу с помощью графической оболочки или утилиты webinst из командной строки. Мы рассмотрим оба варианта.
Также нужно отметить, что веб-сервер и сервер 1С могут быть на разных компьютерах.
Графический интерфейс
Запускаем 1С и выполняем вход в базу в режиме конфигуратора.
Переходим в пункты меню Администрирование - Публикация на веб-сервере:
В открывшемся окне вводим имя для базы, выбираем веб-сервер Apache и указываем каталог, куда будут помещены конфигурационные файлы для публикации базы:
* имя базы и путь могут быть любыми, но желательно, чтобы они были такими же, как имя самой базы.
Нажимаем кнопку Опубликовать — мы должны увидеть результат выполнения команды:
* если мы получим ошибку Веб серверы не обнаружены, необходимо убедиться, что служба Apache находится в состоянии «Работает».
Система нам предложит перезапустить веб-сервер, чтобы изменения вступили в силу. Однако, с веб-сервером Apache это не всегда работает корректно, поэтому просто отказываемся от перезапуска:
. и идем в службы Windows:
Находим службу Apache, кликаем по ней правой кнопкой мыши и выбираем Перезапустить:
Командная строка
В командной строке, запущенной от администратора, переходим в каталог с программой 1С, например:
cd C:\Program Files\1cv8\8.3.18.1208\bin
* обратите внимание, что в вашем случае версия будет другой. Необходимо посмотреть правильный путь и ввести его.
После вводим команду:
а) файловый вариант:
- apache24 — версия нашего веб сервера и тип самого сервера.
- wsdir — имя публикации для базы.
- dir — каталог для хранения файлов публикации.
- connstr — путь до базы. В случае хранения базы в файле пишем путь до нее. Если используется сервер 1С, то пишем его адрес и имя базы.
- confpath — путь до конфигурационного файла Apache.
Мы должны увидеть:
net stop Apache2.4 && net start Apache2.4
Запуск
Несколько баз
Если нам нужно опубликовать несколько баз на одном веб-сервере, то просто повторяем действия:
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти вступительный теcт.
Введение
Ранее я уже рассказывал, как публиковать файловые базы 1С. Схема простая и рабочая, но ее можно упростить еще больше, исключив систему Windows вообще. Все, что нужно для публикации баз 1С, есть в Linux. Рассказываю подробно, как это сделать. Вот что нам понадобится для публикации 1С баз:
Собственно и все. Набор софта простой и достаточно узкий. Ничего лишнего. Отдельно не забываем про клиентские лицензии 1С. Они могут быть установлены как на сервере, так и у клиентов. В моем примере лицензии будут клиентские, так что на сервер я их устанавливать не буду. Я проверял данное решение как на аппаратных usb ключах в локальной сети, так и софтовых по одной на каждом клиенте.
Установка компонентов 1С:Предприятия на Linux
Передаем архив на сервер и распаковываем.
Нам нужно установить только следующие компоненты:
Сервер 1С предприятия установили на Centos, переходим к настройке веб сервера для публикации баз.
Настройка apache для публикации баз 1с
Нам необходимо установить непосредственно web сервер apache.
Запустите его и убедитесь, что веб сервер работает. Для этого перейдите по ip адресу сервера в браузере. Вы должны увидеть стартовую страницу apache.
Если страница не открывается, скорее всего у вас включен и не настроен firewalld. Откройте необходимые порты:
Проверяем конфигурацию apache и перезапускаем его:
У нас почти все готово к публикации баз 1С. Необходимо только установить шрифты Microsoft's Core Fonts.
Установка шрифтов Microsoft's Core Fonts в Centos
Все подготовительные действия сделали. Осталось опубликовать саму 1С базу.
Публикация баз 1С в Centos
В директории /opt/1cv8/x86_64 хранятся бинарники от установки 1С. С их помощью опубликуем файловую базу. Но перед этим нам надо скопировать сам файл с базой в какую-то директорию. Например, в /opt/1Cbase. Выставляем полные права на эту директорию и файлы в ней для веб сервера:
Так же создадим директорию для веб сервера, где будет располагаться файл для веб публикации базы:
Публикуем файловую базу:
Публикуем базу с сервера 1С:
1cbase | алиас, который нужно будет добавить к адресу сервера для доступа к этой базе |
/var/www/1Cbase | путь к публикации базы, где будет располагаться .vrd файл с описанием подключения к базе через web |
File=/opt/1Cbase; | строка подключения файловой базы |
Srvr=1CSRV;Ref=1cbase; | строка подключения серверной базы |
После этого осталось только перезапустить веб сервер и идти проверять публикацию.
Если используете клиентские лицензии на компьютерах, а не на сервере, то через браузер скорее всего получите ошибку получения лицензии. В таком случае используйте установленную платформу, подключая базу через публикацию в web.
Запустится стандартная платформа, которая без проблем найдет локальную или сетевую лицензию, если она установлена.
Error when loading component 'help'
Очень распространенная ошибка, которую вы можете получить - Error when loading component 'help'.
Ее проблема в том, что текст ошибки совершенно не информативен. Но чаще всего она связана с правами доступа к файлам с базой. У вас скорее всего не стоит владельцем файла с базой веб сервер apache. Второй вариант - работает SELinux. В контексте данной задачи я не разбирался с его настройкой, поэтому просто отключал.
Во время написания статьи как раз столкнулся с проблемой SELinux, так как не заметил, что он остался включен на тестовой машине. Все перепроверил и только потом вспомнил про него. Отключил временно в консоли и сразу все заработало:
Обновление опубликованной через web базы 1с
Подключившись к опубликованной базе через web, нет возможности обновить ее. Если у вас база на сервере 1С, то это не проблема. Просто подключаетесь толстым клиентом и делаете все, что нужно. Если у вас файловая база, настроенная по предложенному в статье способу, вам нужно будет каким-то образом подключаться к ней через толстого клиента. Проще всего это сделать напрямую, через Samba.
Подойдет любой способ ее настройки. У меня есть статья - быстрая и простая настройка samba. Можете взять подходящий вам способ аутентификации и все сделать. Далее подключаетесь к файловой базе как обычно по сети толстым клиентом и обновляете ее.
Заключение
Не забудьте в таком режиме публикации 1с баз добавить побольше памяти и процессора виртуальной машине с веб сервером. Рекомендую не менее 4CPU и 8G Ram. С каждым релизом 1С хочет все больше и больше ресурсов. Еще во время тестов заметил такую вещь, что виртуалка с 1С не запрашивала больше оперативной памяти, несмотря на то, что было включено динамическое выделение. При этом все жутко тормозило и памяти явно не хватало. Пришлось отключить динамическую память и жестко задать 8G, чтобы все зашевелилось более ли менее быстро.
Для безопасности и удобства, перед Apache можно настроить Nginx в режиме proxy_pass.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Проверьте себя на вступительном тесте и смотрите подробнее программу ссылке.
Для того чтобы в сети Интернет появился сайт, он должен быть размещен на сервере, подключенном к сети и имеющем IP-адрес. Сервер представляет собой компьютер, на котором установлено специальное программное обеспечение, которое в свою очередь также называют веб-сервером. Существует большое количество веб-серверов, и самым популярным из них является Apache.
Рис.2 Функции Apache
Установка Apache
До того как произойдет настройка Apache для 1С и сама публикация на веб сервере Apache базы 1С, его необходимо скачать. Бинарных сборок для Windows сейчас нет, а значит, скачиваем для примера более раннюю версию – 2.2.25, воспользовавшись поиском.
Рис.3 Установка Apache
Запускаем скаченный файл и следуем за установкой.
Рис.4 Запускаем скаченный файл
Рис.5 Окно установки
Рис.6 Окно установки
Далее мы указываем информацию о нашем сервере. Если сервер в локальной сети, а у предприятия нет своего домена, указываем любую информацию, и имя сервера – Localhost, что означает, что сервер будет работать на локальном компьютере. В следующем поле заполняем адрес электронной почты, на который будут приходить ответы сервера (у нас произвольный, для примера).
Выбираем одну из двух настроек: Apache будет запускаться автоматически или вручную, только для текущего пользователя. Оставим рекомендуемые настройки.
Рис.7 Оставим рекомендуемые настройки
Для совместного применения с программой 1С достаточно рекомендуемой установки конфигурации Apache.
Рис.8 Стандартная установка конфигурации Apache
Рис.9 Стандартная установка конфигурации Apache
Рис.10 Стандартная установка конфигурации Apache
Рис.11 Стандартная установка конфигурации Apache
После окончания установки сервер начинает работать автоматически. Внизу на панели появится значок программы.
Рис.12 Появится значок программы
Проверка работы веб-сервера
Рис.13 Проверка работы веб-сервера
Localhost (локальный хост) – это компьютер в компьютерных сетях, стандартное, официально зарезервированное доменное имя для частных IP-адресов. Напомним, что при установке Apache мы указали его в поле «Server Name».
Рис.14 Localhost
Второй способ определения работоспособности нашего веб-сервера – по IP адресу.
Определим IP-адрес нашего ПК в «локалке». Щелкнув в левом углу на значке «Сеть», перейдем в меню «Центр управления сетями и общим доступом».
Рис.15 Центр управления сетями и общим доступом
В открывшемся окне выбираем пункт «Беспроводное сетевое соединение», т.е. нашу сеть, и в появившемся окне нажимаем кнопку «Сведения». Там мы видим IP-адрес нашего компьютера в сети. В нашем случае – 192.168.0.102.
Рис.16 Беспроводное сетевое соединение
Для проверки работы веб-сервера открываем любой браузер и вводим – htpp://192.168.0.102. Если мы снова видим в окне браузера надпись «It works!», все работает.
Рис.17 Строка браузер
Читайте также: