DrupalのCronタスクをHetemlサーバで設定する

Drupalでは,定期的にcronジョブを実行する必要があります。その設定をHetemlサーバーで行う方法を記します。

スクリプトファイルの準備

Drupalに同梱されているスクリプトは,curlやlynxが必要ですが,Hetemlではそのコマンドは使えません。そこで,下記のコードを書いたスクリプトファイルを用意します。名前は cron.sh とします。(別に好みの名前で結構ですよ)

#/bin/sh
cd /home/sites/heteml/users*/h/o/g/hoge/web/drupal/
/usr/local/bin/php5 cron.php

上記の赤字の部分は,Hetemlから教えられたあなたのディレクトリへのパスを含めたdrupalのインストールフォルダへのフルパスを指定します。このスクリプトは実行ファイルですので,公開ディレクトリから外れているappsフォルダにアップロードします。 appsフォルダはFlash Media Server専用だそうで,変なものは入れない方がいいんだそうです。ですので,myappフォルダを作成して,そこに保存することにしました。そして,オーナーに実行許可を与えます。 

修正1) 以前,最後の行は php cron.php としていましたが,php5でないとパースエラーが出ることがありましたので,php5 に変更しました。

修正2) コマンドをphp5にした場合,sshで実行するとOKなのにcronで実行すると

php5: command not found

のエラーが出るのでコマンドにhetemlのSSH設定の記述を参照して,フルパス(/usr/bin/php5)を指定しました。

修正3) フルパスに/usr/bin/php5 を指定したのですが,やはりSSHでOKなのに,cronで実行すると

/usr/bin/php5: No such file or directory

のエラーが出ました。hetemlのcron設定のマニュアルページを参照してみると。

PHP5 をご利用の方は 「 #!/usr/local/bin/php5 」 と入力してください。

という記述があったので,それにあわせてフルパスを /usr/local/bin/php5 に変更しました。

Cronタスクの設定

Hetemlのコントロールパネル > cron設定 を表示します。実行時間は任意に指定します。実行ファイルフルパスには,先ほど作成したスクリプトを次のように設定します。

/myapp/cron.sh

以上で,指定した時間にCronタスクが実行されるようになります。

トラックバック


URL から "-MoIyadayo" を削除してトラックバックを送信してください。
トラックバックは承認後に表示されます。