Exécuter le script PHP en tâche cron
Dans notre centos6 serveur. Je voudrais exécuter un script php en tâche cron comme utilisateur apache, mais malheureusement cela ne fonctionne pas.
ici est l'édition de crontab (crontab -uapache -e)
24 17 * * * php /opt/test.php
et voici le code source de "test.php" fichier qui fonctionne très bien avec "apache" utilisateur en tant que titulaire.
<?php exec( 'touch /opt/test/test.txt');?>
J'ai essayer de remplacer php avec le chemin d'accès complet de php (/usr/local/php/bin/php), mais aussi il ne fonctionne pas
Merci d'avance,
Merci de m'Aider
- Sûrement juste avoir "php" suffirait? Dans mon expérience avec CentOS, il peut être un cauchemar arriver PHP configuré correctement avec tous les sécurité et autres joyeusetés que cela implique.
Vous devez vous connecter pour publier un commentaire.
Tâches Automatisées: Cron
Cron est un service de planification dans les systèmes Linux /Unix-like systèmes d'exploitation informatiques. Tâche Cron sont utilisés pour planifier les commandes à exécuter périodiquement.
Vous pouvez configurer des commandes ou des scripts, qui à plusieurs reprises à une heure définie. Cron est l'un des l'outil le plus utile dans Linux ou les systèmes d'exploitation UNIX. Le service cron (démon) fonctionne dans le fond et vérifie constamment la /etc/crontab fichier, /etc/cron./* les répertoires. Il vérifie également la /var/spool/cron/ répertoire.
Configuration Des Tâches Cron
Dans l'exemple suivant, la commande crontab ci-dessous activer les tâches cron automatiquement toutes les dix minutes:
Dans l'exemple ci-dessus, le */10 * * * * représente quand la tâche doit se produire. La première figure représente minutes – dans ce cas, sur toutes les dix minutes. Les autres personnages représentent, respectivement, heure, jour, mois et jour de la semaine.
*
est un joker, qui signifie "à chaque fois".Commencer à trouver votre PHP binaire en tapant en ligne de commande:
La sortie doit être quelque chose comme:
Spécifier correctement le chemin d'accès complet de votre commande.
Tapez la commande suivante pour entrer tâche cron:
De voir ce que tu as dans crontab.
EDIT 1:
Pour quitter vim éditeur sans enregistrer, cliquez simplement:
Puis tapez
q!
crontab -u apache -e
, c'est que ce que vous vouliez dire?/usr/bin/php -f /opt/test.php
, plutôt que de/usr/bin/php /opt/test.php
?J'ai eu le même problème... j'ai eu à exécuter en tant qu'utilisateur.
Vous devrez peut-être exécuter la tâche cron en tant qu'utilisateur avec des autorisations pour exécuter le script PHP. Essayez d'exécuter la tâche cron en tant que root, à l'aide de la commande
runuser
(man runuser
). Ou de créer un système de crontable et exécutez le script PHP comme un utilisateur autorisé, comme @Philip décrit.- Je fournir une réponse détaillée comment utiliser cron dans ce stackoverflow post.
Comment écrire un cron qui va exécuter un script tous les jours à minuit?