Mail-Funktion nachinstallieren?
Alltimefriend
- php
Hallo Leute!
Ein Kunde von mir ist mit der Homepage auf einen eigenen Server umgezogen. Nun kommt bei einem Script, welches die Mail()-Funktion benutzt folgende Fehlermeldung:
Fatal error: Call to undefined function: mail() in /srv/www/htdocs/network/ae01.php on line 69
Kann es sein, dass PHP die Mail()-Funktion hier nicht kennt? Was muss ich noch nachinstallieren, damit es läuft?
OS ist SuSE 9.1
lg, ATF
Hello,
Fatal error: Call to undefined function: mail() in /srv/www/htdocs/network/ae01.php on line 69
Kann es sein, dass PHP die Mail()-Funktion hier nicht kennt? Was muss ich noch nachinstallieren, damit es läuft?
Man sollte sich erstmal über die Systemeinstellungen und Versionen Klarheit verschaffen.
phpinfo() hilft dabei.
Es könnte der Safe Mode im Spiel sein. Da kann man dann auch einzelne Funktionen verbieten.
mit
echo "<pre>";
$_func = get_defined_functions();
sort($_func['internal']);
sort($_func['user']);
print_r(get_defined_functions());
echo "</pre>";
kann man sich Überblick verschaffen, welche Funktionen zur Verfügung stehen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo!
Es könnte der Safe Mode im Spiel sein. Da kann man dann auch einzelne Funktionen verbieten.
mit
echo "<pre>";
$_func = get_defined_functions();
sort($_func['internal']);
sort($_func['user']);
print_r(get_defined_functions());
echo "</pre>";kann man sich Überblick verschaffen, welche Funktionen zur Verfügung stehen.
Hab Dein Script mal eingegeben und mail() scheint nicht auf, Safe Mode ist deaktiviert.
Ich bin eigentlich nur der PHP-Programmierer der Seite, den Server hat einer aufgesetzt, der Linux zum ersten Mal in den Händen hatte. Habe "nur" per SSH und Webmin drauf Zugriff, muss zugeben dass ich von Server-Administration nicht wirklich viel verstehe ;o(
Musste sogar PHP nachinstallieren, da dieser das nicht getan hatte. Hab auch grad gemerkt, dass Sendmail nicht installiert war, habs über FTP auch nachinstalliert.
In welchem File kann man die einzelnen Funktionen denn verbieten? bzw. wie?
lg, ATF
Hello,
Hab Dein Script mal eingegeben und mail() scheint nicht auf, Safe Mode ist deaktiviert.
Musste sogar PHP nachinstallieren, da dieser das nicht getan hatte. Hab auch grad gemerkt, dass Sendmail nicht installiert war, habs über FTP auch nachinstalliert.
Da sollte man nochmals nachlesen, welche Kompilations-Option für das Einbinden der Mail()-Funktion verantwortlich ist. Das weiß ich auch nicht aus dem Kopf und kann bei mir auch keine finden.
Welche PHP-Version auf welcher Plattform wird denn benutzt?
Benutzt Du die CLI, CGI oder die Modul-Version?
In welchem File kann man die einzelnen Funktionen denn verbieten? bzw. wie?
Das steht in der INI-Variablen 'disable_functions' und wird i.d.R. zusammen mit Safe Mode eingesetzt, ist aber eine davon unabhängige Einschränkungsmöglichkeit.
http://de.php.net/features.safe-mode
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi!
Welche PHP-Version auf welcher Plattform wird denn benutzt?
Benutzt Du die CLI, CGI oder die Modul-Version?
Version 4.3.4 auf Suse Linux 9.1, unter Apache 2, die genauen Kernel-Versionen kenn ich selbst nicht, leider ;o(
Hab die Modul-Version installiert.
Das steht in der INI-Variablen 'disable_functions' und wird i.d.R. zusammen mit Safe Mode eingesetzt, ist aber eine davon unabhängige Einschränkungsmöglichkeit.
Bei disable_functions steht nichts, es ist also keine Funktion deaktiviert
Hab Dein Script und PHPinfo auf folgender Seite eingerichtet:
lg, Jan
Hello Jan,
Welche PHP-Version auf welcher Plattform wird denn benutzt?
Benutzt Du die CLI, CGI oder die Modul-Version?Version 4.3.4 auf Suse Linux 9.1, unter Apache 2, die genauen Kernel-Versionen kenn ich selbst nicht, leider ;o(
Hab die Modul-Version installiert.
Das scheint ein Problem zu sein, dass öfter auftritt. Ich konnte dazu noch ein paar Hints finden mit Google. Da wird aber schlussendlich behauptet, dass der Link auf das Mailprogramm falsch war. Nach erneuter Kompilation mit dem richtig eingerichteten Pfad soll die Funktion dann vorhanden gewesen sein.
Ich hatte neulich ein entfernt ähnliches Problem. Da hatte ich mir mit dem Upgrade auf PHP 4.3.8. auch den Pfad zerschossen und mail hat nicht funktioniert. Aber die Funktion war wenigstens vorhanden.
Also vorgeschalgene Vorgehensweise: Überprüfen, ob sendmail über die Konsole funktioniert:
sendmail -t -i
From: deine@email
To: deine@email
Subject: Test
Test
[Ctrl+D] zum beenden der Mail
Und der Thread dazu: http://forum.de.selfhtml.org/archiv/2004/8/87248/#m518380
Wenn das funktioniert, und der Pfad asu der php.ini mit dem link übereinstimmt, dann sollte die Neukompilation von PHP angeblich zum Erfolg führen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
da hatte sich aber ein kliener Fehler eingeschlichen.
Die Funktionen sollten doch sortiert werden:
phpinfo();
echo "<pre>";
$_func = get_defined_functions();
sort($_func['internal']);
sort($_func['user']);
print_r($_func);
echo "</pre>";
Und gleich noch ergänzt.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
Fatal error: Call to undefined function: mail() in /srv/www/htdocs/network/ae01.php on line 69
führe mal YOU aus und installiere den Patch für PHP,
dann klappt auch mail() wieder
Hello,
Fatal error: Call to undefined function: mail() in /srv/www/htdocs/network/ae01.php on line 69
führe mal YOU aus und installiere den Patch für PHP,
dann klappt auch mail() wieder
Könntest Du das bitte noch etwas näher erläutern?
Wodurch wird denn die Funktion mail() unterdrückt in PHP?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom