it-swarm.com.de

Bash-Skript zum Ausführen von PHP-Skript

Ich habe ein PHP-Skript, das ich mit einem Bash-Skript ausführen möchte, sodass ich Cron verwenden kann, um das PHP-Skript jede Minute auszuführen.

Soweit mir bekannt ist, muss ich das Bash-Skript erstellen, um mit dem PHP-Skript umzugehen, das mir die Verwendung des Cron-Tools/-Timers ermöglicht.

Bisher wurde mir gesagt, dass ich Folgendes setzen muss:

#!/pathtoscript/testphp.php

am Anfang meines PHP-Skripts. Ich bin mir nicht sicher, was ich von hier machen soll ...

Irgendein Rat? Vielen Dank.

38
mmmbaileys

Wenn Sie PHP als Befehlszeilentool installiert haben (versuchen Sie, php für das Terminal auszugeben und zu überprüfen, ob es funktioniert), muss Ihre Shebang (#!) -Zeile folgendermaßen aussehen:

#!/usr/bin/php

Setzen Sie das oben in Ihr Skript, machen Sie es ausführbar (chmod +x myscript.php), und erstellen Sie einen Cron-Job, um dieses Skript auszuführen (genauso wie Sie ein Bash-Skript ausführen würden).

Sie können auch php myscript.php verwenden.

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 installato come strumento da riga di comando ... la tua riga di Shebang (#!) Es wurde folgende Frage gestellt: #!/usr/bin/php

Mentre questo potrebbe essere vero ... solo perché è possible digitare php NON significa necessariamente che è do php sta per essere ... /usr/bin/php è Una posizione comune ... ma come con qualsiasi Shebang ... Sie haben die Wahl zwischen env.

un modo rapido per scoprire dove il tuo particolare eseguibile si trova sul tuo $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

Es ist eine vordefinierte Zeitspanne, in der die Eingabe des Datums für die Eingabeaufforderung erfolgt. Sie können die Eingabeaufforderung in einer Reihenfolge eingeben, in der Sie sich befinden. Sie können die Eingabeaufforderung in einer Reihenfolge eingeben, in der Sie sich als Benutzer anmelden können. env, Come si vede spesso, ma non ne so molto di/Vertrauen dass. BACI BACI.

12
Alex Gray

Sie müssen nur einstellen:

/usr/bin/php path_to_your_php_file

in deiner crontab.

7
Spyros

Ich bin mir ziemlich sicher, dass Sie nach so etwas suchen:

#!/bin/sh

php /pathToScript/script.php

Speichern Sie das mit Ihrem gewünschten Skriptnamen (wie runPHP.sh) und erteilen Sie ihm Ausführungsrechte, dann können Sie es nach Belieben verwenden.

Edit: Sie können auch kein bash-Skript verwenden und fügen einfach den Befehl "php ..." zur crontab hinzu, wenn ich mich nicht irre.

Viel Glück!

6
Sergio Morales

Das Bash-Skript sollte ungefähr so ​​aussehen:

#!/bin/bash
/usr/bin/php /path/to/php/file.php

Sie müssen die ausführbare PHP-Datei (normalerweise in/usr/bin) und den Pfad des PHP-Skripts ausführen. Jetzt müssen Sie dieses Bash-Skript nur noch in Crontab einfügen und fertig!

um herauszufinden, wo sich Ihre ausführbare Datei auf Ihrem $ PATH befindet, versuchen Sie es.

Noch schneller kann man herausfinden, wo php ist ...

whereis php

Ich führe debian und den obigen Befehl aus, der mich anzeigt 

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

Hoffentlich hilft das.

1
Eddie B

Wenn Sie nichts in Ihrem Bash-Skript tun, als das PHP-Skript auszuführen, können Sie das PHP-Skript einfach mit einem Befehl wie/usr/bin/php /path/to/your/file.php von cron aus ausführen.

0
Costi Ciudatu

Ich habe PHP-CGI auf meinem Server gefunden. Und es ist auf dem Pfad der Umwelt, so dass ich von überall laufen konnte. Ich habe erfolgreich file.php in meinem Bash-Skript ausgeführt.

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

Und das Skript hat dies zurückgegeben, nachdem das PHP-Skript ausgeführt wurde:

X-Powered-By: PHP/7.1.1 Inhaltstyp: Text/HTML; Zeichensatz = UTF-8  

erledigt!

Übrigens prüfen Sie zuerst, ob es funktioniert, indem Sie die Version überprüfen, die den Befehl php-cgi -v ausgibt.

0
Luis H Cabrejo