Cron-Job für ein PHP-Skript kann nicht ausgeführt werden

Cron-Job für ein PHP-Skript kann nicht ausgeführt werden

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.phpNICHT 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 php5im Terminal verwenden zu können, muss es php5 cliinstalliert sein. Prüfen Sie zunächst, ob php5 & clidie 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 phpden 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,Lockeoderwgetwww. Stellen Sie sicher, dass Sie Ihr PHP-Skript im Verzeichnis „oder“ platziert haben public_htmlund 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

verwandte Informationen