drush
当您的服务器从 Software Collections 安装了较新的 PHP 版本时,您如何运行 Drupal 的cron 作业?
服务器运行的是 Scientific Linux 7,它带有 PHP 5.4,但我们需要并且已经使用 Software Collectionsrh-php71
包安装了 PHP 7.1。Apache 和 Drupal 可以在 PHP 7.1 中正常工作,但我们还需要将 drush cron 作业添加到我们的 crontab 中,并确保 drush 在这样做时使用的是较新版本的 PHP。我们已经测试过 drush(我们安装了 drush 8.1.10)是否会在默认的 PHP 5.4 下运行,以防万一,但 cron 作业会因错误而崩溃,这是可以理解的。
我们尝试通过以 root 身份运行以下命令来测试 cron 命令(以您通常尝试在 scl 包装器中运行命令的方式):
scl enable rh-php71 drush cron -r /data/webs/www/siteroot
但这不会运行,返回错误:
Unable to open /etc/scl/conf/drush!
进一步的测试(在终端中)表明,我们可以在 scl 包装器中的子 shell 中成功运行 drush 命令:
scl enable rh-php71 bash
drush cron -r /data/webs/www/siteroot
exit
有什么方法可以让我们在 crontab 中像“单线”一样运行必要的 drush 命令,还是我别无选择,只能创建一个包含上述命令的单独 shell 脚本,并将其称为 cron代替作业命令?
(我也在Drupal.SE上问过这个问题,虽然这似乎更像是一个 Linux 问题而不是 Drupal 问题,但在 Unix.SE 上没有任何回应。)