Jalankan file PHP dalam pekerjaan cron menggunakan CPanel


102

Saya hanya mencoba menjalankan skrip PHP menggunakan tugas cron dalam CPanel - apakah ini sintaks yang benar:

/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null

Saya tidak mendapatkan pemberitahuan email yang menyatakan bahwa cron telah selesai, apakah saya perlu melakukan sesuatu yang spesifik dengan file PHP?


25
Saya pikir ini cukup relevan karena banyak proyek dihosting di Cpanel, dan orang perlu tahu cara menjalankan cron job jika perlu
William

8
Jika cPanel tidak diizinkan di Server Fault atau Stack Overflow, pertanyaan apa yang harus diajukan?
belerang

9
cukup ironis bahwa pertanyaan ini digolongkan sebagai 'di luar topik' untuk StackOverflow tetapi merupakan pertanyaan paling aktif yang pernah saya miliki di sini ..... Saya harap ini membantu orang lain :)
Zabs

Thanx @Tatu Ulmanen Ini bekerja untuk saya!
Tushar Rmesh Saindane

Jawaban:


66

Dalam sistem crontab:

  • /usr/bin/phpadalah php biner jalan (yang berbeda di beberapa sistem ex: freebsd /usr/local/bin/php, linux: /usr/bin/php)
  • /home/username/public_html/cron/cron.php harus menjadi jalur skrip php Anda
  • /dev/null harus berupa keluaran cron, misalnya: /home/username/stdoutx.txt

Jadi, Anda dapat memantau cron Anda dengan melihat keluaran cron /home/username/stdoutx.txt


1
Saya menggunakan ini sekarang dan berfungsi tetapi saya tidak mendapatkan pemberitahuan email apa pun, ada ide mengapa tidak? php /home/username/public_html/cron/cron.php note Saya harus meletakkan baris berikut di bagian atas script PHP #! / usr / bin / php -q
Zabs

Jika Anda ingin cronjob mengirim email untuk Anda, Anda harus menggunakan php mail (), saya rasa cronjob tidak memiliki sistem email otomatis, kecuali jika Anda menggunakan shell scripting atau php.
Somy A

1
Ketika saya mengklik tab "cronjobs" di cPanel, ada dua kotak di halaman - satu untuk perintah yang ingin Anda jalankan, dan satu lagi untuk alamat email yang Anda inginkan untuk dikirimi keluaran. Ini ada di cPanel 11.
user3640967

2
Apa yang akan menjadi perintah penuh? Maksud saya perintah lengkap dalam satu baris dengan semua opsi.
Auj

@SomyA tolong beri tahu saya perintah untuk menjalankan file java script.
Narender Reddy


29

>/dev/null menghentikan cron mengirim email.

sebenarnya menurut saya lebih baik membuat phpskrip itu sendiri untuk memperhatikan loggingnya daripada hanya mengeluarkan sesuatu ke cron


bolehkah saya bertanya bagaimana anda melakukannya? Bukankah cronTabs menghasilkan sesuatu? Saya lakukan >/dev/null 2>&1di bagian akhir juga ...
ThomasK

@ThomasK jika Anda membuat tugas seperti ini /path/to/file.php > /dev/nullakan diam.
k102

19

Ini cara termudah:

php -f /home/your_username/public_html/script.php

Dan jika Anda ingin memasukkan output skrip ke file, tambahkan ini ke akhir perintah:

>> /home/your_username/logs/someFile.txt 2>&1


16

Inilah caranya:

/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null

11

Garis cron ini berfungsi untuk saya di VPS hostgator menggunakan cpanel.

/usr/bin/php -q /home/username/public_html/scriptname.php

10

Saya mengalami masalah saat menggunakan / usr / bin / php di CPanel karena ia dikompilasi sebagai biner "cgi-fcgi" dan bukan "cli". Coba gunakan / usr / local / bin / php atau, karena yang pertama ada di jalur, cukup gunakan 'php' sebagai gantinya:

php /path/to/script.php

Jika Anda ingin menjalankan skrip sebagai file yang dapat dieksekusi, berikan + x perms dan gunakan baris berikut sebagai baris pertama skrip:

#!/usr/bin/env php

6

Saya harap masalah Anda ada pada path & php binary juga. Jika Anda telah memperbaiki jalur sesuai jawaban yang lebih lama, silakan gunakan php-cli alih-alih perintah php saat menjalankan cron job.

Mungkin saja php_sapi_name()tidak kembali cli. Itu mengembalikan sesuatu yang lain seperti cgi-fcgidll.

/usr/bin/php-cli -q /home/username/public_html/cron/cron.php >/dev/null

Saya harap ini akan membantu.


3

Ini berfungsi dengan baik dan juga mengirim email:

/ usr / bin / php /home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php

Dua perintah berikut juga berfungsi dengan baik tetapi jangan mengirim email:

/ usr / bin / php -f / home / Sama Seperti Di Atas

php -f / home / Sama Seperti Di Atas


2

Disarankan Oleh Para Ahli.

/usr/local/bin/php /home/username/public_html/path/to/cron/script


0

Untuk Multi PHP Cron Job khusus domain , lakukan seperti ini,

/usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script

Dalam contoh di atas, ganti "ea-php56" dengan versi PHP yang ditetapkan ke domain yang ingin Anda gunakan.

Semoga ini bisa membantu seseorang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.