web-dev-qa-db-fra.com

Exécuter un PHP déposer dans un travail cron en utilisant CPanel

J'essaie simplement d'exécuter un script PHP à l'aide d'un travail cron dans CPanel - cette syntaxe est-elle la bonne:

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

Je ne reçois aucune notification par courrier électronique indiquant qu'un fichier cron a été complété. Dois-je faire quelque chose de spécifique avec le fichier PHP?

90
Zabs

Dans le système crontab:

  • /usr/bin/php est le chemin binaire php (différent sur certains systèmes, ex: freebsd /usr/local/bin/php, linux: /usr/bin/php)
  • /home/username/public_html/cron/cron.php devrait être votre chemin de script php
  • /dev/null devrait être une sortie cron, ex: /home/username/stdoutx.txt

Vous pouvez donc surveiller votre cron en affichant la sortie de cron /home/username/stdoutx.txt

62
Somy A

J'ai utilisé cette commande pour activer le travail cron pour cela.

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

sur le serveur GoDaddy, et son fonctionne bien.

101
Pank

>/dev/null empêche cron d’envoyer des mails.

en fait, à mon avis, il est préférable de faire en sorte que le script php se soucie de sa journalisation

29
k102

C'est le moyen le plus simple:

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

Et si vous souhaitez consigner la sortie du script dans un fichier, ajoutez ceci à la fin de la commande:

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

17
Emmanuel

Ceci est le chemin:

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

Cette ligne cron a fonctionné pour moi sur VPS Hostgator avec cpanel.

/usr/bin/php -q /home/username/public_html/scriptname.php
9
Mike Volmar

J'ai eu des problèmes avec/usr/bin/php sur CPanel car il est compilé en binaire "cgi-fcgi" et non en "cli". Essayez d’utiliser/usr/local/bin/php ou, comme il est au premier rang dans le chemin, utilisez simplement 'php' à la place:

php /path/to/script.php

Si vous voulez exécuter le script en tant qu'exécutable, donnez-lui + x perms et utilisez ce qui suit comme première ligne du script:

#!/usr/bin/env php
8
BenKennish

J'espère que votre problème concerne aussi le chemin binaire php & php . Si vous avez corrigé le chemin selon les réponses précédentes, veuillez utiliser php-cli au lieu de la commande php lors de l'exécution du travail cron.

Il est possible que php_sapi_name() ne renvoie pas cli. Cela retourne quelque chose d'autre comme cgi-fcgi etc.

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

J'espère que cela aidera.

5
Lakin Mohapatra

Cela fonctionne bien et envoie également un email:

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

Les deux commandes suivantes fonctionnent également, mais n'envoient pas d'email:

/usr/bin/php -f / home/Identique au précédent

php -f / home/Comme ci-dessus

2
Sajjad

C'est en fait très simple,

php -q /home/username/public_html/cron/cron.php
1
Dushyanth Kandiah

Suggéré par des experts.

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

Pour un domaine spécifique Multi PHP Cron Job , faites comme ceci,

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

Dans l'exemple ci-dessus, remplacez «ea-php56» par la version PHP attribuée au domaine que vous souhaitez utiliser.

J'espère que ça aide quelqu'un.

0
Anjana Silva