hetemlのcronが動かない時の対処法

直接プログラムを実行すると問題ないのに、heteml(ヘテムル)のcronだとエラーで動かなかった。

hetemlのcron 設定マニュアルにくわしくありますが、それ以外にもいくつか注意点があるようです。

  1. プログラムに一行追加
  2. 改行コードを「LF」で保存
  3. FTP でファイル転送する際は「ASCII」モード
  4. ファイルのパーミッションを「 700 」 に変更
  5. 絶対パスにする

1.プログラムに一行追加

プログラムの先頭に必ず下記を入力

usersXXXの場合
PHP5.6 の場合 「 #!/usr/local/php/5.6/bin/php 」
PHP7.0 の場合 「 #!/usr/local/php/7.0/bin/php 」
PHP7.1 の場合 「 #!/usr/local/php/7.1/bin/php 」
シェルスクリプトの場合 「 #!/bin/sh 」

ftpXXXの場合
PHP5.3 の場合 「 #!/usr/local/bin/php53 」
PHP5.4 の場合 「 #!/usr/local/bin/php54 」
PHP5.6 の場合 「 #!/usr/local/bin/php56 」
PHP7.0 の場合 「 #!/usr/local/bin/php70 」
PHP7.1 の場合 「 #!/usr/local/bin/php71 」
シェルスクリプトの場合 「 #!/bin/sh 」



#!/usr/local/php/5.6/bin/php
<?php
・・・・


2.改行コードを「LF」で保存

エディタでの保存時に改行コードを「LF」にする

改行コードを「LF」で保存

3.FTP でファイル転送する際は「ASCII」モード

FileZillaの場合、「転送」⇒「転送の種類」⇒「ASCII」

FTP でファイル転送する際は「ASCII」モード

4.ファイルのパーミッションを「 700 」 に変更

転送後、実行ファイルのパーミッションを「 700 」 に変更する。

ファイルのパーミッションを「 700 」 に変更

5.絶対パスにする

絶対パスにするとは、全てのプログラムに当てはまるわけではありません。

今回作ったプログラムは、xmlファイルを作成するものでした。普通に実行するとxmlファイルが出来るのですが、cronでは全くファイルが作成されませんでした。どうやら、ファイルの作成場所を「相対パス」ではなく「絶対パス」で指定しなければなりませんでした。

◯ $file_name = 'xml/test.xml';//相対パス
  
× $file_name = '/home/sites/heteml/users/◯/◯/◯/◯◯/web/◯◯/test/xml/test.xml';//絶対パス

このエントリーを共有する


2015-06-11 (木) 16:14 投稿