【发布时间】:2023-03-30 20:30:01
【问题描述】:
我正在使用 centos docker 映像来构建容器和托管 drupal 站点。我需要在 apache 启动后运行 drush 命令。但是apache启动后的每个命令都不会运行。 apache启动后有什么方法可以运行drush命令吗?我的启动脚本有以下几行:
/usr/sbin/httpd -DFOREGROUND
drush updb -y
【问题讨论】:
我正在使用 centos docker 映像来构建容器和托管 drupal 站点。我需要在 apache 启动后运行 drush 命令。但是apache启动后的每个命令都不会运行。 apache启动后有什么方法可以运行drush命令吗?我的启动脚本有以下几行:
/usr/sbin/httpd -DFOREGROUND
drush updb -y
【问题讨论】:
在您触发该命令后,Apache 可能需要一些时间才能启动。而且,您的 drush 命令甚至可能在 apache 成功启动之前就已执行。
可以有两种方式:
【讨论】:
“在哪里”执行?如果它不在您的 drupal 主目录或以下目录中,则可能 drush 找不到您的站点。 在 drush 之前尝试“cd /var/www/html/orwhateverdirthesitehave”。 另一方面,自动运行此数据模型更改似乎并不安全。只需要在更新模块并且更新后需要更改数据模型时运行它......恕我直言,像这样自动化是有风险的。 如果不是关于 updb,请考虑使用包含所有 drush 内容的辅助脚本并开始将工作目录更改为 drupal 安装路径。
/usr/sbin/httpd -DFOREGROUND
/home/myuser/drushcommands.sh
在 drushcommands.sh 中
!#/bin/sh
cd /var/www/html/mydrupal
drush cim -y
...
【讨论】: