【问题标题】:Run drush command after apache startsapache启动后运行drush命令
【发布时间】:2023-03-30 20:30:01
【问题描述】:

我正在使用 centos docker 映像来构建容器和托管 drupal 站点。我需要在 apache 启动后运行 drush 命令。但是apache启动后的每个命令都不会运行。 apache启动后有什么方法可以运行drush命令吗?我的启动脚本有以下几行:

/usr/sbin/httpd -DFOREGROUND
drush updb -y

【问题讨论】:

    标签: docker drupal centos


    【解决方案1】:

    在您触发该命令后,Apache 可能需要一些时间才能启动。而且,您的 drush 命令甚至可能在 apache 成功启动之前就已执行。

    可以有两种方式:

    1. 要么在运行 drush 命令之前设置静态睡眠。
    2. 在 apache start 命令之后,您可以放置​​一个循环来检查 apache 状态,如果状态未运行,则休眠。否则从循环中中断。在此之后,您可以运行 drush 命令。

    【讨论】:

      【解决方案2】:

      “在哪里”执行?如果它不在您的 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
      ...
      

      【讨论】:

        猜你喜欢
        • 2021-01-13
        • 1970-01-01
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多