mabu: Apache/PHP Konfiguration (XAMPP)

Hallo!

Ich habe auf meinem lokalen PC XAMPP installiert.
Jedoch ist mir dabei aufgefallen, dass bei der Konfiguration einige Dinge nicht ganz wünschenswert ausgeführt sind, was zu Problemen führt, wenn man die Skripte auf anderen Servern verwendet.

Leider weiß ich nicht, wie ich diese Dinge umstelle, deshalb werd ich hier einfach mal die wichtigsten Probleme schildern:

1. Groß-/Kleinschreibung wird ignoriert, sehr ärgerlich

2. PHP-Fehler werden unterdrückt. Vor allem die Meldung "Header's already sent ..." finde ich sehr wichtig, hab aber leider nichts gefunden

Ich hoffe jemand kann mir sagen, wie ich zumindest diese Dinge umstelle, wäre wirklich hilfreich!

Danke schonmal!

mfg,
mabu

  1. echo $begrüßung;

    Ich habe auf meinem lokalen PC XAMPP installiert.

    Unter welchem Betriebssystem läuft dein lokaler PC?

    1. Groß-/Kleinschreibung wird ignoriert, sehr ärgerlich

    Wo genau wird diese ignoriert?

    1. PHP-Fehler werden unterdrückt. Vor allem die Meldung "Header's already sent ..." finde ich sehr wichtig, hab aber leider nichts gefunden

    Das regelt die Einstellung für error_reporting. Diese und andere sinnvolle Einstellungen lassen sich in der php.ini, die sich irgendwo unterhalb deines Installationsverzeichnisses befindet, einstellen. Alternativ wäre eine Einstellung per Verzeichnis in der .htaccess möglich, damit diese Einstellungen nicht durch ein Update wieder verlorengehen.

    Ich empfehle folgende Einstellungen für die .htaccess
    (Für die php.ini ist php_flag/php_value wegzulassen und Schlüsselworte und Wert mit = zu trennen.)

    php_flag allow_call_time_pass_reference Off
    php_value arg_separator.input ;&
    php_value arg_separator.output ;
    php_flag display_errors On
    php_flag display_startup_errors On
    php_value error_reporting 2047
    php_flag magic_quotes_gpc Off
    php_flag register_globals Off
    php_flag register_long_arrays Off   <-- nur für PHP5
    php_flag short_open_tag Off
    php_flag track_errors On

    echo "$verabschiedung $name";

    1. hallo dedlfix,

      Unter welchem Betriebssystem läuft dein lokaler PC?

      Mit allergrößter Wahrscheinlichkeit Windows

      1. PHP-Fehler werden unterdrückt.
        Das regelt die Einstellung für error_reporting. Diese und andere sinnvolle Einstellungen lassen sich in der php.ini, die sich irgendwo unterhalb deines Installationsverzeichnisses befindet, einstellen. Alternativ wäre eine Einstellung per Verzeichnis in der .htaccess möglich

      .htaccess braucht er auf dem lokalen System nicht.

      Ich empfehle folgende Einstellungen für die .htaccess

      Empfiehl das bitte nicht. Nicht, weil es falsch wäre (das ist es nicht) sondern weil es auf dem lokalen Rechner nicht nötig ist.

      Grüße aus Berlin

      Christoph S.

      1. echo $begrüßung;

        Ich empfehle folgende Einstellungen für die .htaccess

        Empfiehl das bitte nicht.

        Zu spät.

        Nicht, weil es falsch wäre (das ist es nicht) sondern weil es auf dem lokalen Rechner nicht nötig ist.

        Das mag primär stimmen. Doch ich sehe den "lokalen Rechner" auch als Entwicklungswerkzeug für Scripte, die sonstwo laufen sollen. Und wenn die dann wegen einiger restriktiverer Einstellungen nicht laufen ist das Gejammer groß.

        echo "$verabschiedung $name";

    2. Hallo!

      Danke schonmal für die Hilfe!

      Unter welchem Betriebssystem läuft dein lokaler PC?

      Windows XP Professional

      Wo genau wird diese ignoriert?

      Sorry, hab die Dateinamen gemeint, zB Unterscheidung von incHeader.php und incheader.php

      Wegen der PHP-Fehler:

      habe bei "error_reporting" folgende einstellung:

      error_reporting  =  E_ALL & ~E_NOTICE
      display_errors = On

      Denke also, dass das stimmen müsste, bei den Kommentaren steht auch, dass das alle Fehler anzeigen sollte.

      Folgendes Script bringt keinen Fehler, sollte aber einen Header-Error bringen soviel ich weiß, weil ja schon ein Dateiheader gesendet wurde:

      -----

      <html>
      <body>
      <?php header("Location: unixtime.php"); ?>
      </body>
      </html>

      -----

      Naja, eigentlich ist das mit den Headern auch die einzige Fehlermeldung, die nicht erscheint. Ist aber ziemlich lästig, wenn man das dann auf anderen Systemen laufen lassen will.

      mfg,
      mabu

      1. echo $begrüßung;

        Wo genau wird diese ignoriert?

        Sorry, hab die Dateinamen gemeint, zB Unterscheidung von incHeader.php und incheader.php

        Windows beachtet nunmal die Schreibweise der Dateinamen nicht.

        habe bei "error_reporting" folgende einstellung:

        Was du denkst, eingestellt zu haben, ist eine Sache. Interessanter ist, was PHP für Einstellungen gefunden hat. phpinfo() zeigt dir diese Angaben.

        Die "Cannot modify header information - headers already sent"-Warnung sollte bei deiner Einstellung angezeigt werden (angenommen, das sind die richtigen Einstellungen). Du unterdrückst ja nur Notices.

        echo "$verabschiedung $name";