Life below the fold

Don't link here

Problem okołokonfiguracyjny PHP

Posted on 14 March 2008 by smyru

Męczyłem się ostatnio z dziwaczną sytuacją. Musiałem wykonać hook dla niestandardowej czynności w nieswoim, brzydko napisanym kodzie PHP. Co też uczyniłem. Ze względu na delikatność materii i konieczność zachowania dziennika zdarzeń postanowiłem, że wszelkie wykonywane czynności będą zapisywane do osobnego logu.

Ponieważ kod nie należy do mnie i nie mogę zbytnio weń ingerować, postanowiłem lokalnie nadpisywać konfiguracyjną zmienną error_log i skorzystać z funkcji error_log(). Wstawiłem tam przy pomocy ini_set() nazwę mego dziennika, po czym po zakończeniu owego obejścia uznałem za stosowne posprzątać po sobie i przywrócić stan poprzedni poprzez ini_restore().

Wszystko pięknie, kod krótki, prosty, a tu bum. Przeglądarka mówi mi, że wystąpiło coś na kształt Server error. Coś na kształt, bo nie dostaję żadnego komunikatu od serwera, a jedynie ogólny, domyślny komunikat z Opery, że serwer zrobił boo boo.

Po pewnym czasie zorientowałem się, że problem powoduje ini_restore(). Ale dlaczego? Mniejsza, próbuję to obejść poprzez

$log = ini_set('error_log', 'mylog');
[...]
ini_set('error_log', $log);

I cóż? I nic. Koniec końców okazało się, że admin tej maszyny nie uznał za stosowne ustawić w konfiguracji ścieżki do dziennika logów… Tym samym ini_restore() nie miało czego przywracać. Ale żeby zaraz wywalać całą aplikację?

Categorized As

FreeBSD, GNOME, Internet, Język, Komputery, Kuchnia, Linux, Płock, Rowery, Ta meta, Warszawa, Wrocław, X, Życie