سؤال

أنا أعاني بعض المشاكل مع ob_* وظيفة عندما يعمل ككرونجوب:

<?php
function getLayout($file, $extract=array()) {

    if (is_file($file)) {

        if (count($extract) > 0) {
            extract($extract);
        }

        ob_start();
        include $file;
        $contents = ob_get_contents();
        ob_end_clean();

        return $contents;
    }

    return false;
}

file_put_contents('somecachefile.html', getLayout('somefile.php', array('var1'=>$val1, 'var2'=>$val2)));
?> 

يعد Cronjob مثل هذا: (يعمل كل دقيقة)

* * * * * /usr/bin/php /path/to/cron.php > /dev/null

في هذه الحالة لا يحدث شيء ولكن كرون ركض حقا.

إذا اتصلت بهذا (/usr/bin/php /path/to/cron.php) من سطر الأوامر كل شيء يعمل كما هو متوقع.

أي أفكار ارتكبت فيها خطأ؟

شكرا للمساعدة المقدمة!

هل كانت مفيدة؟

المحلول

ربما تحتاج إلى استخدام المسار المطلق على "SomeFile.php". ربما يتم إنشاؤه في PWD من كرون. أو يمكنك القيام ب ChDIR في بداية البرنامج النصي في بيان Cron.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top