メンバーメニュー

ようこそ、ゲストさん

トップ > カテゴリ一覧 > ミニバード > cronでphp5.6を実行したい

質問

  • 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.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経由で動作させてみたが、エラーにならないですね。

  • 投稿者:k-tanさん 投稿時間:2017/06/01 21:11
質問者からのコメント

確かに簡単なfilter_varを使うスクリプトを組んだら問題なく実行されました。元のスクリプトにBugがあるのかな?調べます。有難うございました。

回答 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されており、何が問題かわかりません。