Como você executa as drush
tarefas cron do Drupal quando seu servidor tem uma versão mais recente do PHP instalada a partir de Coleções de Software?
O servidor está executando o Scientific Linux 7, que vem com o PHP 5.4, mas precisamos e instalamos o PHP 7.1 usando o rh-php71
pacote Software Collections. O Apache e, portanto, o Drupal funcionam bem com o PHP 7.1, mas também precisamos adicionar os trabalhos cron do drush ao nosso crontab e garantir que o drush esteja usando a versão mais recente do PHP ao fazê-lo. Testamos para ver se o drush (temos o drush 8.1.10 instalado) será executado com o PHP 5.4 padrão, apenas por precaução, mas as tarefas cron compreensivelmente travam com erros.
Tentamos testar o comando cron (da maneira que você normalmente tentaria executar um comando dentro de um scl wrapper ), executando o seguinte como root:
scl enable rh-php71 drush cron -r /data/webs/www/siteroot
mas isso não será executado, retornando o erro:
Unable to open /etc/scl/conf/drush!
Testes adicionais (em um terminal) mostram que podemos executar com sucesso o comando drush dentro de um subshell que está dentro de um wrapper scl:
scl enable rh-php71 bash
drush cron -r /data/webs/www/siteroot
exit
Existe alguma maneira de executarmos os comandos drush necessários apenas como um 'one-liner' no crontab, ou não tenho opção a não ser criar um script de shell separado contendo os comandos acima e chamá-lo como o cron comando de trabalho em vez disso?
(Também fiz essa pergunta no Drupal.SE , embora pareça mais uma pergunta do Linux do que do Drupal como tal, não tendo respostas no Unix.SE.)
Depois de ler uma seção mais técnica do guia Software Collections , ao tentar executar um comando que tem argumentos dentro de um
scl
wrapper, você precisa colocar o comando entre aspas simples ou separá-lo da parte do wrapper da linha com dois menos sinais:scl action software_collection_1 software_collection_2 'command --argument'
scl action software_collection_1 software_collection_2 -- command --argument
Meu comando drush é executado com sucesso agora.