web-dev-qa-db-fra.com

Script Bash pour exécuter le script php

J'ai un script php que je veux exécuter avec un script bash, je peux donc utiliser Cron pour exécuter le script php toutes les minutes environ.

Autant que je sache, je dois créer le script bash pour gérer le script php, ce qui me permettra ensuite d'utiliser l'outil/le timer Cron.

Jusqu'ici on m'a dit que je devais mettre:

#!/pathtoscript/testphp.php

au début de mon script php. Je ne sais pas quoi faire d'ici ...

Aucun conseil? Merci.

38
mmmbaileys

Si vous avez PHP installé en tant qu'outil de ligne de commande (essayez d'envoyer php au terminal et de voir s'il fonctionne), votre ligne Shebang (#!) doit ressembler à ceci:

#!/usr/bin/php

Placez-le 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.

64
Rafe Kettler
#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php
13
FDisk

Un poster precedente ha detto ..

Se hai PHP installate come strumento da riga di comando ... la tua riga di Shebang (#!) Devenez apparu comme ça: #!/usr/bin/php

Mentre questo potrebbe Essere vero ... en solo, possible, numérisé phpNON significa necessariamente ch è dove php sta per essere ... /usr/bin/php est une position commune ... mais viens avec qualite de Shebang ... deve essere su misura per il tuo envname__.

un mot de passe rapide par jour est prévu $PATH, prova .. which -a phpENTER, che per me assomiglia a ..

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

La première chose à faire est de choisir l'un des mots-clés les plus populaires ... Demander une réponse ... cliquez ici pour en savoir plus sur ... Cliquez ici pour en savoir plus sur le nom de Dell'eseguibile con envvariable_name__, venez si vous le souhaitez , ma non ne tellement molto di/trust que. BACI BACI.

12
Alex Gray

Vous avez juste besoin de définir:

/usr/bin/php path_to_your_php_file

dans votre crontab.

7
Spyros

Je suis presque sûr que quelque chose comme ceci est ce que vous recherchez:

#!/bin/sh

php /pathToScript/script.php

Enregistrez-le avec le nom de script souhaité (par exemple, runPHP.sh) et donnez-lui les droits d'exécution. Vous pouvez l'utiliser comme vous le souhaitez.

Edit: Vous pouvez aussi bien ne pas utiliser de script bash et ajouter simplement la commande "php ..." à la crontab, si je ne me trompe pas.

Bonne chance!

6
Sergio Morales

Le script bash devrait ressembler à 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 Il ne vous reste plus qu'à mettre ce script bash sur crontab et vous avez terminé!

4

un moyen rapide de savoir où se trouve votre exécutable particulier sur votre $ PATH, essayez.

Encore plus rapide pour savoir où se trouve php ...

whereis php

Je lance debian et commande ci-dessus me montrant 

php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz

J'espère que cela pourra aider.

1
Eddie B

Si vous ne faites rien dans votre script bash, exécutez le script php, vous pouvez simplement exécuter le script php depuis cron avec une commande telle que/usr/bin/php/path/to/votre/fichier.php.

0
Costi Ciudatu

J'ai trouvé php-cgi sur mon serveur. Et c'est sur le chemin de l'environnement alors j'ai pu courir de n'importe où. J'ai exécuté avec succès file.php dans mon script bash.

#!/bin/bash
php-cgi ../path/file.php

Et le script a renvoyé ceci après l'exécution du script php:

X-Powered-By: PHP/7.1.1 Type de contenu: text/html; charset = UTF-8  

terminé!

À propos, vérifiez d'abord si cela fonctionne en vérifiant la version à l'aide de la commande php-cgi -v

0
Luis H Cabrejo