Yani şöyle bir PHP komut dosyası çalıştıran bir cronjob var:
0 0 * * * /usr/local/bin/php -f /home/mysite/mysite.com/cronjobs/renewal_email.php
Ben komut satırından aynı komutu ise hatasız çalışır ve l bayrağı ile çalışan hiçbir sözdizimi hataları gösterir. Ancak cron e-postaları aşağıdaki:
Ayrıştırma hatası: sözdizimi hatası, beklenmedik T_OBJECT_OPERATOR
Söz konusu çizgi
$courses[$t->CourseNumber] = $t->course()->CourseName;
Bilgi bu sınırlı miktarda herhangi bir kırmızı bayraklar yükseltmek mi? Bu cron altında değil, komut satırından ne neden herkes görebilir?
/ / Edit DreamHost destek yanıt eklemek için. Senaryo bu değişiklik ile çalışıyor.
Sunucuda PHP'nin varsayılan sürüm PHP4 olduğunu. Sunucunun bulunduğu sürümü belirtmek için yerine Apache daha PATH ayarlarını kullanır olmasıdır. Eğer kabuk php yazarken her zaman ilk çalışır böylece PHP4 / usr / local / bin / php için yol PHP5 yolu / usr/local/php5/bin/php önce gelir.
Eğer tüm yolu belirtmeniz gerekir kabuğundan PHP5 çalıştırmak için:
/usr/local/php5/bin/php --version
Her cron PHP5 tam yolunu belirtmeniz gerekir bu yüzden cron kullanıcı .bash_profile
yolunu kullanmak olmaz.