Keine Fehlermeldungen mehr!?

RaGGi

RaGGi

Aktives Mitglied
Thread Starter
Dabei seit
06.02.2004
Beiträge
132
Reaktionspunkte
0
Hallo zusammen!

Hab neulich mal Entropy PHP 5.0.4 installiert und siehe da, endlich funktionieren wieder die Uploads bei mir =) YAY, kann ich da nur sagen *g*.
Jetzt hab ich nur das Problem, dass mir keine Fehlermeldungen mehr angezeigt werden, wennn ein Script z.B. Fehler enthält. Es wird dann einfach gar nichts angezeigt, was natürlich umso schwerer ist, wenn man den Fehler dann suchen will. Habt ihr gerade mal eine Idee, wie ich das wieder gradebiegen kann? Wäre euch echt dankbar :)

Gruß,
RaGGi
 
Entweder in der php.ini error_reporting wie gewünscht aktivieren (Default ist normalerweise E_ALL & ~E_NOTICE) oder zur Laufzeit über error_reporting().

Matt
 
Hmm, hab jetzt gerade noch nicht weiter in die php.ini geschaut, aber über phpinfo() krieg ich zu hören, dass error_reporting auf 2047 steht *fragezeichen*
 
Das wäre E_ALL. Dann solltest du aber auf jeden Fall Fehlermeldungen ausgegeben bekommen. Außer natürlich, das wird nachträglich irgendwo durch error_reporting() geändert.

Matt
 
Setz mal inder php.ini

display_errors = on

Neuerdings ist diese direktive auf off und alle PHP-Fehler landen in dem apache error_log (Wird mit log_errors= On aktiviert)! Ich finde es sorum besser, weil das die Bildaufteilung dann nicht durcheinander bringt. Die Fehler habe ich per

tail -f /var/log/httpd/error_log

trotzdem immer in einer Konsole im Blick
 
Ok, also display_errors steht auf Off, wie ich gerade sehe, also wird es wohl daran liegen.
Steinigt mich, aber nach einer Stunde Forensuche habe ich keine Ahnung mehr, wo ich suchen soll: wie komme ich an die php.ini??? Ich hab das alles schonmal gemacht, aber wenn man das nicht jeden Tag braucht, vergisst man (oder zumindest ICH) es schnell :(
 
Kein Grund für Seteinigungen :D

die php.ini kann an beliebigen Orten stehen, daher ist die Aussage wirklich nicht trivial! Standard ist /etc/php.ini . Bei den Versionen von entropy.ch wird jedoch php nach /usr/local/ installiert. Die php.ini befindet sich dort unter

/usr/local/php5/lib/php.ini

Der Pfad zur ini ist in PHP einkompiliert. Du bekommst ihn mit folgendem simplen Skript heraus:

PHP:
<?
  phpinfo();
?>

Neben allen Parametern zu PHP und Apache findest Du hier auch den von PHP erwarteten Speicherort zur php.ini ( einfach per CTRL+F nach php.ini suchen).
Dann nutzt es Dir gar nichts, wenn Du in /etc/ eine php.ini erstellst, wenn PHP sie wie in diesem Fall an anderer Stelle erwartest. Das führt auch immer zu dem netten Effekt, das Leute die Änderungen brav in die /etc/php.ini eintragen, apache neustarten und sich wundern das nichts passiert - kein Wunder bei der falschen ini!

Ach ja, der Apache Neustart geht mit:

sudo apachectl restart

oder einzeln mit

sudo apachectl stop
sudo apachectl start



Gruß wegus
 
Ok, das wäre behoben, ich kriege wieder Fehlermeldungen.... und genau die stören mich jetzt *ggg*. Jetzt kriege ich eine ganze Latte von "Notice: Undefined index: tralalalala".. müsste jetzt nochmal alle Variablen initialisieren, die ich schon einmal in voller Länge aufgelistet habe, als ich sie den entsprechenden Arrays (GET, POST, SERVER und FILES) zugewiesen hab... nennt mich faul, aber irgendwie ist mir das zu doof *g*. Gibt es da nicht eine kürzere Schreibweise für, sodass ich nicht alles doppelt und dreifach schreiben muss?

Danke auf jeden Fall für eure Hilfe! Was ich gesucht habe war pico ^^ Zum Glück hab ich mich noch dunkel an diesen Befehl erinnert, dann ging alles ganz leicht. Sollte ich mal öfters machen ;)


Ach noch eine Kleinigkeit, auch wenn das nicht ganz der richtige Bereich ist, geht aber auch um dasselbe Problem. Ich hab bei S4Y einen Root-Server stehen, aber da ich da nur ungerne dran rumfummel (die Serveradmins haben auch angeblich keine Ahnung.. ähäm), wüsste ich gern, ob man da auch auf die Weise die php.ini ändern kann? Dürfte doch theoretisch nicht viel anders sein, oder?
 
