Служба приложений Azure Kudu добавляет MySql в PATH

Я пытаюсь настроить Drush9 для Drupal8. Я смог запустить и запустить свой сайт, используя расширения сайта для установки composer и установщика Drupal, но теперь есть обновление Drupal, и я хочу иметь возможность выполнить обновление через консоль cmd службы приложений Azure Kudu ([AppName].scm.azurewebsites.net).

Я следую руководству по обновлению Drupal и могу обновить файлы Drupal, используя composer, но обновление базы данных drush (drush updb) происходит сбой из-за того, что mysql не зарегистрирован в PATH.

Я пробовал бегать SETX PATH "D:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe" где находится mysql.exe, но доступ запрещен.

Кто-нибудь еще успешно добавил exe-файл в PATH, или есть какие-либо другие методы.

Спасибо

3 ответа

Решение

Вы можете добавить настройки приложения в свое веб-приложение, как показано ниже:

Затем перезапустите ваше веб-приложение в консоли Kudu, вы можете проверить его.

Кроме того, вы можете достичь этого с помощью XDT Transform (XML Document Transform).

Смотрите этот вопрос.

Оказывается, поскольку у меня также было установлено расширение сайта для композитора, оно имеет applicationHost.xdt который перекрывал корневой уровень один или вызывал конфликт.

Я закончил тем, что создал D:\home\site\applicationHost.xdt файл со следующим содержимым:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.webServer>
    <runtime xdt:Transform="InsertIfMissing">
      <environmentVariables xdt:Transform="InsertIfMissing">
        <add name="PATH" value="%PATH%;%HOME%\SiteExtensions\ComposerExtension\Commands;%APPDATA%\Composer\vendor\bin;d:\Program Files\MySQL\MySQL Server 5.1\bin" xdt:Locator="Match(name)" xdt:Transform="InsertIfMissing" />
        <add name="PATH" value="%PATH%;%HOME%\SiteExtensions\ComposerExtension\Commands;%APPDATA%\Composer\vendor\bin;d:\Program Files\MySQL\MySQL Server 5.1\bin" xdt:Locator="Match(name)" xdt:Transform="Replace" />
      </environmentVariables>
    </runtime>
  </system.webServer>
</configuration>

Это сохраняет как переменные среды, которые добавляет Composer, так и позволяет мне расширять PATH новым каталогом.

Надеюсь, это поможет кому-то еще с подобной проблемой в будущем.

Вы можете сделать это, чтобы добавить клиент mysql к пути в PowerShell:

$MysqlClientVersion=(Get-ChildItem -Name "D:\Program Files (x86)\mysql\" | Select-String -Pattern "^[\d.]+$" | % { $_.Line }) $Env:PATH += ";D:\Program Files (x86)\mysql\$MysqlClientVersion\bin"

Другие вопросы по тегам