Pfad angeben in der Error Report gespeichert werden soll.
Jonny F.
- php
Hallo,
ich versuche gerade den Error Report von PHP in einen Ordner meiner Wahl zu speichern, so weit bin ich bis jetzt gekommen
<?php
ini_set("log_errors", 1); /* Logging "an" schalten */
ini_set("error_log", $_SERVER['DOCUMENT_ROOT'] . "/errorlog.txt"); /* Log-Datei angeben */
?>
Kann ich hier auch irgendwo einen Pfad angeben in der er die Textdatei erstellen soll
danke im Vorraus
Gruß Jonny F.
Hallo,
<?php
ini_set("log_errors", 1); /* Logging "an" schalten /
ini_set("error_log", $_SERVER['DOCUMENT_ROOT'] . "/errorlog.txt"); / Log-Datei angeben */
?>
> Kann ich hier auch irgendwo einen Pfad angeben in der er die Textdatei erstellen soll
ich verstehe dein Anliegen nicht ganz - genau das tust du doch schon!
> danke im Vorraus
^
Gerrrn geschehen.
So long,
Martin
--
Wie kann es sein, dass ich von 100 Gramm Schokolade zwei Kilo zunehme?
Mein fehler, also
<?php
ini_set("display_errors", 0);
ini_set("log_errors", 1); /* Logging "an" schalten */
ini_set("error_log", dirname($_SERVER['PHP_SELF']) . "/errorlog.txt"); /* Log-Datei angeben */
echo dirname($_SERVER['PHP_SELF']);
echo "kein fehler";
gebrabbel();
echo "fehler erzeugt";
?>
ich möchte gerne das er den errorlog.txt in das Verzeichnis erstellt in den auchmeine Scripte liegen, so müsste es doch normal funktionieren, aber tut es nicht :(
Hi!
gebrabbel();
ich möchte gerne das er den errorlog.txt in das Verzeichnis erstellt in den auchmeine Scripte liegen, so müsste es doch normal funktionieren, aber tut es nicht :(
Bei "gebrabbel();" kann das auch nicht funktionieren, denn eine nicht vorhandene Funktion ist ein Fehler, der bereits zur Compile-Zeit auftritt, also noch bevor das Script gestartet wurde und also überhaupt die Chance hatte, deine ini-Änderungen zu bearbeiten.
Lo!
Hi!
gebrabbel();
ich möchte gerne das er den errorlog.txt in das Verzeichnis erstellt in den auchmeine Scripte liegen, so müsste es doch normal funktionieren, aber tut es nicht :(Bei "gebrabbel();" kann das auch nicht funktionieren, denn eine nicht vorhandene Funktion ist ein Fehler, der bereits zur Compile-Zeit auftritt, also noch bevor das Script gestartet wurde und also überhaupt die Chance hatte, deine ini-Änderungen zu bearbeiten.
Lo!
Ich hätte den Link lieber vorher schon reinschreiben sollen
bei was für fehler schreibt er dann in die error Datei einen eintrag?
Hi!
Bei "gebrabbel();" kann das auch nicht funktionieren, denn eine nicht vorhandene Funktion ist ein Fehler, der bereits zur Compile-Zeit auftritt, also noch bevor das Script gestartet wurde und also überhaupt die Chance hatte, deine ini-Änderungen zu bearbeiten.
Entschuldigung, hier muss ich mich revidieren. Nicht vorhandene Funktionen sind doch kein Compile-Fehler. Denn wenn man sie erst im Laufe des Programmflusses anlegt - was bei PHP möglich ist - kann der Compilier gar nicht wissen, ob es sie geben wird oder nicht.
ich möchte gerne das er den errorlog.txt in das Verzeichnis erstellt in den auchmeine Scripte liegen, so müsste es doch normal funktionieren, aber tut es nicht :(
Da muss ich dich bitten, genauer zu beobachten und zu beschreiben, was passiert oder auch was nicht passiert. display_errors kannst du zum Testen angeschaltet lassen, das Error-Log wird auch so geschrieben. Das error_reporting solltest du aber auf alle Fälle auf E_ALL stellen. Vielleicht wird die Datei nicht angelegt, weil der PHP-Prozess keine Schreibrechte im Verzeichnis hat. Die hat er nämlich aus gutem Grund nicht. Und das solltest du auch so beibehalten. Empfehlenswert ist, ein Extra-Verzeichnis anzulegen, möglichst außerhalb des DOCUMENT_ROOT.
ini_set("error_log", dirname($_SERVER['PHP_SELF']) . "/errorlog.txt"); /* Log-Datei angeben */
$_SERVER['PHP_SELF'] ist auch keine empfehlenswerte Grundlage für einen Verzeichnisnamen, da der Wert vom Anwender (in Form der URL) manipuliert werden kann. (Wenn PathInfo aktiviert ist, kann man hinter den Scriptnamen nette Sachen hängen.)
Lo!
würde es gehen das ich dafür dann einfach ein Unterordner mache oder soll es gar nicht in dem Verzeichnis sein,
also
rootordner -> unterordner mit errorlog
oder eher
unterordner mit errorlog -> rootordner
Bei der Pfadangbabe soll ich also eine relative Pfadangabe zum Ordner machen, also usr/shar/bla/errorlogverzeichnis
Gruß Jonny F.
Hi!
würde es gehen das ich dafür dann einfach ein Unterordner mache oder soll es gar nicht in dem Verzeichnis sein,
Besser ist es natürlich, wenn das Verzeichnis komplett außerhalb des DocumentRoots liegt. Niemand soll von außen darauf zugreifen (können), schon gar nicht auf ein beschreibbares Verzeichnis. Ein Schutz à la Deny from all hilft nur, wenn diese Konfiguration nicht zufällig gelöscht wurde.
also
rootordner -> unterordner mit errorlog
oder eher
unterordner mit errorlog -> rootordner
Du hast doch ein Unix-System. In einem solchen gibt es eine quasi vorgegebene Verzeichnisstruktur. /var/log ist (meist) für Logfiles vorgesehen. Projektbezogene Logfiles könnten auch dort abgelegt werden, aber:
Wenn du mehrere Projekte auf dem Server hast, empfiehlt es sich sowie für jedes Projekt ein eigenes Verzeichnis mit Unterverzeichnissen anzulegen. Denn auch Session-Dateien sollten sich kein gemeinsames Verzeichnis teilen, weil PHPs Garbage-Collector zwar mit projektspezifischen Einstellungen aber auf alle Sessiondateien im gleich konfigurierten Pfad wirkt.
Ich würde ein /www oder /var/www anlegen, dort für jedes Projekt ein eigenes Verzeichnis erstellen und darin zum Beispiel
.../session
.../log
.../docroot (öffentlich erreichbar. Domain/VHost/Alias zeigt nach hier)
.../config (Konfigurationsdateien)
.../data (nicht direkt über das Web zugängliche Daten)
Bei der Pfadangbabe soll ich also eine relative Pfadangabe zum Ordner machen, also usr/shar/bla/errorlogverzeichnis
Das Handbuch sagt zum error_log nicht, wo PHP es bei relativen Angaben sucht. Eine absolute Angabe sollte immer gehen und eindeutig sein.
Lo!
Hi!
würde es gehen das ich dafür dann einfach ein Unterordner mache oder soll es gar nicht in dem Verzeichnis sein,
Besser ist es natürlich, wenn das Verzeichnis komplett außerhalb des DocumentRoots liegt. Niemand soll von außen darauf zugreifen (können), schon gar nicht auf ein beschreibbares Verzeichnis. Ein Schutz à la Deny from all hilft nur, wenn diese Konfiguration nicht zufällig gelöscht wurde.
also
rootordner -> unterordner mit errorlog
oder eher
unterordner mit errorlog -> rootordnerDu hast doch ein Unix-System. In einem solchen gibt es eine quasi vorgegebene Verzeichnisstruktur. /var/log ist (meist) für Logfiles vorgesehen. Projektbezogene Logfiles könnten auch dort abgelegt werden, aber:
Wenn du mehrere Projekte auf dem Server hast, empfiehlt es sich sowie für jedes Projekt ein eigenes Verzeichnis mit Unterverzeichnissen anzulegen. Denn auch Session-Dateien sollten sich kein gemeinsames Verzeichnis teilen, weil PHPs Garbage-Collector zwar mit projektspezifischen Einstellungen aber auf alle Sessiondateien im gleich konfigurierten Pfad wirkt.
Ich würde ein /www oder /var/www anlegen, dort für jedes Projekt ein eigenes Verzeichnis erstellen und darin zum Beispiel
.../session
.../log
.../docroot (öffentlich erreichbar. Domain/VHost/Alias zeigt nach hier)
.../config (Konfigurationsdateien)
.../data (nicht direkt über das Web zugängliche Daten)Bei der Pfadangbabe soll ich also eine relative Pfadangabe zum Ordner machen, also usr/shar/bla/errorlogverzeichnis
Das Handbuch sagt zum error_log nicht, wo PHP es bei relativen Angaben sucht. Eine absolute Angabe sollte immer gehen und eindeutig sein.
Lo!
Vielen Dank für die Tipps, habs jetzt entlich mal hinbekommen
Gruß Jonny F.