Zuletzt bearbeitet:
Es sollte ja nur ein Beispiel sein, daß der Himmel noch etwas blauer zu bekommen ist, so wie sich wegus das vorgestellt hatte.

Faulheit ist eine wichtige Voraussetzung für Programmierer, nur sollte die Faulheit Verbesserungen an wichtigen Stellen erbringen und nicht uninitialisierte Variable ;)

einen Root-Server stehen, aber da ich da nur ungerne dran rumfummel (die Serveradmins haben auch angeblich keine Ahnung.. ähäm), wüsste ich gern, ob man da auch auf die Weise die php.ini ändern kann? Dürfte doch theoretisch nicht viel anders sein, oder?

Ja, wie oben beschrieben. Erstell ein phpinfo-Skript (Achtung NICHT frei zugänglich für Andere!) und lies den Pfad zur php.ini aus. Dann per ssh dorthin verbinden und die php.ini z.B. mit pico editieren!
 
Im Idealfall solltest keine nicht initialisierten Variablen haben :D

Da php aber damit umzugehen weiß kannst du die Warnings ausschalten. Dein error_reporting steht ja auf 2047 (E_ALL). Diese einfach auf "E_ALL & ~E_NOTICE" (oder auch "E_ALL ^ E_NOTICE", bei mir funktioniert ersteres, in der Doku steht letzteres) setzen, dann verschwinden die Meldungen.

Mehr dazu findest du unter http://de.php.net/error_reporting.

Matt
 
@wegus: ich werd's mal versuchen, danke ^^

@mssloviO: danke, hab ich auch gefunden, als ich nochmal geschaut hab. Wollte das eigentlich wieder rückgängig machen, aber dann seh ich "Hoppla, da gibt es ja noch eine Zwischenlösung" :)

Danke euch für eure Hilfe, jetzt kann ich endlich wieder wie früher arbeiten.... auch wenn ich gar keine Lust habe *gg*.
 
also wenn bei mir ein fehler auftritt, also alles über NOTICE, fehlen nicht nur die fehlermeldungen, es wird auch der komplette html-teil und der restliche PHP-Teil nicht mehr ausgegeben: sprich eine leere Seite.

Im Terminal nachschauen: aja, fehler, da... korrigieren... siehe da, es klappt

doch so kann man auf dauer nicht arbeiten.

jetzt hab ich display_errors = on gemacht, jedoch hat sich immer noch nichts daran verändert. leere seite, errors nur im terminal.

ich habe die einstellungen mit sudo pico geändert und gespeichert, den apache neugestartet und dann wieder in der php.ini geschaut, ob die änderungen wirklich gemacht wurden. das on steht immer noch drin.

muss ich sonst noch was beachten?
 
Die Suche hilft da weiter ;)

Du mußt die richtige php.ini verändern ( jede PHP-Version hat den Pfad dahin einkompiliert), wo die steht sagt Dir phpinfo();
Dann sollte error_reporting richtig gesetzt sein und nat. nicht im Skript deaktiviert werden. display_errors auf on, weißt Du ja schon!
 
Zuletzt bearbeitet:
wegus schrieb:
Die Suche hilft da weiter ;)

Du mußt die richtige php.ini verändern ( jede PHP-Version hat den Pfad dahin einkopiliert), wo die steht sagt Dir phpinfo();
Dann sollte error_reporting richtig gesetzt sein und nat. nicht im Skript deaktiviert werden. display_errors auf on, weißt Du ja schon!

Die richtige php.ini hatte ich:
/usr/local/php/lib/php.ini

error_reporting ist auf E_ALL

im skript ist dies nicht deaktiviert und display_errors ist on

Trotzdem kommt eine leere Seite!?!?!
 
apachectl restart

hast Du auch gemacht?
 
ich hab bisher nur apachectl grafeful
gemacht, dachte das wäre das gleiche.

aber mit restart ists auch nicht anders!
 
Merkwürdigst!
Du hast auch die richtige PHP-Version in der httpd.conf aktiviert? Bei entropy.ch-Versionen endet die httpd.conf auf:

Code:
# begin entropy.ch PHP module activation
Include /usr/local/php5/httpd.conf.php
# end entropy.ch PHP module activation

# begin entropy.ch PHP module activation
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.php
# end entropy.ch PHP module activation
 
1. Ich habe nur eine PHP-Installation (und zwar die entropy)
2. Ja, die Datei /var/httpd/httpd.conf endet wie oben beschrieben.

Mir ist es echt ein Rätsel!
 
Die Version 5.04 für Apache 1.3 ohne PDFLIB ??
Dann ist mir das auch ein Rätsel, die läuft nämlich auf zwei Rechnern bei mir...
 
ne, das ist die version mit PHP 4
 
Zurück
Oben Unten