質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

3回答

655閲覧

PHPをCRONで実行したときの変数の確認

tsubakin

総合スコア19

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2018/10/26 03:11

test.php内で他からデータを取得して呼び出して下記のように
動かしているのですが、これをcronで実行したときに
$filesなど各変数にデータが格納されているか(ちゃんと実行されているか)
確認する方法はどのようにすればよろしいのでしょうか?

※vagrantで実行するとちゃんと格納されたデータは確認できます。

php

1require "test.php"; 2$dat = array(); 3foreach(glob('data/*.json') as $file){ 4 if(is_file($file)){ 5 $files = file_get_contents($file); 6 $data = mb_convert_encoding($files, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); 7 echo $files; 8(続く)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

汎用的な方法としては、php の error_log関数を使って、ファイルに保存するとかでしょうかね。

使用例;

php

1error_log( "ログメッセージ\n", 3, "/path/to/debug.log" ); 2 3error_log( var_export( $array, true ), 3, "/path/to/debug.log" );

投稿2018/10/26 04:09

編集2018/10/26 04:10
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsubakin

2018/10/26 04:53

この場合error_logを記載するのは、同じphp内のechoの後に 追加する形でよろしいのでしょうか? あと、そのファイルの内容を確認する場合はどのようにすればよろしいのでしょうか?
CHERRY

2018/10/26 05:01 編集

その変数を確認したい場所に ` error_log( 〜〜 ) `と記載してください。複数件ある場合は、文字列の連結をするか error_log を必要な数だけ複数行書いてください。 $files の値をログに記録したいのであれば、 error_log( $files ."\n" , 3, "/path/to/debug.log" ); で、/path/to/debug.log に保存されると思います。 表示するのは、サーバーにログインできるのであれば、 `cat /path/to/debug.log ` で表示できますし、 ftp 等であれば、/path/to/debug.log ファイルをお手元のパソコンにダウンロードして、エディタ等で確認してください。 なお、 /path/to/debug.log のファイル名は、一例ですので、ご自身の環境に合わせてください。
tsubakin

2018/10/26 07:58

ありがとうございます サーバーログインできないと思うのでftpの方にしようかと思います ffftpをやってみようかと思いましたが、インストール後うまく設定できませんでしたのでまた別でやってみます。
guest

0

ベストアンサー

echoその他の関数で標準出力に出せば、メールで送られてきます。
メールの設定が正しく為されている事が前提ですが。

メールの設定が出来ない場合は、crontab で、

Plain

10 0 * * * /usr/bin/php /home/foo/bar.php >/tmp/output 2>&1

のようにファイルに出力します。

投稿2018/10/26 03:29

otn

総合スコア84507

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsubakin

2018/10/26 04:41

MAILTO=自分のヤフーアドレス@yahoo.co.jp PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin 39 3 * * 1,2,3,4,5 home/vagrant/php_lessons/index.php いまはこのような感じになっております。 さきほど試してみたら PHP Notice: Undefined variable: files in /home/vagrant/php_lessons/index.php on line 58 このように返ってきましたが これよろしいでのしょうか?
otn

2018/10/26 07:19

警告のメッセージを見る事が出来たと言う事ですね。 よろしいかどうかは、あなた次第です。 echoしたものは見えませんか?見えないならechoが実行されていないということでは?
tsubakin

2018/10/26 07:55

そうですね。 たしかにそうですね。 内容がみえないので実行されてないのでしょうかね。 echoの場所変えてみたらメール自体が来なくなりました。
guest

0

CLIモードで動作させるのでしょうか?
標準出力しているのであればロガーでログに保持するか
メールなどで指定ユーザーにおくればいいでしょう

投稿2018/10/26 03:14

yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsubakin

2018/10/26 04:42

MAILTO=自分のヤフーアドレス@yahoo.co.jp PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin 39 3 * * 1,2,3,4,5 home/vagrant/php_lessons/index.php いまはこのような感じになっております。 さきほど試してみたら PHP Notice: Undefined variable: files in /home/vagrant/php_lessons/index.php on line 58 このように返ってきましたが これで設定はできてますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問