Bash script pour exécuter un script php
J'ai un script php que je veux exécuter en utilisant un script bash, donc je peux utiliser Cron pour exécuter le script php toutes les minutes.
Pour autant que je sache, j'ai besoin de créer le script bash pour gérer le script php qui me permettra ensuite d'utiliser L'outil Cron/timer.
Jusqu'à présent, on m'a dit que je devais mettre:
#!/pathtoscript/testphp.php
Au début de mon script php. Je ne sais pas quoi faire à partir d'ici...
Un conseil? Grâce.
8 réponses
Si vous avez installé PHP en tant qu'outil de ligne de commande (essayez d'émettre php
vers le terminal et voyez si cela fonctionne), votre ligne shebang (#!
) doit ressembler à ceci:
#!/usr/bin/php
Mettez cela en haut de votre script, rendez-le exécutable (chmod +x myscript.php
), et créez un travail Cron pour exécuter ce script (de la même manière que vous exécuteriez un script bash).
Vous pouvez également utiliser php myscript.php
.
Une affiche précédente disait..
si vous avez installé PHP comme un outil de ligne de commande ... votre shebang (#! ligne doit ressembler à ceci:
#!/usr/bin/php
Alors que pourrait être vrai ... juste parce que vous pouvez taper php
ne signifie pas nécessairement que c'est là que php va être... /usr/bin/php
est un emplacement commun ... mais comme pour tout shebang ... il doit être adapté à votre env
.
Un moyen rapide de savoir où se trouve votre exécutable particulier situé sur votre $PATH
, essayez..
➜which -a php
entrez , ce qui pour moi ressemble..
php is /usr/local/php5/bin/php
php is /usr/bin/php
php is /usr/local/bin/php
php is /Library/WebServer/CGI-Executables/php
, Le premier est le défaut que j'obtiendrais si j'ai tapé juste en php à l'invite de commande... mais je peux utiliser l'un d'eux dans une arborescence, ou directement... Vous pouvez également combiner le nom de l'exécutable avec env
, comme on le voit souvent, mais je ne sais pas vraiment beaucoup sur la confiance que. XOXO.
Vous avez juste besoin de définir:
/usr/bin/php path_to_your_php_file
Dans votre crontab.
Je suis sûr que quelque chose comme ça est ce que vous cherchez:
#!/bin/sh
php /pathToScript/script.php
Enregistrez-le avec le nom de script souhaité (tel que runPHP.sh) et lui donner des droits d'exécution, alors vous pouvez l'utiliser comme vous le souhaitez.
Edit: vous pourriez aussi bien ne pas utiliser un script bash du tout et simplement ajouter le " php ..."commande à la crontab, si Je ne me trompe pas.
Bonne chance!
Le script bash devrait être quelque chose comme ceci:
#!/bin/bash
/usr/bin/php /path/to/php/file.php
Vous avez besoin de l'exécutable php (généralement trouvé dans / usr / bin) et du chemin du script php à exécuter. Maintenant, il vous suffit de mettre ce script bash sur crontab et vous avez terminé!
Un moyen rapide de savoir où se trouve votre exécutable particulier sur votre $PATH, essayez.
Un moyen encore plus rapide de savoir où se trouve php
...
whereis php
Je cours debian
et au-dessus de la commande me montrant
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
J'espère que ça aide.
Si vous ne faites rien dans votre script bash que de courir le php un, il vous suffit d'exécuter le script php à partir de cron avec la commande /usr/bin/php /chemin/vers/votre/fichier.php.