
Ich möchte ein PHP-Skript mit einem Cron-Job auf dem lokalen Host ausführen. Mein Skript befindet sich unter:
/opt/lampp/htdocs/rrugd/myscript.php
Da opt unter root liegt, habe ich versucht, den Cron-Job für root sowie den normalen Benutzer hinzuzufügen, aber er wird nicht ausgeführt. Dies ist der Cron-Job zum Ausführen des PHP-Skripts alle 2 Minuten:
*/2 * * * * php /opt/lampp/htdocs/rrugd/myscript.php
Mein Skript ist im Grunde dazu gedacht, eine Tabelle aus der Datenbank zu kürzen. Es wird tatsächlich um Mitternacht passieren, also werden sich die tatsächlichen Variablen des Cron-Jobs ändern in
00 00 * * * php /path/to/script.php
Aber zum Testen habe ich alle zwei Minuten verwendet. Ich habe im Internet und in AU gesucht, aber ich bekomme es nicht zum Laufen. Ich habe etwas zum Festlegen eines Pfads gesehen, aber ich habe nicht verstanden, was bei dieser Methode genau zu tun ist.
Außerdem möchte ich angeben, dass das PHP-Skript myscript.php
NICHT mit dem PHP-Befehl auf der CLI ausgeführt wurde, es wird jedoch ausgeführt, wenn es über den Browser auf dem lokalen Host ausgeführt oder aufgerufen wird!
PHP-Informationen:
some@somepc$: php -v
PHP 5.5.3-1ubuntu2.2 (cli) (built: Feb 28 2014 20:06:05)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
Antwort1
Unter der Annahme, dassphp5; Es gibt Fälle, in denen PHP in einem Cronjob verwendet wird. Sie können einen davon wie folgt ausprobieren:
- Um es
php5
im Terminal verwenden zu können, muss esphp5 cli
installiert sein. Prüfen Sie zunächst, obphp5 & cli
die Funktionalität verfügbar ist. Dafür:
johan@ubusrv:~$ php -v PHP 5.2.4-2ubuntu5.3 mit Suhosin-Patch 0.9.6.2 (cli) (erstellt: 23. Juli 2008 06:44:49) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
Der Befehl zeigt an, dass Ihre PHP5-Version zusammen mit PHP5 (CLI) installiert ist. Wenn nicht, installieren Sie es mit dem folgenden Befehl;
sudo apt-get installiere php5-cli
- Nach der Installation können Sie entweder
php
den Binärpfad wie unten beschrieben zum Cronjob hinzufügen;
mitphpoderphp5
*/2 * * * * php /opt/lampp/htdocs/rrugd/myscript.php
mitphpBinärer Pfad
*/2 * * * * /usr/local/bin/php /opt/lampp/htdocs/rrugd/myscript.php
Sie können auch die folgenden Befehle verwenden, um herauszufinden, wo Ihrphp/php5Pfad ist;
johan@ubusrv:~$ welches php /usr/bin/php johan@ubusrv:~/cli$ whereis php php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz johan@ubusrv:~/cli$ Typ -a php php ist /usr/bin/php
- Wenn Sie ein PHP-Skript über eine URL aufrufen müssen, können Sie einfach Folgendes verwenden:Luchs,Lockeoderwget
www
. Stellen Sie sicher, dass Sie Ihr PHP-Skript im Verzeichnis „oder“ platziert habenpublic_html
und rufen Sie den Pfad im Cronjob ordnungsgemäß auf.
*/2 * * * * wget -q http://localhost//myscript.php
Mehr zu: PHP-Cron-Job: So führen Sie ein PHP-Skript mit Crontab unter Linux aus