ich habe das Problem jetzt behoben, es lag wirklich an den 2 unterschiedlichen php.ini Datein.
vielen dank für eure hilfe!
Cronjob Problem mit Datenbank Connect
Einklappen
X
-
ok, kannst du mir auch noch sagen, wie ich die phpinfo() per CLI bekomme?lass dir doch einfach mal eine ausgabe von beiden systemen (Apache / CLI) von phpinfo() liefern..
Einen Kommentar schreiben:
-
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:
-
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:
und dieses Skript, verursacht eben folgenden FehlerPHP-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!";
}
OffTopic:
Fatal error: Call to undefined function: mysql_connect()
Einen Kommentar schreiben:
-
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 gutAlso es ist gut möglich das die CLI Version von PHP ohne MySQL kompiliert wurde und das Apache Modul mit...
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:
-
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:
-
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:
-
Wie schon gesagt..also an PHP bzw. MySQL kann es nicht wirklich liegen?!
CLI + APACHE PHP haben teils unterschiedliche php.ini dateien....
Einen Kommentar schreiben:
-
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:
-
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:
-
Und das sagt dir was?
Wenn du Debian benutzt mach mal.
apt-get install php4-mysql
Einen Kommentar schreiben:
-
jetzt bekommt ich diese fehlermeldung!Mach da mal
PHP:
$conn = mysql_connect($mysql_server,$mysql_user,$mysql_passwort) or die(mysql_error());
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:
-
@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:
Einen Kommentar schreiben: