Автоматизация процесса переформирования и опубликования HTML-публикации на сервере
Вопрос:
Как можно автоматически формировать и публиковать HTML-публикацию на сервере с заданной периодичностью?
Ответ:
Для примера рассмотрим случай, когда для публикации используется свой собственный веб-сервер.
Предполагается, что публикация находится в папке C:\Pub сервера.
Путь до исполняемых файлов MySQL разный для разных версий Business Studio:
- Для версии BS 6.1.9218 и выше: C:\Pub\MySQL Server 8.4.4\bin
- Для версии BS 5.0 и выше: C:\Pub\MySQL Server 8.0\bin
- Для BS 4.2 и ниже: C:\Pub\MySQL Server 5.6\bin
1. Однократная настройка:
1.1. Внести правки в конфигурационные файлы (ниже указаны параметр и его новое значение):
- C:\Pub\Apache2.4\conf\httpd.conf
- ServerRoot «C:/pub/Apache2.4»
- Listen 80
- PHPIniDir «C:/Pub.cfg/»
- C:\Pub\MySQL Server 8.0\bin\my.ini
[mysqld]- port=5566
- basedir=«C:/pub/MySQL Server 8.0»
- datadir=«C:/pub/MySQL Server 8.0/dbdata/»
- C:\Pub\www\bsportal.ini
- [database]
port=5566 - [portal]
url=http://SERVERNAME:80/
- C:\Pub\PHP7.4\php.ini
- extension_dir = «C:/Pub/PHP7.4/ext/»
1.2. Создать папку C:\Pub.cfg и скопировать в нее вышеперечисленные конфигурационные файлы.
1.3. Создать службы Pub_Apache и Pub_MySQL и запустить их с помощью команд:
- «C:\Pub\Apache2.4\bin\httpd.exe» -k install -n Pub_Apache -f «C:\Pub.cfg\httpd.conf»
- «C:\Pub\MySQL Server 8.0\bin\mysqld.exe» --install Pub_MySQL --defaults-file=«C:\Pub.cfg\my.ini»
- net start Pub_Apache
- net start Pub_MySQL
2. Далее можно с заданной периодичностью (например, с помощью bat-файла, запускаемого через планировщик) переформировывать публикацию, останавливая и запуская службы веб-сервера до и после, соответственно, и копируя ранее сохраненный bsportal.ini:
- @echo off
- net stop Pub_Apache
- net stop Pub_MySQL
- chcp 65001
- Командная строка для запуска формирования публикации:
- Для BS версии 5.X и ниже: «<Путь, по которому установлена Business Studio>\Business Studio <x64>.exe» /<КЛЮЧРЕДАКЦИИ> /server=<ИМЯСЕРВЕРА> /db=<ИМЯБАЗЫДАННЫХ> /runcmd=«БизнесМодель.КлиентскиеМетоды.HTMLПубликация C:\Pub,<ИМЯГРУППЫ1)>» /quit (подробнее см. Командная строка)
- Для BS версии 6.X и выше: «<Путь, по которому установлена Business Studio>\Business Studio <x64>.exe» /<КЛЮЧРЕДАКЦИИ> /server=<ИМЯСЕРВЕРА> /db=<ИМЯБАЗЫДАННЫХ> /dbtype=<ТИПБАЗЫ> /runcmd=«БизнесМодель.КлиентскиеМетоды.HTMLПубликация C:\Pub,<ИМЯГРУППЫ2)>» /quit (подробнее см. Командная строка)
- copy /y «C:\Pub.cfg\bsportal.ini» «C:\Pub\www\bsportal.ini»
- net start Pub_MySQL
- net start Pub_Apache
Примечания:
- В качестве альтернативы применению данной инструкции и HTML-публикации в целом рекомендуем обратить внимание на Business Studio Portal - в нем, помимо многих других возможностей, задачи переформирования и запуска под сервисом автоматизированы.
- При смене версии Business Studio надо перенастроить скрипт на новую папку или очистить старую C:\Pub. Доформирование/переформирование HTML-публикации между разными версиями Business Studio не поддерживается.
- Для редактирования файлов конфигурации нужно использовать редактор NotePad++ или другой редактор, корректно работающим с кодировками.
Стандартный Notepad из ОС Windows для этих целей не подойдёт.
В NotePad++ нужно использовать кодировку UTF без BOM. - Убедитесь, что указанные порты не заняты в системе.
- Убедитесь, что брандмауэр разрешает соединения с портом службы Pub_Apache.
- Имя сервера (SERVERNAME) можно указывать также в виде FQDN, если сеть это позволяет.
- В планировщике убедитесь, что задача выполняется с наивысшими правами (Рис. 1).
- Публикация может быть запущена либо как служба, либо интерактивно (файлом HTML-publication.exe или через интерфейс Business Studio). Нельзя запускать публикацию одновременно как службу и интерактивно. При запуске службой убедитесь, что связанные с папкой C:\Pub приложения HTML-publication.exe закрыты.
