Cronjob bei All-inkl

  • Hallo Zusammen, ich bekomme irgendwie den Cronjob bei All-inkl nicht zum laufen :( ich habe aus meiner ehermaligen Xentral installation alles versucht abzubilden um den Prozessstarter zum laufen zu bekommen. Dafür hatte ich im ordner www eine Datei namens bridge.php. diese Datei sollte im Ordner cronjob die Datei starter2.php aufrufen. Bei All-inkl funktioniert der Cronjob Aufruf mittels einer URL. Daher die bridge.php. Da ich im Ordner www die bridge.php nicht aufrufen kann, habe ich eine andere subdomain angelegt, wo ich die bridge.php aufrufe und der dann die starter2.php aufrufen soll. leider sieht es für mich bei den prozessstartern so aus, dass keiner dieser prozessstartern laufen möchte. Anbei lade ich mal meine bridge.php hoch und vielleicht kann mir jemand weiter helfen was das problem hier ist. die Datei könnt ihr unter folgendem link aufrufen:

    http://cron2.sv-stoffe.de/bridge.php


    Herzlichen Dank und Liebe Grüße


    Edis

  • Du musst im Root Deiner OpenXE-Installation die ".htaccess" mit folgenden Code erweitern:


    Code
     <Files bridge.php>
    Order allow,deny
    Allow from all
    </Files>

    Danach funktioniert dann auch der Aufruf der URL per Cron.


    Du musst dann aber daran denken, dass Du diese Änderung nach jedem OpenXE-Upgrade wieder einpflegen musst, weil OpenXE die ".htaccass" bei jedem Upgrade überbügelt.

  • Das habe ich versucht, danke. Aber es läuft immer noch nicht, siehe Screenshot.

    So sieht der Inhalt meiner bridge.php aus:


    1. <?php
    2. exec("/usr/bin/php74 /www/htdocs/w017eb70/verwaltung.sv-stoffe.de/OpenXE-V.1.11/cronjobs/starter2.php 2>&1", $out, $result);
    3. echo "Returncode: " .$result ."<br>";
    4. echo "Ausgabe des Scripts: " ."<br>";
    5. echo "<pre>"; print_r($out);
    6. ?>


    So sieht der Inhalt meiner .htaccess aus:


    1. <Files bridge.php>
    2. Order allow,deny
    3. Allow from all
    4. </Files>
    5. # Generated file from class.acl.php
    6. # Disable directory browsing
    7. Options -Indexes
    8. # Deny access to all *.php
    9. Order deny,allow
    10. Allow from all
    11. <FilesMatch "\.(css|jpg|jpeg|gif|png|svg|js|ico|css.map|js.map)$">
    12. Order Allow,Deny
    13. Allow from all
    14. </FilesMatch>
    15. # Allow access to index.php
    16. <Files index.php>
    17. Order Allow,Deny
    18. Allow from all
    19. </Files>
    20. # Allow access to setup.php
    21. <Files setup.php>
    22. Order Allow,Deny
    23. Allow from all
    24. </Files>
    25. # Allow access to inline PDF viewer
    26. <Files viewer.html>
    27. Order Allow,Deny
    28. Allow from all
    29. </Files>
    30. <Files robots.txt>
    31. Order Allow,Deny
    32. Allow from all
    33. </Files>
    34. # end
    35.  

      Für Hilfe bin ich dankbar. Grüße, Edis
  • Hallo Bergami, erst ein mal vielen Dank für die Hilfe.

    Das scheint mich zumindest einen Schritt weiter zu bringen, aber leider nicht ans Ziel. Die alte Ausgabe des Script ist nämlich:

    Code
    Returncode: 0
    Ausgabe des Scripts:
    Array
    (
    )


    Wenn ich stattdessen Deine erste Zeile einfüge, dann ist das neue Ergebnis:


    Code
    Returncode: 1
    Ausgabe des Scripts:
    Array
    (
        [0] => Could not open input file: cronjobs/starter2.php
    )


    Kannst Du Dir vielleicht vorstellen, wo man da jetzt weiter machen kann? Anscheinend findet er die Datei nicht? Ich bin kein PHP-Profi. Aber ich glaube, dass in meiner bridge.php - die mit der Xentral-Installation funktioniert hat und auf OpenXE angepasst wurde (der Pfad) - der Pfad eigentlich richtig angegeben ist.

    Gruß, Edis

  • Nein, es liegt im /www/ Verzeichnis, weil ich mit dem Browser nicht auf die Ebene vor dieser /www/ raufkomme, also ich komme nicht ins Root-Verzeichnis. Ich könnte das zwar so einstellen, aber dann wäre auch der Order /userdata/ über das Internet abgreifbar, oder nicht?

    Falls nein, dann könnte ich auch über die url /cronjob/starter.php aufrufen lassen und bräuchte keine Bridge.

  • Auf Dein Root hattest Du bislang keinen Zugriff, weil das die .htaccess im Root verboten hat. Nun hattest Du doch in dieser .htaccess den Zugriff nur auf Deine "bridge.php" erlaubt. Dementsprechend müsste die bridge.php nun auch ins Root verschoben werden und dann stimmt auch der Pfad zur starter2.php..


    Vorher kannst Du aber noch einmal etwas anderes ausprobieren. Ändere die erste Zeile Deiner bridge.php auf:


    Code
     exec("/usr/bin/php74 ../cronjobs/starter2.php  2>&1", $out, $result);
  • Hallo nochmal,


    ich habe beide Vorschläge ausprobiert. Mit dem Verschieben der bridge.php ins Root-Verzeichnis kommt immer noch die Fehlermeldung, dass die Datei nicht gefunden wird. Und bei der geänderten Zeile war es wie bisher: Es kommt keine Fehlermeldung und er scheint die Datei finden zu können - aber die Prozesstarter laufen laut System trotzdem nicht. Und ich weiß jetzt wirklich nicht mehr weiter.

    Zudem scheint auch in meiner .htaccess ein fehler zu sein (siehe Screenshot). Fällt Dur dazu was ein?

    Ansonsten, was würde passieren, wenn ich z.B. domain.de/cronjobs/starter2.php aufrufen lassen würde? Kann man das in der .htaccess freigeben, würde das mein Problem lösen?

    Vielen Dank für Deine/Eure Hilfe.


  • Die htaccess ist nicht fehlerhaft. Sie entspricht nach Deiner Änderung in dieser Datei nur nicht mehr dem Original. Wenn Du Deine Änderung dort rückgängig machst, oder nach dem nächsten Update von OpenXE, ist die Meldung auch wieder weg.

    Bist Du Dir überhaupt wirklich sicher, dass der Cronjob nicht funktioniert? Normlerweise gibt es nämlich eine Fehlermeldung im Prozessstarter, wenn dieser global aktiviert ist aber kein Cron darauf zugreift.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!