Hilfetips für Fehlersuche

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hilfetips für Fehlersuche

    Hi Leute,

    könnte mir jemand tips zu meiner fehlersuche geben?

    Ich habe ein script, welches beim Aufruf über den Browser anstandslos funktioniert, wenn ich das aber als cronjob laufen lasse, dann geht das nicht mehr.

    ich hab das gefühl, dass es die Methode ftp_get ist, die mir da schwierigkeiten macht, aber ich weiß nicht wie ich rausfinden wieso das so ist

    weiß da jemand ein wenig rat ?
    Coder never die, they just GOSUB without RETURN

    Mein System

  • #2
    Logfiles. Reingucken!
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Hallo,

      kommt denn keine Fehlermeldung? Was genau funktioniert denn nicht?

      Tipps:
      - sicherstellen, dass der Cronjob nicht eine andere PHP-Installation für CLI verwendet, als die für SAPI.
      - display_startup_errors anschalten, falls Extensions fehlen oder sonst irgendwas in der php.ini nicht stimmt.

      Gruß,

      Anja
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Tipp #1: Lernen, dass "geht nicht" absolut keine Problembeschreibung ist.

        Tipp #2: Grundlegende Debug-Techniken erlernen, so dass du schon erste Erkenntnisse vorliegen hast, bevor du dich genötigt siehst, ein "funzt nich"-Posting zu verfassen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          die logfiles melden mir nur den zugriff per Browser:
          HTTP/1.1" 200 88 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2"

          aber ich hab mir die fehlercodes mit error_reporting(E_ALL); ausgeben lassen:

          6135.

          @wahsaga:
          Das mit dem Debug-KnowHow ist sicher nötig, ohne wenn und aber.
          Dann würde ich mich warscheinlich auch nicht so rumquälen.

          @AmicaNoctis

          scheinbar geht das ftp_get() nicht, wenn ich es per cronjob laufen lassen.
          die datei ist da, das verzeichnis... und der test als browseraufruf funktioniert ja einwandfrei.

          wie kann ich sicherstellen, dass der Cronjob nicht eine andere PHP-Installation für CLI verwendet, als die für SAPI ?
          Coder never die, they just GOSUB without RETURN

          Mein System

          Kommentar


          • #6
            wie kann ich sicherstellen, dass der Cronjob nicht eine andere PHP-Installation für CLI verwendet,
            In dem du ihn per wget, cronjob.de o.ä. aufrufst.
            Aber warum?
            Stell die Pfade richtig ein, dann klappt das auch.

            Das mit dem Debug-KnowHow ist sicher nötig,
            Jawoll!
            Erzeuge einen eigenen Errorhandler, Bau dir ein eigenes Logging.
            Übe, übe, übe.....
            Mache Kontrollausgaben.
            usw.

            ich hab das gefühl, dass es die Methode ftp_get ist, die mir da schwierigkeiten macht
            Überprüfe das, lass dir die Fehler zeigen, lass dir die Parameter zeigen.



            aber ich hab mir die fehlercodes mit error_reporting(E_ALL); ausgeben lassen:
            6135.
            Und was bedeutet 6135 ???
            Bitte lesen und anwenden: http://de.php.net/manual/de/book.errorfunc.php
            Zuletzt geändert von combie; 27.08.2009, 14:52.
            Wir werden alle sterben

            Kommentar


            • #7
              Zitat von ways Beitrag anzeigen
              aber ich hab mir die fehlercodes mit error_reporting(E_ALL); ausgeben lassen:

              6135.
              Ähm, das ist aber kein Fehlercode, sondern das Loglevel, das vorher eingestellt war. Trotzdem ist error_reporting(E_ALL) nicht verkehrt, auch wenn du es falsch verstanden hast. In Wirklichkeit sorgt es dafür, dass alle Fehlermeldungen ausgegeben oder geloggt werden, Welches von beiden passiert und wo sie ggf. geloggt werden, hängt wieder von anderen Einstellungen ab.

              Das Log, das du gefunden hast, sieht wie ein access.log aus. Findest du dort auch ein error.log? Das brauchst du.

              Gruß,

              Anja
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Zitat von AmicaNoctis Beitrag anzeigen
                Ähm, das ist aber kein Fehlercode, sondern das Loglevel, das vorher eingestellt war. Trotzdem ist error_reporting(E_ALL) nicht verkehrt, auch wenn du es falsch verstanden hast. In Wirklichkeit sorgt es dafür, dass alle Fehlermeldungen ausgegeben oder geloggt werden, Welches von beiden passiert und wo sie ggf. geloggt werden, hängt wieder von anderen Einstellungen ab.

                Das Log, das du gefunden hast, sieht wie ein access.log aus. Findest du dort auch ein error.log? Das brauchst du.

                Gruß,

                Anja
                Nabend!

                ja, blöd.. es heisst sogar access_log ! error_logs kann ich leider nirgens entdecken und über die confixx auch nicht aktivieren oder so ...

                gibts es eine Möglichkeit mir diese generieren zu lassen ?

                auf meinem lokalen wamp hab ich sowas und nutze es auch immer... sehr hilfreich... aber bei meinem hoster scheint sowas nicht "drin" zu sein...

                es ist sehr ärgerlich, dass ein script im vrowseraufruf geht, aber als cronjob nicht..

                mittlerweile hab ich mir mal die systememails zuschicken lassen, was der cronjob für ein fehler meldet und der verwirrt mich erst recht, denn diesen kennen ich, kann ihn mit meinem KnowHow level aber nicht erklären !

                Warning: ftp_get(/files_archives/mbln2009082724.csv.gz): failed to open stream: No such file or directory in /var/www/web/html/index.php on line 29

                wieso erhalte ich diese Meldung nicht, wenn ich das script im Browser aufrufe... sondern alles klappt... ohne fehler, warnhinweis... und auch der Download der oben genannten *gz file klappt anstandslos !

                wie kann denn ein Pfad so exestieren, aber für den cronjob nicht?
                Coder never die, they just GOSUB without RETURN

                Mein System

                Kommentar


                • #9
                  Vergleiche die Pfade!!
                  (aber da sagte ich schon)
                  getcwd() wirds wohl ans Licht bringen.
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    bin auch schon dabei, mir solch ein error-logger zu schreiben...
                    das brauch ich ja echt.... so gehts das ja mal gar nicht !


                    @combie:

                    ok, ich werd das gleich mal mit getcwd() prüfen... mal gucken, ob ich anfange zu weinen denn ich habe sicher schon 10 std qualen investiert...
                    Coder never die, they just GOSUB without RETURN

                    Mein System

                    Kommentar


                    • #11
                      Es kann auch an den Rechten liegen. PHP-Skripte die über den Server gehen (SAPI) laufen über den Benutzeraccount des Webservers und der hat unter Umständen andere Rechte auf die entsprechenden Verzeichnisse, als der Benutzeraccount für Kommandozeilenversion von PHP (CLI). Frag doch mal beim Hoster nach, ob das so ist.

                      Bis dahin kannst du versuchen, ob du mit einem SAPI-PHP-Skript die Rechte der Ordner verändern kannst, so dass auch CLI darauf zugreifen kann: 666 für Dateien, 777 für Verzeichnisse.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Zitat von combie Beitrag anzeigen
                        Vergleiche die Pfade!!
                        (aber da sagte ich schon)
                        getcwd() wirds wohl ans Licht bringen.
                        nun hast du mich zum weinen gebracht !

                        ich konnte den fehler aufdecken, wie es scheint !

                        ABER dennoch wäre es echt lieb, wenn mir jemand diesen umstand einfach mal erklären könnte... das sind ja dinge, die man echt nicht in büchern lernt.. zumindest nicht in meinen

                        wieso reicht (z.b bei der function ftp_get) die man über ein script im browser aufruft eine relative pfadangabe und das gleiche script als cronjob aber nicht, denn wie ich nun feststelle, benötigt es hierbei die absolute pfadangabe vom serververzeichnis !

                        ein kurzer hinweis würde mir schon die tränen trocken
                        Coder never die, they just GOSUB without RETURN

                        Mein System

                        Kommentar


                        • #13
                          SAPI-PHP-Skripte werden normalerweise in dem Verzeichnis ausgeführt, wo sie liegen. Relative Pfadangaben beziehen sich demnach auf dieses Verzeichnis.

                          CLI-Skripte dagegen starten normalerweise in dem Verzeichnis, wo PHP installiert ist. Am besten arbeitest du immer mit absoluten Pfaden.

                          Ab PHP5.3: file_get_contents(__DIR__ . "/relativer/Pfad/wie vorher.ext");
                          Vor PHP5.3: file_get_contents(dirname(__FILE__) . "/relativer/Pfad/wie vorher.ext");

                          Dann kann nichts mehr schief gehen.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            Zitat von AmicaNoctis Beitrag anzeigen
                            CLI-Skripte dagegen starten normalerweise in dem Verzeichnis, wo PHP installiert ist. Am besten arbeitest du immer mit absoluten Pfaden.
                            Nein, im aktuelle Arbeitsverzeichnis.

                            Kommentar


                            • #15
                              Zitat von PHP-Desaster Beitrag anzeigen
                              Nein, im aktuelle Arbeitsverzeichnis.
                              Klar, sorry. Wie kam ich denn darauf?
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X