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.

34
demandé sur Rafe Kettler 2011-04-01 02:07:11

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.

61
répondu Rafe Kettler 2011-03-31 22:11:42
#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php
12
répondu FDisk 2015-04-19 11:14:56

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.

10
répondu Alex Gray 2012-01-09 07:31:47

Vous avez juste besoin de définir:

/usr/bin/php path_to_your_php_file

Dans votre crontab.

7
répondu Spyros 2011-03-31 22:11:56

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!

6
répondu Sergio Morales 2011-03-31 22:12:20

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é!

4
répondu Bogdan Constantinescu 2011-03-31 22:12:19

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.

1
répondu Eddie B 2016-10-20 07:21:27

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.

0
répondu Costi Ciudatu 2011-03-31 22:11:53