Автоматизация процесса переформирования и опубликования 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 закрыты.
