drush
サーバーにソフトウェアコレクションから最新のPHPバージョンがインストールされている場合は、Drupalのcronジョブをどのように実行しますか?
サーバーはPHP 5.4に付属のScientific Linux 7を実行していますが、rh-php71
Software Collectionsパッケージを使用してPHP 7.1が必要でインストールされました。 ApacheとDrupalはPHP 7.1でうまく機能しますが、crontabにdrash cronジョブを追加し、これを実行するときに、drashが最新バージョンのPHPを使用していることを確認する必要があります。もしそうであれば、drush(drush 8.1.10がインストールされている)がデフォルトのPHP 5.4で実行されているかどうかをテストしましたが、cronジョブは当然エラーでクラッシュします。
私たちは(通常試みるように)cronコマンドをテストしたいと思います。scl ラッパーでコマンドを実行する)、rootとして次のコマンドを実行します。
scl enable rh-php71 drush cron -r /data/webs/www/siteroot
しかし、実行されず、エラーが返されます。
Unable to open /etc/scl/conf/drush!
(ターミナルで)追加のテストでは、sclラッパー内のサブシェルでdrashコマンドを正常に実行できることがわかりました。
scl enable rh-php71 bash
drush cron -r /data/webs/www/siteroot
exit
crontabで「1行」などの必須のdrushコマンドを実行する方法はありますか?それとも、上記のコマンドを含む別々のシェルスクリプトを作成し、代わりにcronジョブコマンドと呼ぶ以外に選択肢はありませんか?
(私もこの質問をしました。ドルファルSEこれはDrupalの問題ではなくLinuxの問題のように見えますが、Unix.SEには応答がありません。 )
答え1
読んだ後ソフトウェアコレクションガイドのより技術的な部分走ろうとするとパラメータ付きコマンドラッパーでは、scl
コマンドを一重引用符で囲むか、2つのマイナス記号を使用して行のラッパー部分と区別する必要があります。
複数の引数を使用してコマンドを実行する場合は、コマンドとその引数を引用符で囲む必要があります。
scl action software_collection_1 software_collection_2 'command --argument'
または - コマンド区切り文字を使用して、複数の引数を含むコマンドを実行します。
scl action software_collection_1 software_collection_2 -- command --argument
今私のdrushコマンドは正常に実行されます。