Cronjob Problem mit Datenbank Connect

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

  • SOB22
    antwortet
    ich habe das Problem jetzt behoben, es lag wirklich an den 2 unterschiedlichen php.ini Datein.

    vielen dank für eure hilfe!

    Einen Kommentar schreiben:


  • SOB22
    antwortet
    ahh ok hat sich erlefigt
    php --info

    Einen Kommentar schreiben:


  • SOB22
    antwortet
    lass dir doch einfach mal eine ausgabe von beiden systemen (Apache / CLI) von phpinfo() liefern..
    ok, kannst du mir auch noch sagen, wie ich die phpinfo() per CLI bekomme?

    Einen Kommentar schreiben:


  • highrise
    antwortet
    das ist der punkt, den einer meiner vorredner schon versucht hat, zu vermitteln:

    das problem ist, dass CLI die funktion mysql_connect() nicht kennt. Möglicherweise verwendet CLI einen anderen Interpreter als der Apache.

    Beispiel:
    Apache läuft PHP als Apache-Modul (mySQL ist reinkompiliert)
    CLI läuft PHP als CGI (mySQL Capabilities wurden vergessen oder sind absichtlich nicht einkompiliert oder in der ini einfach ausgestellt.)

    means: dein cron kann in der gegenwärtigen konfiguration tatsächlich keine Datenbankverbindung herstellen (jedenfalls nicht zu mysql)

    Du musst nun sehen, wie PHP mit der CLI konfiguriert ist..

    lass dir doch einfach mal eine ausgabe von beiden systemen (Apache / CLI) von phpinfo() liefern..

    die kannst du vergleichen... dort wirst du vermutlich feststellen, dass der pfad zur php.ini ein unterschiedlicher ist oder es andere unterschiede gibt.
    möglicherweise findet auch php die mysql-extension nicht, weil irgendwelche relativen pfadangaben durcheinander geraten sind.

    greetz, high

    Einen Kommentar schreiben:


  • SOB22
    antwortet
    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()

    Einen Kommentar schreiben:


  • hhcm
    antwortet
    Nanana..

    Wer wird denn da gleich basteln ??

    Einen Kommentar schreiben:


  • pekka
    antwortet
    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).

    Einen Kommentar schreiben:


  • hhcm
    antwortet
    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.

    Einen Kommentar schreiben:


  • SOB22
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • pekka
    antwortet
    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).

    Einen Kommentar schreiben:


  • SOB22
    antwortet
    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.

    Einen Kommentar schreiben:


  • hhcm
    antwortet
    Und das sagt dir was?

    Wenn du Debian benutzt mach mal.


    apt-get install php4-mysql

    Einen Kommentar schreiben:


  • SOB22
    antwortet
    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

    Einen Kommentar schreiben:


  • SOB22
    antwortet
    @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!

    Einen Kommentar schreiben:

Lädt...
X