Menurut pria itu:
Daemon cron memulai subkulit dari direktori HOME Anda. Jika Anda menjadwalkan perintah untuk dijalankan ketika Anda tidak masuk dan Anda ingin perintah dalam file profil Anda dijalankan, perintah tersebut harus secara eksplisit membaca file .profile Anda.
Daemon cron menyediakan lingkungan default untuk setiap shell, mendefinisikan HOME, LOGNAME, SHELL (= / usr / bin / sh),
dan PATH (= / usr / bin).
Jadi cron daemon tidak tahu di mana php berada dan Anda harus menentukan path php lengkap dengan tangan, misalnya (Saya tidak tahu jalur PHP asli Anda):
#!/bin/sh
/usr/local/bin/php /home/v/file.php
sh /root/x/some.sh
Cara lain adalah dengan mencari / etc / profile (atau .profile / .bashrc) Anda, misalnya
* * * * * . /home/v/.bashrc ; sh /home/v/test.sh
Ini berguna jika .bashrc Anda mengatur variabel lingkungan yang Anda butuhkan (yaitu PATH)
EDIT
Bacaan yang menarik adalah " Newbie: Intro to cron ", jangan meremehkan artikel dari judul (Ini bacaan untuk semua orang), bahkan itu ditulis dengan lengkap dan menjawab pertanyaan Anda dengan sempurna:
...
PATH berisi direktori yang akan berada di jalur pencarian untuk cron misalnya jika Anda punya program 'foo' di direktori / usr / cog / bin, mungkin ada baiknya menambahkan / usr / cog / bin ke path, karena itu akan menghentikan Anda harus menggunakan path lengkap untuk 'foo' setiap kali Anda ingin menyebutnya.
...