CPanel kullanarak bir cron işinde bir PHP dosyası çalıştırın


102

CPanel içinde bir cron işi kullanarak bir PHP betiği çalıştırmaya çalışıyorum - bu doğru sözdizimi mi:

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

Bir cronun tamamlandığını belirten herhangi bir e-posta bildirimi alamıyorum, PHP dosyasıyla ilgili özel bir şey yapmam gerekir mi?


25
Cpanel'de pek çok projenin barındırıldığını ve birinin gerekirse cron işlerinin nasıl çalıştırılacağını bilmekle ilgili olduğunu düşünüyorum
William

8
Sunucu Hatası veya Yığın Taşması'nda cPanel'e izin verilmiyorsa, bununla ilgili sorular nerede olmalıdır?
brimstone

9
Bu sorunun StackOverflow için 'konu dışı' olarak sınıflandırılması oldukça ironik ama burada sahip olduğum en aktif soruydu ..... Umarım başkalarına yardımcı oldu :)
Zabs

Thanx @Tatu Ulmanen Benim için çalışıyor!
Tushar Rmesh Saindane

Yanıtlar:


66

Crontab sisteminde:

  • /usr/bin/phpphp ikili yoludur (bazı sistemlerde farklıdır, örn: freebsd /usr/local/bin/php, linux:/usr/bin/php )
  • /home/username/public_html/cron/cron.php php komut dosyası yolunuz olmalı
  • /dev/null cron çıkışı olmalıdır, örn: /home/username/stdoutx.txt

Böylece cron çıkışını görüntüleyerek cronunuzu izleyebilirsiniz /home/username/stdoutx.txt


1
Bunu şimdi kullanıyorum ve çalışıyor ancak herhangi bir e-posta bildirimi alamıyorum, neden olmasın? php /home/username/public_html/cron/cron.php note Aşağıdaki satırı PHP betiğinin en üstüne koymam gerekti #! / usr / bin / php -q
Zabs

Eğer cronjob'un u için e-posta göndermesini istiyorsanız, php mail () kullanmalısınız, kabuk komut dosyası veya php kullanmadıkça cronjob'un otomatik posta sistemine sahip olduğunu düşünmüyorum.
Somy A

1
CPanel'de "cronjobs" sekmesine tıkladığımda, sayfada iki kutu var - biri yürütmek istediğiniz komut için, diğeri de çıktının gönderilmesini istediğiniz e-posta adresi için. Bu cPanel 11'de.
user3640967

2
Tam komut ne olacak? Tüm seçeneklerle tek satırda tam komut demek istiyorum.
Auj

@SomyA lütfen bana java komut dosyası çalıştırma komutunu söyleyebilir misiniz?
Narender Reddy

104

Bunun için cron işini etkinleştirmek için bu komutu kullandım.

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

godaddy sunucusunda ve iyi çalışıyor.


2
Ne anlama geliyor -q?
Bhavik Shah

4
@BhavikShah php.net/manual/en/features.commandline.options.php'ye göre , Sessiz mod içindir, HTTP başlık çıktısını bastırır-q
William

@William Teşekkürler. Anladım.
Bhavik Shah

29

>/dev/null cron'un posta göndermesini durdurur.

aslında bana phpgöre, cron'a bir şey çıkarmaktansa betiğin günlüğe kaydetmeyi önemsemesini sağlamak daha iyidir


bunu nasıl yaptığını sorabilir miyim? CronTabs zaten bir şeye çıktı vermiyor mu? Yapmam >/dev/null 2>&1yanı son vermek ...
ThomasK

@ThomasK böyle bir görev yaparsan /path/to/file.php > /dev/nullsessiz olacak.
k102

19

Bu en kolay yol:

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

Ve komut dosyası çıktısını bir dosyaya kaydetmek istiyorsanız, bunu komutun sonuna ekleyin:

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


16

Yol budur:

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

11

Bu cron hattı benim için cpanel kullanarak hostgator VPS üzerinde çalıştı.

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

10

CPanel üzerinde / usr / bin / php kullanımında sorun yaşadım, çünkü o bir "cgi-fcgi" ikili dosyası olarak derlendi ve "cli" olarak değil. / Usr / local / bin / php kullanmayı deneyin veya yine de yolda ilk sırada olduğu için bunun yerine 'php' kullanın:

php /path/to/script.php

Komut dosyasını çalıştırılabilir olarak çalıştırmak istiyorsanız, + x izinlerini verin ve aşağıdakini komut dosyasının ilk satırı olarak kullanın:

#!/usr/bin/env php

6

Umarım probleminiz path & php ikili ile ilgilidir. Yolu eski cevaplara göre düzelttiyseniz, lütfen cron işini çalıştırırken php komutu yerine php-cli kullanın.

Bu mümkün olabilir php_sapi_name()dönmüyor cli. cgi-fcgiVb gibi başka bir şey iade ediyor .

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

Umarım yardımcı olur.


3

Bu iyi çalışıyor ve ayrıca e-posta gönderiyor:

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

Aşağıdaki iki komut da iyi çalışır ancak e-posta göndermez:

/ usr / bin / php -f / home / Yukarıdakilerle Aynı

php -f / home / Yukarıdakilerle Aynı


2

Uzmanlar Tarafından Önerildi.

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


0

Etki alanına özgü Multi PHP Cron Job için şunu yapın ,

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

Yukarıdaki örnekte, "ea-php56" yı kullanmak istediğiniz etki alanına atanan PHP sürümü ile değiştirin.

Umarım bu birine yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.