Heidenreich: PHP per Cronjob ansprechen

Hallo zusammen,
habe mal eine Anfängerfrage.
Arbeite mit einem 08/15 Webspace, mit Parallesl Confixx. Can da auch Cronjobs anlegen(theoretisch) aber irgendwie funzt es nicht.
Ich möchte gerne eine PHP Datei z.B. minütlich(nur als Beispiel) ausführen.
Wäre ja dann:
1 * * * * pfad/datei

Jetzt habe ich schon längere Zeit gesucht, und bin oft darauf gestossen, das ich in der PHP-Datei noch sowas eingeben müsste:
#!/usr/bin/php

Woher weiss ich denn wo der Interpreter liegt?

Stelle ich mich nur so doof an, oder ist das ganze wirklich so schwierig? Finde auch nirgendwo ein *brauchbares* Tutorial.

Wäre über jede Hilfe dankbar

Gruß
Heidenreich

  1. Hi Heidenreich,

    Ich möchte gerne eine PHP Datei z.B. minütlich(nur als Beispiel) ausführen.
    Wäre ja dann:
    1 * * * * pfad/datei

    Das würde die Datei nur stündlich, nicht minütlich ausführen. Denn diese Anweisung
    bedeutet, dass der nachfolgende Befehl immer dann auszuführen ist, wenn die Minute
    01 ist, also um 11:01 Uhr, 12:01 Uhr, 13:01 Uhr usw.

    Das nächste Problem: Hinter den Zeitangaben muss ein Ausdruck stehen, der mit der
    Shell ausgeführt werden kann. Im einfachsten Fall kann das der Pfad zum Script sein,
    aber nur unter den folgenden Bedingungen:
     1) Der Pfad muss absolut angegeben werden, bei Confixx dürfte der absolute Pfad
        in etwa so aussehen: /home/www/webXX/html/ordner/script.php
        (relative Pfade sind prinzipiell auch möglich, allerdings müsste man dann
        wissen, in welchem Ordner (CWD) der Cron-Daemon den Befehl absetzt)
     2) Das PHP-Script muss ausführbar sein, d.h. es muss das X-Bit gesetzt haben, die
        Rechte für das Script könnten also z.B. 0750 oder 0755 sein, bzw. in anderer
        Schreibweise -rwxr-x--- oder -rwxr-xr-x, wichtig ist wie gesagt das X für
        mindestens den Besitzer, am besten auch noch für die Gruppe
     3) Nur weil die Dateiendung .php lautet, führt Linux das Script deshalb noch lange
        nicht mit PHP aus. Deshalb muss in der ersten Zeile eine sog. Shebang angegeben
        werden, welche den Pfad zur ausführbaren PHP-Datei angibt, das dürfte unter den
        meisten Linux Systemen so aussehen: #!/usr/bin/php

    Es gibt aber auch noch eine Alternative: Und zwar kannst du den Befehl in der Crontab
    so umbauen, dass du die Shebang Zeile im PHP-Script nicht brauchst und auch keine
    Ausführrechte (X-Bit) für das PHP-Script setzen musst.

    Dafür trägst du in der Crontab einfach direkt PHP ein und übergibts als ersten
    Parameter den Pfad zu dem auszuführenden PHP-Script, das sieht dann z.B. so aus:

    m h  dom mon dow   command

    * *  *   *   *     /usr/bin/php /home/www/webXX/html/ordner/script.php

    Stelle ich mich nur so doof an, oder ist das ganze wirklich so schwierig? Finde auch
    nirgendwo ein *brauchbares* Tutorial.

    Das glaube ich dir jetzt allerdings nicht ;-) Tutorials gibts genug und auch hier im
    Archiv dieses Forums dürftest du einiges zu dem Thema finden.

    Viele Grüße,
      ~ Dennis.

    1. Hi,
      danke Dir schonmal für Deine Hilfe.
      habe es jetzt hiermit probiert,

      * *  *   *   *     /usr/bin/php /home/www/webXX/html/ordner/script.php

      allerdings klappt es nicht.
      Ich bekomme auch keine Fehlermeldung oder so per Mail (hatte ich z.B. vorher, als ich es, wie in einem anderen Forum beschrieben, mit wget versucht habe).
      Es tut sich einfach gar nichts.
      Habe die Pfade und so natürlich auf mich angepasst.
      Zu testzwecken soll die PHP-Datei einfach ne mail an mich versenden, läuft auch wenn ich die Datei so anspreche.
      Irgendeine Ahnung wodran es liegen könnte? Kann wie gesagt keine genauere Fehlerbeschreibung angeben.

      gruß
      heidenreich

      1. Hallo malwieder,
        so der Cronjob läuft, allerdings bekomme ich auch jedesmal eine Mail mit diesem Inhalt:
        PHP Warning:  Zend Optimizer for PHP 5.2.x cannot be found (expected at '/usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so') - try reinstalling the Zend Optimizer in Unknown on line 0

        kann mir jemannd sagen wodran das liegen könnte?

        Danke Euch
        Gruß
        Heidenreich

        1. Hi Heidenreich,

          so der Cronjob läuft, allerdings bekomme ich auch jedesmal eine Mail mit diesem Inhalt:
          PHP Warning:  Zend Optimizer for PHP 5.2.x cannot be found (expected at '/usr/local/Zend/lib/Optimizer-3.3.0/php-5.2.x/ZendOptimizer.so') - try reinstalling the Zend Optimizer in Unknown on line 0

          Klingt so, als ob PHP nicht richtig konfiguriert wäre und display_startup_errors aktiviert ist. Wende dich bitte an deinen Hoster mit der Bitte, er möge sein PHP-CLI richtig konfigurieren.

          Viele Grüße,
            ~ Dennis.

          1. Hi,
            sorry das ich mich erst so spät melde, musste aber die letzten Tage sehr viel Arbeiten.

            Klingt so, als ob PHP nicht richtig konfiguriert wäre und display_startup_errors aktiviert ist. Wende dich bitte an deinen Hoster mit der Bitte, er möge sein PHP-CLI richtig konfigurieren.

            Habe mal in der PHP-Info nachgeschaut, display-startup-errors steht auf off. Und das script läuft ja auch einwandfrei. Werde mal meinen Hoster anschreiben, mal gucken was er sagt.

            Danke auf jedenfall für Eure Hilfe
            Gruß
            Heidenreich

  2. Hi,

    du kannst auch mit

    * * * * * lynx --dump -auth=Benutzername:Passwort http://www.example.de/cron/script.php

    das Script laufen minütlich lassen (das Verzeichnis http://www.example.de/cron/ wäre dann durch Benutzername und Passwort geschützt)

    bye trunx

    --
    Die Standard-Antwort: "Bitte benutze die Forum-Suche!" macht die Forum-Suche kaputt, weil die Suche dann nämlich genau vor allem diese dämliche Standard-Antwort, also Müll liefert. Sinnvoller ist stattdessen folgende Standard-Antwort: "Dieses Thema wurde schon vielfach im Forum besprochen, siehe z.B. <a>hier</a> oder <a>hier</a> oder benutze die Forum-Suche z.B. mit den Stichworten 'Stichwort1 Stichwort2'." Danke.