php.ini linter / debug

  • Sagt mal, gibt einen Test, einen Linter oder eine Art Debug für ein php.ini - File? Hatte eben einen unschönen Fehler auf dem System, der durch eine nicht mehr unterstützte Option in der PHP.ini ausgelöst wurde.

    Ungültige Option -> Aufruf von "php5 -c /etc/php5/apache2/php.ini" liefert immer KEIN Ergebnis -> daraus resultierte, dass das Session-TMP nicht mehr geleert wurde -> nun die Inodes alle Belegt waren -> Daher keine Daten in einer gestarteten Session waren.

    Also sehr seltsam und wirr. Zudem hat sich das durch die Inods auch über Wochen oder Monate hinweg verschoben und der Fehler trat erst jetzt auf. Da kann man dann wirklich sagen "ich habe nichts gemacht".

    Daher, gibt es einen Test für die Config???

    Option -l oder --ini bringen nichts, denn die zeigen keine Fehler / Warnungen an.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(

  • Nein, der Apache meldete nichts. Habe alle Logs durch, da steht gar nichts.

    Ein Aufruf von /php5 meldete einen Fehler, aber nur aus einem der extra ini-Files. Aus der php.ini selbst wird nichts gemeldet.

    Das sind auch keine wirklichen Fehler, sondern Optionen aus Zeiten von PHP 5.3 oder kleiner, die es bei 5.4 nun nicht mehr gibt. z.B. safe_mode (und weitere). Der stand noch drinnen, wenn auch auf OFF. Diese Option steht seit php5.4 jedoch nicht mehr zur Verfügung. Und das meldet der Apache nicht, auch nicht php per -l oder --ini.

    Diese nicht mehr vorhandenen Optionen führten aber dazu, dass /usr/lib/php5/maxlifetime keinen Wert mehr meldete und daher das Session-TMP nicht mehr geleert wurde. Das liegt aber nicht an /usr/lib/php5/maxlifetime, denn auch ein -c /etc/php5/apache2/php.ini -r 'print "hallo";' lieferte schlicht keine Antwort. Nichts, keine "hallo", keinen Fehler, einfach nichts. Eine Antwort kam erst nach dem Wechsel auf CLI oder nach dem beseitigen der nicht mehr verfügbaren Optionen in der apache2/php.ini

    Speziell ging es ja um den Cron zur Lösung der Session-Daten. Das hat Ubuntu doch auch, oder? Genau dieser Cron lief nicht mehr - auch ohne Fehler. Gut, warum auch einen Fehler melden, keine Antwort ist schließlich auch eine Antwort. Es wurde ja nicht mit einem Fehlercode geantwortet. So gesehen ist er ja auch gelaufen, musste nur nichts machen.

    Also das hier:

    Code
    cur=$(php5 -c /etc/php5/apache2/php.ini -d "error_reporting='~E_ALL'" -r 'print ini_get("session.gc_maxlifetime");')
                [ -z "$cur" ] && cur=0
                [ "$cur" -gt "$max" ] && max=$cur


    Das Ergebnis der Abfrage ist nichts. Daraus wird dann cur=0 und damit wird dann max überschrieben. Somit erfolgte keine Löschung der Daten.

    Wenn ein Mensch nicht um dich kämpft, hat er nur gewartet, dass du gehst. ;(