質問
- cronでphp5.6を実行したい
-
本文:
掲示板で色々を検索したら下記コマンドをCronに設定しましたが、
/usr/bin/php5.6 /home/ドメイン/アカウント/public_html/cron.php
いつもエラーが出て実行されません、
PHP Fatal error: Call to undefined function filter_var() in /home/ドメイン/アカウント/public_html/lib/Pdo/Mysql.php on line 351
X-Powered-By: PHP/5.6.30
php5.6にFilterが実装されているはずですが、なぜこのようなエラーが出るでしょうか?もしかしたら見た目はphp5.6で実際はphp5.1でやられていますかな?
よろしくお願い致します。 - 緊急度:急ぎ投稿者:cheartさん投稿時間:2017/06/01 01:34
回答 No.6085
-
本文:
>/usr/bin/php5.6 /home/ドメイン/アカウント/public_html/cron.php
書き間違いだと思いますが、アカウント/ドメインのはずです。
■
/usr/bin/php5.6 /home/アカウント/ドメイン/public_html/cron.php
cron.phpの中身
<?php
ob_start();
phpinfo();
$output = ob_get_contents();
ob_end_clean();
$fname = 'test.html';
file_put_contents($fname, $output);
=====
上記を実行させたら、私が使用しているミニバードでは、PHP Version 5.6.30になってますが・・。
■
filter_var()の動作確認をする簡単なサンプルを実行してみたら、はっきりするのでは? - 投稿者:k-tanさん 投稿時間:2017/06/01 03:35
回答 No.6086
-
本文:
cron のエラーって、メールで届くのでしたっけ?
cron で php を動かしたときと、ブラウザで /cron.php にアクセスしたときとでは、動く php が違うので、その辺を混同していませんか?
- 投稿者:ジョバンニさん 投稿時間:2017/06/01 08:33
質問者からのコメント
メールで届いています、中にははっきり5.6のVersion番号があります。Cronの設定にもphp5.6を指定しており、Versionが間違いないと思います。かつphpinfoの結果を見ると、Filter がEnableされており、何が問題かわかりません。
回答 No.6087
この回答がベストアンサーです
/usr/bin/php5.6 /home/アカウント/ドメイン/public_html/cron.php
cron.phpの中身
<?php
$output="test";
$var="123";
if (filter_var($var, FILTER_VALIDATE_INT)) {
$output="数字です";
}
$fname = 'test.txt';
file_put_contents($fname, $output);
===================
こんな感じでcron経由で動作させてみたが、エラーにならないですね。
質問者からのコメント
確かに簡単なfilter_varを使うスクリプトを組んだら問題なく実行されました。元のスクリプトにBugがあるのかな?調べます。有難うございました。