Назад | Перейти на главную страницу

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

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

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

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

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

Спасибо

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

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

Кроме того, вы можете добиться этого с помощью XDT Transform (преобразование XML-документа).

Посмотри это вопрос.

Оказывается, поскольку у меня также было установлено расширение сайта композитора, у него есть собственный 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"