Автоматизация процесса переформирования и опубликования HTML-публикации на сервере

Вопрос:

Как можно автоматически формировать и публиковать HTML-публикацию на сервере с заданной периодичностью?

Ответ:

Для примера рассмотрим случай, когда для публикации используется свой собственный веб-сервер.

Предполагается, что публикация находится в папке C:\Pub сервера.
Путь до исполняемых файлов MySQL разный для разных версий Business Studio:

  • Для версии 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
  • 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
  • "<Путь, по которому установлена Business Studio>\Business Studio Enterprise.exe" /server=<ИМЯСЕРВЕРА> /db=<ИМЯБАЗЫДАННЫХ> /runcmd="БизнесМодель.КлиентскиеМетоды.HTMLПубликация C:\Pub,<ИМЯГРУППЫ1)>" /quit (подробнее см. Командная строка)
  • copy /y "C:\Pub.cfg\bsportal.ini" "C:\Pub\www\bsportal.ini"
  • net start Pub_MySQL
  • net start Pub_Apache

 

Примечания:

  1. В качестве альтернативы применению данной инструкции и HTML-публикации в целом рекомендуем обратить внимание на Business Studio Portal - в нем, помимо многих других возможностей, задачи переформирования и запуска под сервисом автоматизированы.
  2. При смене версии Business Studio надо перенастроить скрипт на новую папку или очистить старую C:\Pub. Доформирование/переформирование HTML-публикации между разными версиями Business Studio не поддерживается.
  3. Для редактирования файлов конфигурации нужно использовать редактор NotePad++ или другой редактор, корректно работающим с кодировками.
    Стандартный Notepad из ОС Windows для этих целей не подойдёт.
    В NotePad++ нужно использовать кодировку UTF без BOM.
  4. Убедитесь, что указанные порты не заняты в системе.
  5. Убедитесь, что брандмауэр разрешает соединения с портом службы Pub_Apache.
  6. Имя сервера (SERVERNAME) можно указывать также в виде FQDN, если сеть это позволяет.
  7. В планировщике убедитесь, что задача выполняется с наивысшими правами (Рис. 1).
Рисунок 1. Окно планировщика заданий
« ПредыдущаяНа уровень вышеСледующая »
 
1) Начиная с версии 4.1 кроме имени группы в качестве этой переменной можно использовать guid группы, название или guid сохранённой пометки.
Driven by DokuWiki