Configurer un script cronjob pour PHP dans Ubuntu 16.04 et PHP 7.0

1

Cela me rend fou de vouloir installer un script cronjob pour PHP dans Ubuntu 16.04.

J'entre cette commande dans le terminal

$ crontab -e

Ensuite, je choisis nano editor recommandé par Ubuntu. Ensuite, j'entre dans la ligne de coup. Ensuite, j'appuie sur Ctrl + C, il demande Y / N pour enregistrer. J'appuie sur Y et F2 pour fermer.

* */2 * * * root php /var/www/html/script.php

autres tentatives sont,

* */2 * * * /var/www/html/script.php
* */2 * * * root /var/www/html/script.php

Après avoir redémarré cron en utilisant la commande ci-dessous.

sudo /etc/init.d/cron restart

Ensuite, je vérifie la liste de crontab crontab -l qui indique qu'aucun travail cron n'est défini pour l'utilisateur root.

J'ai essayé de créer directement un fichier crontab.txt dans le répertoire cron.hourly / cron.d avec l’une des lignes ci-dessus.

J'ai essayé de nombreux forums et tous disent crontab -e puis entrez ou créez un fichier crontab dans le répertoire cron. Rien ne m'aide. Je me gratte la tête.

Quelle est la bonne façon de créer cronjob pour un script PHP dans Ubuntu 16.04 & amp; php version 7.0

    
posée Naga 19.12.2016 - 08:44
la source

2 réponses

2

crontab -e ne doit pas avoir la partie root , qui spécifie le nom d'utilisateur ( crontab -e édite déjà la crontab d'un utilisateur spécifique).

Si vous souhaitez exécuter en tant que root, exécutez sudo crontab -e et utilisez:

* */2 * * * php /var/www/html/script.php

ou créez un fichier dans /etc/cron.d contenant:

* */2 * * * root php /var/www/html/script.php
    
réponse donnée muru 19.12.2016 - 08:57
la source
1

Crontab est utilisé comme ceci: crontab -u <username> -e . La partie -u <username> peut être omise pour l'utilisateur actuel. Si vous voulez l'utiliser pour l'utilisateur root, vous pouvez utiliser sudo crontab -e . Vous tapez ensuite vos arrangements de planification * */2 * * * et le dernier argument en ligne est la ligne pour exécuter votre script. Lorsque vous avez terminé, crontab écrit le résultat, que vous ayez ou non installé le travail avec succès. Il y a certaines choses à considérer concernant le dernier argument.

  1. Avez-vous installé php-cli? Si ce n'est pas le cas, php ne fonctionnera pas en ligne de commande. ( sudo apt-get install php7-cli )
  2. Lorsque php-cli est installé, assurez-vous que crontab trouve l'exécutable php. crontab n'a pas nécessairement le même $ PATH. Tapez which php et utilisez le chemin complet dans crontab * */2 * * * /usr/bin/php /var/www/html/script.php . Eh bien, /usr/bin sera dans le chemin de crontab. Cette étape n'est probablement pas nécessaire, mais elle ne fait pas de mal.

Apache n’a rien à voir avec vos scripts crontab car les scripts PHP sont exécutés à partir de la ligne de commande dans ce cas. Vous pouvez avoir des problèmes avec le script PHP si vous utilisez des données liées à Apache dans votre script, qui ne sont pas accessibles en ligne de commande.

    
réponse donnée nobody 19.12.2016 - 09:16
la source

Lire d'autres questions sur les étiquettes