Autor grzesko

Często istnieje potrzeba zmiany niektórych parametrów konfiguracyjnych PHP – ale tylko w obrębie części witryny. Jak to zrobić, jak sprawdzić?

Ogromną większość parametrów PHP można ustawic w pliku konfiguracyjnym PHP – php.ini. W zależności od systemu operacyjnego – może być w różnych miejscach.

W systemach Windows bywa najczęściej w \WiNDOWS lub \WINNT. W linuksowych może być np. w /etc/…

Ważne – plik php.ini zawiera ustawienia dyrektyw globalnych – dotyczących całego serwera WWW, którego modułem jest php.

Aby sprawdzić ustawienia PHP – wystarczy wykonać polecenie

phpinfo() 

a jeszcze lepiej stworzyć sobie plik, który będziemy uruchamiać w przeglądarce – np. test.php o zawartości:

<?php 
phpinfo(); 
?> 

Uruchomienie go w przeglądarce pokaże dużo opcji konfiguracyjnych – początek to opcje kompilacji, które wiele mówią o możliwościach PHP, a dalej mamy tabelę o dwóch głównych kolumnach:
– Master Value – globalne parametry
– Local Value – parametry lokalne, dotyczące katalogu, w którym uruchamiamy polecenie phpinfo.

Master Value – zmieniamy w php.ini, a Local?

Otóż istnieje możliwość zmiany niektórych parametrów bezpośrednio w skrypcie, ale moim zdaniem ciekawszą metodą jest wykorzystanie plików zmiany lokalnej konfiguracji serwera WWW – opiszę na przykładzie Apache.

W standardowej konfiguracji Apache możliwość ta jest najczęściej wyłączona. Nie zagłębiając się w szczegóły dobre na oddzielny artykuł – chodzi o dyrektywę konfiguracyjną AllowOverride – w odniesieniu do naszego katalogu stron WWW.

Jej odpowiednie wywołanie – powoduje, że serwer Apache sprawdza, czy w danym katalogu jest plik lokalnej konfiguracji – .htaccess (oczywiście nazwa może być inna – ale jest to najczęściej stosowany standard).

Skasowane dane to nie zawsze tragedia - ściągnij program i odzyskaj dane

Jeśli zostanie znaleziony i dyrektywa AllowOverride na to zezwala – parametry Apache zostaną zmienione wg pliku .htaccess – w katalogu bieżącym i w dół struktury katalogów.

W ten sposób jest często realizowane ograniczanie dostępu użytkowników do pewnych katalogów.

Plik .htaccess można również doskonale wykorzystać do lokalnej zmiany parametrów PHP w obrębie danej witryny lub jej części.

Wielką zaletą tych plików jest to, że zmiany w nich zawarte są brane pod uwagę bez restartu serwera WWW!

Prześledźmy to na przykładzie parametru max_execution_time – maksymalny czas wykonywania skryptu. Standardowo ustawiony jest na 30 sekund. Zmieńmy na 75 sekund.

Aby zmienić ustawienie globalne dla całości serwera WWW – wystarczy w pliku php.ini zmodyfikować linię:

max_execution_time = 30 

na taką:

max_execution_time = 75

i zrestartować serwer WWW.

Aby zmienić ustawienie lokalnie w bieżącym katalogu i jego podkatalogach – wystarczy w pliku .htaccess umieścić linię:

php_value max_execution_time 75 

i to wszystko.

Można też zmienić to w jednym konkretnym skrypcie – tak:

<?php 
set_time_limit(75); 
(...) 
?> 

Można wybrać w zależności od potrzeb i oczywiście możliwości jakie da nam administrator serwera WWW.

Jeszcze tylko słowo jak zmienić w .htaccess parametry nie dotyczący zmian wartości – jak powyżej – ale zmian stanu (on/off) – wystarczy wpisać:

php_flag magic_quotes_gpc Off 

(przykład dla opcji MagicQuotes GPC).

Autor grzesko

Skasowane dane to nie zawsze tragedia - ściągnij program i odzyskaj dane