Cronjob Problem mit Datenbank Connect

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

  • Cronjob Problem mit Datenbank Connect

    hi,

    ich habe aktuell ein Problem mit einem Cronjob. Wenn ich das PHP-Skript per Browser aufrufe funktioniert alles wunderbar, per Cronjob geht es dann leider nicht.

    Ich habe mal ein bisschen rumexperimentiert und folgendes rausgefunden:

    Sobald das Skript an diesen Punkt kommt funktioniert es nicht.

    PHP-Code:
    function DB_Connect()
      {
        
    $mysql_server "XXX";  // Server
        
    $mysql_user "XXX";       // Benutzer
        
    $mysql_passwort "XXX";       // Passwort
        
    $mysql_datenbank "XXX";   // Datenbank

        
    $conn =  @mysql_connect($mysql_server,$mysql_user,$mysql_passwort);

        if(
    $conn)
        {
          
    mysql_select_db("$mysql_datenbank"); // Standart Datenbank wählen
          
    return $conn;
        }
         else
         {
           echo 
    "Es konnte keine Verbindung zur Datenbank hergestellt werden!";
         }
      }
      
      
    $conn DB_Connect(); 
    wenn ich unmittelbar vor diesem Code, mir einen Test Mail zuschicken lassen, kommt diese an, poste ich den Test-Mail Code direkt dahinter, kommt die Mail nicht an.

    Kann man per Cronjob keine Verbindung zu einer Datenbank herstellen???

  • #2
    fehlermeldungen?

    Kommentar


    • #3
      Re: Cronjob Problem mit Datenbank Connect

      $mysql_server = "XXX"; // Server
      Was genau hast du hier verwendet?
      Kann man per Cronjob keine Verbindung zu einer Datenbank herstellen???
      Doch - aber z.B. die Verbindung über einen Servernamen dürfte schwierig werden aus einer Umgebung heraus, in der u.U. keine DNS-Auflösung verfügbar ist.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Also bei mir funktioniert sowas..

        PHP-Code:
        $conn =  @mysql_connect($mysql_server,$mysql_user,$mysql_passwort); 
        Mach da mal

        PHP-Code:
        $conn =  mysql_connect($mysql_server,$mysql_user,$mysql_passwort) or die(mysql_error()); 
        draus.


        Der Aufruf des Crons

        /10 * * * * /pfad/zu/php /pfad/script.php >> /pfad/logdatei.log

        Es könnte sein das du 2 Verschiedene php.ini Dateien hast z.B (einmal für APACHE und einmal für CLI)

        Gibt mehrere Möglichkeiten warum das nicht funktioniert !
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          @TobiaZ

          es kommt leider keine Fehlermeldung, das Skript wird einfach nicht abgearbeitet.

          @wahsaga

          Was genau hast du hier verwendet?

          - ganz einfach localhost

          @hhcm

          /10 * * * * /pfad/zu/php /pfad/script.php >> /pfad/logdatei.log
          genau so habe ich den aufruf gemacht!

          Kommentar


          • #6
            Mach da mal

            PHP:
            $conn = mysql_connect($mysql_server,$mysql_user,$mysql_passwort) or die(mysql_error());
            jetzt bekommt ich diese fehlermeldung!

            Fatal error: Call to undefined function: mysql_connect() in /home/web0/html/presse2/skripte/cronjobs/user_tell_me.php on line 104

            Kommentar


            • #7
              Und das sagt dir was?

              Wenn du Debian benutzt mach mal.


              apt-get install php4-mysql
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar


              • #8
                naja was mich wundert ist dass wenn ich das selbe skript per browser ausführe, funktioniert alles wunderbar, also PHP4 und mySQL 4 läuft ja alles.

                Äußerdem läuft auf dem Server ja auch Confixx, also an PHP bzw. MySQL kann es nicht wirklich liegen?!
                Zuletzt geändert von SOB22; 03.04.2006, 14:16.

                Kommentar


                • #9
                  Hmmm. Sind vielleicht zwei PHP-Interpreter installiert? Schau mal in die httpd.conf, welcher dort angemeldet ist, und lege den gesamten Pfad in den cronjob (also z.B. /etc/php Skriptname).

                  Kommentar


                  • #10
                    also an PHP bzw. MySQL kann es nicht wirklich liegen?!
                    Wie schon gesagt..
                    CLI + APACHE PHP haben teils unterschiedliche php.ini dateien....
                    gruss Chris

                    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                    Kommentar


                    • #11
                      Original geschrieben von pekka
                      Hmmm. Sind vielleicht zwei PHP-Interpreter installiert? Schau mal in die httpd.conf, welcher dort angemeldet ist, und lege den gesamten Pfad in den cronjob (also z.B. /etc/php Skriptname).

                      - Ich habe nachgesehen, es ist nur einer angemeldet.

                      - Den Pfad vom root habe ich bereits bis ins html gelegt.

                      Kommentar


                      • #12
                        Also es ist gut möglich das die CLI Version von PHP ohne MySQL kompiliert wurde und das Apache Modul mit...

                        Je nach System würde ich mal in dem Paketmanager nach PHP suchen. Da wirst du bestimmt fündig..

                        Wie gesagt bei Debian ist es das Paket php4-mysql bei Suse gibts sowas ähnliches auch.
                        gruss Chris

                        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                        Kommentar


                        • #13
                          Also es ist gut möglich das die CLI Version von PHP ohne MySQL kompiliert wurde und das Apache Modul mit...
                          Umweg für faule: Skript in ein Webroot-Verzeichnis legen und mit curl oder wget aufrufen. Damit kommt das Apache-Modul zum Zuge, und alles ist gut Je nach Brisanz muß man das Skript dann halt vor Zugriffen von außen schützen, etwa mit einer IP-Sperre (If REMOTE_ADDR not 127.0.0.1: Die() oder so).

                          Kommentar


                          • #14
                            Nanana..

                            Wer wird denn da gleich basteln ??
                            gruss Chris

                            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                            Kommentar


                            • #15
                              leider habe ich immer noch keine Lösung zu meinem Problem gefunden.

                              Ich habe mich jetzt mal direkt per shell mit der mysql DB verbunden, dass funktioniert wunderbar. Was ich einfach nicht verstehen:

                              Wenn ich jetzt ein PHP Skript haben, in dem nur folgendes steht:
                              PHP-Code:
                              $mysql_server "localhost";  // Server
                                  
                              $mysql_user "XXX";       // Benutzer
                                  
                              $mysql_passwort "XXX";       // Passwort
                                  
                              $mysql_datenbank "XXX";   // Datenbank

                                  
                              $conn =  mysql_connect($mysql_server,$mysql_user,$mysql_passwort);

                                  if(
                              $conn)
                                  {
                                    
                              mysql_select_db("$mysql_datenbank") or die (mysql_error()); // Standart Datenbank wählen
                                    
                              return $conn;
                                  }
                                   else
                                   {
                                     echo 
                              "Es konnte keine Verbindung zur Datenbank hergestellt werden!";
                                   } 
                              und dieses Skript, verursacht eben folgenden Fehler

                              OffTopic:
                              Fatal error: Call to undefined function: mysql_connect()

                              Kommentar

                              Lädt...
                              X