我正在尝试为 Drupal8 设置 Drush9。我能够使用站点扩展安装 Composer 和 Drupal 安装程序来启动并运行我的站点,但现在有一个 Drupal 更新,我希望能够通过 Azure 应用服务 Kudu cmd 控制台 ([AppName].scm.azurewebsites.net) 执行更新。
我正在关注Drupal 更新指南并且能够使用 Composer 更新 Drupal 文件,但drush updb
由于 mysql 未注册到 PATH,drush 数据库更新()失败。
我尝试运行SETX PATH "D:\Program Files\MySQL\MySQL Server 5.1\bin\mysql.exe"
mysql.exe 所在的位置,但出现访问被拒绝的情况。
有没有其他人成功将 exe 添加到 PATH,或者有其他方法吗?
谢谢
答案1
答案2
事实证明,由于我还安装了作曲家站点扩展,它有自己的扩展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。
希望这可以帮助将来遇到类似问题的其他人。
答案3
您可以这样做将 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"