error_reporting

#1
Hallo,

Ich ziehe gerade von einem Confixx administrierten Server auf einen ISPConfig(3.0.4.6) -Server um. Nach mehreren Stunden probieren, installieren und suchen, ersuche ich Hilfe.

Ich bekomme den Fehler:
Deprecated: Function eregi() is deprecated in /var/www/clients/client5/web5/web/catalog1/inc/xtc_Security.inc.php on line 102

Das Problem dabei ist:
/etc/php5/apache2/php.ini hat error_reporting = E_ERROR
Ich kann das error_reporting setzen, was ich will. Es ändert sich nichts.
Außer ich setzte display_error = Off, dann sind die Fehler aus.

phpinfo() sagt mir, daß die Master- und Local-Value gleich sind, sich entsprechend der Einstellung ändern und ich die korrekte php.ini editiere.
Auch ein erneutes setzen / verschiedenes setzen per .htaccess oder ini_set bringt keine Änderung am Endergebniss.

Ich bin strikt nach dem Tutorial "The Perfect Server – Debian Squeeze (Debian 6.0) With BIND & Dovecot [ISPConfig 3]" vorgegangen.
Ein Update von PHP 5.3.3.7 auf 5.3.14 hat ebenso keine Änderung erziehlt.

Habe meine alte php.ini rüberkopiert, jedoch ebenso ohne Erfolg. (außer, daß die css eingeladen wird und die Fehler nicht mehr in kryptischen Code endet, sondern nach den Fehlern die Seite ausgegeben wird.)
Daher die Frage: an welchen Stellen könnte ich etwas übersehen haben und wo greift ispconfig ein?

Vielen Dank für die Hilfe!

Edit:
Wenn ich display_error = Off in der php.ini habe und die Werte (siehe unten) in der php-Datei setze (in der phpinfo ändert es die local value korrekt), dann gibt es ebenso keine Fehler aus.
"ini_set('display_errors','ON');
ini_set('error_reporting','1');"

Es muss ja nicht unbedingt global Fehler anzeigen - lokale Fehlerausgabe würde mir reichen ... aber selbst das geht nicht =(
 
Zuletzt bearbeitet:

Till

Administrator
#2
Jeder php mode verwendet ja eine andere php.ini Datei, d.h. Du musst die php.ini datei ändern, die zum php mode gehört und danach apache neu starten:

mod_php: /etc/php5/apache2/php.ini
cgi, fastcgi und suphp: /etc/php5/cgi/php.ini

das ist aber bei Ubuntu immer so und nicht ispconfig spezifisch.

Solltest Du das custom php.ini Feld der Webseite genutzt haben, dann hat diese Webseite jetzt eine eigene php.ini, in dem Fall musst Du die Änderungen im php.ini Feld der Webseite auf dem optionen Reiter durchführen.
 
#3
Vielen vielen Dank für die Antwort.

Leider habe ich den Fehler nicht finden können. Der PHP-Mode war mod_php.
Eine Umstellung auf fast-cgi und das editieren der /etc/cgi/php.ini hat das gleiche Ergebniss gebracht.

Danach habe ich eine Custom php.ini erstellt. Selbes Ergebniss:
Es wird display_error genutzt (also on / off funktioniert), bei error_reporting wird aber immer alles ausgegeben.

Die phpinfo sagt auch, daß es klappen müsste ... =/

In der Custom steht ganz unten:
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
display_error = On

Ich rufe die Seite auf:
Deprecated: Function eregi() is deprecated in /var/www ...
 
Zuletzt bearbeitet:

Till

Administrator
#4
Und Du bist sicher dass in Deinem PHP Script oder einem der von diesem script includierten libraries der error_reporting Level neu gesetzt wird?
 
#5
<?
restore_error_handler();
error_reporting(1);
ini_set('display_errors','ON');
ini_set('error_reporting','1');
phpinfo() # Fehler
$blue = 1;
?>

Wenn ich in der php.ini display_errors = Off setze, kommt hier eine weiße Seite.
Wenn ich es anschalte, wirft er den Fehler.

Wenn ich eregi() nutze, kommt "Deprecated: Function eregi()"

Wenn ich nur das mache, dann siehe oben:
<?
phpinfo() # Fehler
$blue = 1;
?>

phpinfo() sagt aber, daß er das local ändert, wenn ich's in der php-file einsetze.
 
Zuletzt bearbeitet:
#6
Habe jetzt den Server (aus anderen Gründen) neu aufgesetzt nach der Anleitung.
Selber Fehler: error_reporting wird ignoriert und nur E_ALL oder garnix ausgegeben.
 
#8
ich hab da gerade ein änliches Problem. Bei mir werden überhaupt keine Fehler, Warnugen oder sonst was ausgegeben.
ubuntu mit php fastcgi

in der /etc/php5/cgi/php.ini steht: error_reporting = E_ALL & ~E_NOTICE
in ISPConfig unter "Individuelle php.ini Einstellungen" nochmal
und in der php-datei steht: error_reporting(E_ALL ^ E_NOTICE);

ich hab zich Einstellungen probiert immer schön apache neugestartet, aber es passiert nichts.

Wo kann das Problem liegen?

php_info sagt folgendes:
display_errors On/off
display_startup_errors Off/off
error_append_string no value/no value
error_log no value no value/
error_prepend_string no value/no value
error_reporting 30711/30719
log_errors On/On
log_errors_max_len 1024/1024

edit:
habe das Problem gefunden unter individuelle php.ini einstellungen noch "display_errors = On" eingefügt :(

mich würde aber mal interessieren welche php.ini eigentlich greift (abgesehen von ISPConfig), die unter /etc/php5/cgi/php.ini oder die unter /etc/php5/apache2/php.ini ? wozu sind überhaupt 2 da?


edit:
doch noch ein Problem - jetzt kann ich das error_reporting über php nicht mehr abstellen

ini_set('display_errors', 'Off');
ini_set('error_reporting', 'Off');
error_reporting(0);

Fehler werden immernoch angezeigt. in php_info steht jetzt display_errors off/on
 
Zuletzt bearbeitet:

Werbung