直接プログラムを実行すると問題ないのに、heteml(ヘテムル)のcronだとエラーで動かなかった。
hetemlのcron 設定マニュアルにくわしくありますが、それ以外にもいくつか注意点があるようです。
プログラムの先頭に必ず下記を入力
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
・・・・
エディタでの保存時に改行コードを「LF」にする
FileZillaの場合、「転送」⇒「転送の種類」⇒「ASCII」
転送後、実行ファイルのパーミッションを「 700 」 に変更する。
絶対パスにするとは、全てのプログラムに当てはまるわけではありません。
今回作ったプログラムは、xmlファイルを作成するものでした。普通に実行するとxmlファイルが出来るのですが、cronでは全くファイルが作成されませんでした。どうやら、ファイルの作成場所を「相対パス」ではなく「絶対パス」で指定しなければなりませんでした。
◯ $file_name = 'xml/test.xml';//相対パス
× $file_name = '/home/sites/heteml/users/◯/◯/◯/◯◯/web/◯◯/test/xml/test.xml';//絶対パス
2015-06-11 (木) 16:14 投稿