Rozdział 3. Konfiguracja

Spis treści
Plik konfiguracyjny

Plik konfiguracyjny

Plik konfiguracyjny (nazywający się php3.ini w PHP 3.0, i po prostu php.ini od PHP 4.0) jest czytany w momencie startu PHP. W przypadku PHP w wersji modułu serwera, dzieje się tylko tylko raz, przy starcie serwera. Dla wersji CGI dzieje się to dla każdego uruchomienia.

Przykład 3-1. Przykład php.ini

; dowolny tekst w linii zaczynającej się od średnika (;) jest ignorowana
[php] ; znaczniki sekcji (tekst wewnątrz nawiasów kwadratowych) także jest
      ; ignorowany
; Wartości logiczne mogą być albo:
;    true, on, yes
; lub false, off, no, none
register_globals = off
magic_quotes_gpc = yes

; Stringi mogą być obejmowane w cudzysłowy
include_path = ".:/usr/local/lib/php"

; Znaki backslash (\) są traktowane tak jak każdy inny znak
include_path = ".;c:\php\lib"

Używając PHP jako moduł Apache, możesz zmieniać opcje konfiguracyjne także w plikach konfiguracyjnych Apache i .htaccess.

Korzystając z PHP 3.0 dyrektywy Apache odpowiadają ustawieniom konfiguracyjnym z pliku php3.ini poprzedzonym przez "php3_".

W PHP 4.0 istnieje kilka dyrektyw Apache, które pozwalają na zmianę konfiguracji PHP z plików konfiguracyjnych Apache.

php_value nazwa wartość

Ustawia wartość podanej zmiennej.

php_flag nazwa on|off

Ta opcja jest używana do opcji konfiguracji tak/nie.

php_admin_value nazwa wartość

Ta opcja ustawia wartość podanej zmiennej. Opcje konfiguracji "admin" mogą być ustawiane tylko z głównych plików konfiguracyjnych Apache, nie z plików .htaccess.

php_admin_flag nazwa on|off

Ta opcja jest używana do opcji konfiguracji typu tak/nie.

Przykład 3-2. Przykład konfiguracji Apache

<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Możesz przeglądać ustawienia opcji konfiguracyjnych w wyjściu funkcji phpinfo(). Do tych opcji możesz się także dostać używając funkcji get_cfg_var().

Ogólne dyrektywy konfiguracji

allow_url_fopen boolean

Ta opcja włącza interfejsy do funkcji fopen rozpoznające URLe pozwalające na dostęp do obiektów URL jak do plików. Domyślne interfejsy pozwalają na dostęp do zdalnych plików korzystając z protokołów ftp lub http. Niektóre rozszerzenia, takie jak zlib, mogą rejestrować dodatkowe interfejsy.

Notatka: Dyrektywa ta została wprowadzona zaraz po wyjściu wersji 4.0.3. Dla wersji 4.0.3 i wyższych możesz wyłączyć tą opcję w czasie kompilacji używając przełącznika --disable-url-fopen-wrapper.

asp_tags boolean

Włącza możliwość użycia tagów takich jak w ASP - <% %> - razem z normalnymi tagami <?php ?>. Dotyczy to także skrótowego wyświetlania wartości zmiennych typu <%= $value %>. Aby uzyskać więcej informacji przeczytaj rozdział more information, see Wyskakiwanie z HTMLa.

Notatka: Obsługa ASPowych tagów została dodana w wersji 3.0.4.

auto_append_file string

Określa nazwę pliku, który jest automatycznie przetwarzany po głównym pliku. Plik jest dołączany tak, jakby została wywołana funkcja include(), a więc używana jest opcja include_path.

Specjalna wartość none wyłącza auto-dołączanie.

Notatka: Jeśli skrypt zostanie zakończony przez exit(), nie dojdzie do auto-dołączenia.

auto_prepend_file string

Określa nazwę pliku, który będzie automatycznie przetwarzany przed głównym plikiem. Plik jest dołączany tak, jakby wywołana była funkcja include(), a więc używana jest opcja include_path.

Specjalna wartość none wyłącza automatyczne poprzedzanie pliku.

cgi_ext string

display_errors boolean

Określa, czy błędy powinny być wyświetlane jako część wyjścia HTML czy nie.

doc_root string

Katalog "katalogu głównego" PHP na serwerze. Używane tylko, jeśli jest to ciąg niepusty. Jeśli PHP jest skonfigurowane do pracy w trybie bezpiecznym, pliki spoza tego katalogu nie będą serwowane.

engine boolean

Ta dyrektywa jest przydatna tylko przy pracy z PHP w postaci modułu Apache. Jest ona używana na hostach, na których chce się włączać i wyłączać parsowanie PHP na podstawie katalogu lub na podstawie wirtualnego serwera. Umieszczając engine off we właściwych miejscach pliku httpd.conf PHP może być aktywne lub nieaktywne.

error_log string

Nazwa pliku, gdzie logowane mają być błędy. Jeśli użyta jest specjalna wartość syslog, błędy wysyłane są do systemowej aplikacji logowania. Na systemach oznacza to syslog(3) a na Windows NT - log zdarzeń. Systemowa aplikacja logowania nie jest obsługiwana przez Windows 95.

error_reporting integer

Ustaw poziom zgłaszania błędów. Parametrem jest liczba całkowita reprezentująca zestaw bitów. Dodaj wartości poziomów zgałaszania błędów które chcesz.

Tabela 3-1. Poziomy zgłaszania błędów

wartość bitowazgłaszany błąd
1normalne błędy
2normalne ostrzerzenia
4błędy parsera
8niekrytyczne ostrzerzenia związane ze stylem
Domyślną wartością dla tej dyrektywy jest 7 (wyświetlane są normalne błędy, normalne ostrzeżenia i błędy parsera).

html_errors boolean

Wyłącz tagi HTMLowe w informacjach o błędach.

open_basedir string

Ogranicz pliki które mogą być otwarte przez PHP do podanego drzewa katalogów.

Jeśli skrypt próbuje otworzyć plik, np. przez funkcje fopen lub gzopen, sprawdzane jest położenie pliku. Kiedy plik jest poza podanym drzewem katalogów, PHP odmawia otwarcia takiego pliku. Wszystkie dowiązania symboliczne są rozwiązywane, więc nie jest możliwe uniknąć tego ograniecznia przez symlinki.

Wartość specjalna . wskazuje, że katalog w którym znajduje się skrypt będzie uznawany jako katalog bazowy dla tej dyrektywy.

Pod systemem Windows, oddzielaj katalogi średnikami. Na wszystkich innych systemach, oddzielaj katalogi dwukropkami. Pracując jako moduł Apache, ścieżki open_basedir katalogów nadrzędnych są automatycznie dziedziczone.

Notatka: Obsługa dla wielu katalogów została dodana w 3.0.7.

Domyślnie PHP pozwala na otwieranie wszystkich plików.

gpc_order string

Ustaw kolejność parsowania zmiennych GET/POST/COOKIE. Domyślne ustawienie do "GPC". Ustawienie tej dyrektywy np. na "GP" spowoduje, że PHP będzie całkowicie ignorował ciasteczka i przebijał wszystkie zmienne otrzymane metodą GET zmiennymi o tej samej nazwie otrzymanymi metodą POST.

Zauważ, że ta opcja nie jest dostępna w PHP 4. Użyj opcji variables_order.

variables_order string

Ustawia porządek przetwarzania zmiennych EGPCS (Environment, GET, Post, Cookie, Server). Domyślne ustawienie tej dyrektywy to "EGPCS".Ustawienie tej dyrektywy np. na "GP" spowoduje, że PHP będzie całkowicie ignorował ciasteczka i przebijał wszystkie zmienne otrzymane metodą GET zmiennymi o tej samej nazwie otrzymanymi metodą POST.

Patrz także register_globals.

ignore_user_abort string

Domyślnie włączona. Jeśli zostanie zmieniona na Off, skrypty będą przerywane jak tylkol będą próbowały wysłać coś do klienta, który przerwał połączenie. ignore_user_abort().

include_path string

Określa listę katalogów, gdzie funkcje require(), include() i fopen_with_path() będą szukały plików. Format jest podobny do zmiennej środowiskowej PATH: lista katalogów oddzielona dwukropkiem na systemach UNIX lub średnikiem na systemach Windows.

Przykład 3-3. include_path na systemach UNIX

include_path=.:/home/httpd/php-lib

Przykład 3-4. include_path na systemach Windows

include_path=".;c:\www\phplib"
Domyślną wartością tej dyrektywy jest . (tylko bieżący katalog).

isapi_ext string

log_errors boolean

Ustawia czy komunikaty o błędach skryptu mają być logowane do logu błędów serwera. W związku z tym ta opcja jest specyficzna dla poszczególnych serwerów.

magic_quotes_gpc boolean

Ustawia stan magic_quotes dla operacji GPC (Get/Post/Cookie). Jeśli magic_quotes są włączone, wszystkie znaki ' (apostrof), " (cudzysłów), \ (backslash) i znaki NULL są zamieniane na sekwencje escape przez dodanie przed te znaki znaku backslash. Jeśli włączona jest także dyrektywa magic_quotes_sybase, wszystkie apostrofy są zamieniane na sekwencej escape przez dodanie apostrofu zamiast znaku backslash.

magic_quotes_runtime boolean

Jeśli włączona jest dyrektywa magic_quotes_runtime, większośc funkcji, które zwracają dane z dowolnych zewnętrznych źródeł, włączając w to bazy danych i pliki tekstowe, będzie zwracała dane z apostrofami i cudzysłowami zamienionymi na sekwencje escape przy pomocy znaku backslash. Jeśli włączona jest także opcja magic_quotes_sybase, apostrof będzę zamieniany na sekwencję escape przy pomocy apostrofu zamiast znaku backslash.

magic_quotes_sybase boolean

Jeśli włączona jest opcja magic_quotes_sybase, apostrof będzie zamieniany na sekwencję escape używając apostrofu zamiast znaku backslash, jeśli włączona jest opcja magic_quotes_gpc i/lub magic_quotes_runtime.

max_execution_time integer

Dyrektywa to określa maksymalny czas w sekundach wykonywania skryptu, zanim zostanie przerwany przez parser. Pomaga to w zapobieganiu blokowania serwera przez kiepsko napisane skrypty. Domyślne ustawienie to 30.

Na dyrektywę max_execution_time nie wpływają wywołania systemowe, funkcja sleep() itp. Zobacz opis funkcji set_time_limit() aby uzyskać więcej szczegółów.

memory_limit integer

Dyrektywa ta ustawia maksymalną wielkość pamięci w bajtach, którą skrypt może zaalokować. Pomaga to w zapobieganiu zjadania całej dostępnej pamięci serwera przez kiepsko napisane skrypty.

nsapi_ext string

register_globals boolean

Ustala, czy rejestrować zmienne EGPCS (Environment, GET, POST, Cookie, Server) jako zmienne globalne. Możesz wyłączyć tę opcję jeśli nie chcesz zaśmiecić globalnych zasięgów swoich skryptów przez dane użytkownika. Ma to największy sens jeśli użwane jest w połączeniu z track_vars - w takim przypadku do zmiennych EGCPS możliwy jest przez zmienne globalne $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, i $HTTP_SERVER_VARS.

Zauważ, że nie musisz ustawiać AllowOverride All w bloku Directory pliku konfiguracyjnego serwera Apache aby to działało.

short_open_tag boolean

Ustala, czy dozwolona jest skrócona forma tagu otwierającego PHP (<? ?>). Jeśli chcesz używać PHP w połączeniu z XMLem, powinieneś wyłączyć tą opcję. Jeśli ta opcja jest wyłączona, musisz używać długiej postaci tagu otwierającego. (<?php ?>).

sql.safe_mode boolean

track_errors boolean

Jeśli dyrektywa ta jest włączona, ostatnia informacja o błędzie będzie dostępna jako zmienna globalna $php_errormsg.

track_vars boolean

Jeśli ta dyrektywa jest włączona, zmienne EGCS (Environment, GET, POST, Cookie, Server) będą dostępne w globalnych tablicach asocjacyjnych $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, i $HTTP_SERVER_VARS.

Zauważ, ze od PHP 4.0.3 dyrektywa track_vars jest zawsze włączona.

upload_tmp_dir string

Katalog tymczasowy używany do przechowywania plików podczas obsługiwania uploadu plików. Musi być to katalog z prawem zapisu dla użytkownika, jako który pracuje PHP.

upload_max_filesize integer

Maksymalny rozmiar uploadowanego pliku. Wartość podawana jest w bajtach.

user_dir string

Podstawowa nazwa katalogu używanego jako katalog domowy użytkownika dla plików PHP, na przykład public_html.

warn_plus_overloading boolean

Jeśli dyrektywa ta jest włączona, PHP będzie wyświetlał ostrzeżenie jeśli operator plus (+) został użyty do stringów. Dzięki temu łatwiej jest znaleźć skrypty, które wymagają użycia operatora sklejania stringów (.).

Dyrektywy konfiguracji trybu bezpiecznego

safe_mode boolean

Określa, czy PHP ma pracować w trybie bezpiecznym. Przeczytaj rozdziały Bezpieczeństwo i Safe Mode aby uzyskać więcej informacji.

safe_mode_exec_dir string

Jeśli PHP pracuje w trybie bezpiecznym, funkcje system() i inne wywołujące inne programy, odmówią wykonania programów z katalogów innych niż ten.

Dyrektywy konfiguracji debuggera

debugger.host string

Nazwa lub adres IP hosta używanego przez debugger.

debugger.port string

Numer portu używany przez debugger.

debugger.enabled boolean

Określa, czy debugger jest włączony.

Dyrektywy ładowania rozszerzeń

enable_dl boolean

Ta dyrektywa jest jedynie przydatna przy pracy PHP jako moduł Apache. Możesz włączać i wyłączać możliwość dynamicznego ładowania rozszerzeń PHP przez funkcję dl() zależnie od katalogu lub wirtualnego serwera.

Głównym powodem wyłączania dynamicznego ładowania rozszerzeń jest kwestia bezpieczeństwa. Używając dynamicznych rozszerzeń możliwe jest ominięcie praktycznie wszystkich ograniczeń safe_mode i open_basedir.

Domyślnie zezwalane jest dynamiczne ładowanie, z wyjątkiem pracy w trybie bezpiecznym. W trybie bezpiecznym korzystanie z funkcji dl() jest zawsze zabronione.

extension_dir string

Katalog, w którym PHP powinno szukać dynamicznie dołączanych rozszerzeń.

extension string

Które dynamicznie ładowane rozszerzenia ładować przy starcie PHP.

Dyrektywy konfiguracji MySQL

mysql.allow_persistent boolean

Czy pozwalać na stałe połączenia MySQL ('persistent connections').

mysql.default_host string

Domyślny host serwera, który będzie używany przy łączeniu się z serwerem baz danych jeśli nie zostanie podany żaden inny host.

mysql.default_user string

Domyślna nazwa użytkownika, która będzie używana przy łączeniu się z serwerm baz danych jeśli nie zostanie podana żadna inna nazwa.

mysql.default_password string

Domyślne hasło, które będzie użyte przy łączeniu się z serwerem baz danych jeśli nie zostanie podane żadne inne hasło.

mysql.default_port string

Domyślny numer portu TCP, który będzie użyty przy łączeniu się z serwerm baz danych jeśli nie zostanie podany żaden inny port. Jeśli nie będzie podany port domyślny, będzie on pobrany ze zmiennej środowiskowej MYSQL_TCP_PORT, wpisu mysql-tcp w pliku /etc/services lub stałej czasu kompilacji MYSQL_PORT, w tym właśnie porządku. Pod Win32 użyta będzie tylko stała MYSQL_PORT.

mysql.default_socket string

Domyślna nazwa gniazda, które będzie użyta to łączenia się z lokalnym serwerem baz danych jeśli nie zostanie podana żadna inna nazwa gniazda.

mysql.max_persistent integer

Maksymalna liczba stałych połączeń MySQL na każdy proces.

mysql.max_links integer

Maksymalna liczba połączeń MySQL na proces, włączając w to połączenia stałe.

Dyrektywy konfiguracji mSQL

msql.allow_persistent boolean

Czy pozwalać na stałe połączenia mSQL.

msql.max_persistent integer

Maksymalna liczba trwałych połączeń mSQL na każdy proces.

msql.max_links integer

Maksymalna liczna połączeń mSQL na każdy proces, włączając w to połączenia stałe.

Dyrektywy konfiguracji PostgreSQL

pgsql.allow_persistent boolean

Czy pozwalać na stałe połączenia PostgreSQL.

pgsql.max_persistent integer

Maksymalna liczba stałych połączeń PostgreSQL na każdy proces.

pgsql.max_links integer

Maksymalna liczba połączeń PostgreSQL na każdy proces, włączając w to połąćzenia stałe.

Dyrektywy konfiguracji SESAM

sesam_oml string

Nazwa biblioteki PLAM BS2000 zawierającej ładowalne moduły sterowników SESAM. Wymagane do użycia funkcji SESAM. Biblioteka PLAM BS2000 musi być ustawiona na ACCESS=READ,SHARE=YES, ponieważ musi być dostępna do odczytu dla użytkownika, jako który pracuje Apache.

sesam_configfile string

Nazwa pliku konfiguracyjnego aplikacji SESAM. Wymagane do użyca funkcji SESAM. Plik BS2000 musi być dostępny do odczytu dla użytkownika, jako który pracuje Apache.

Plik konfiguracyjny aplikacji zazwyczaj zawiera konfigurację podobną do tej (zobacz podręcznik do aplikacji SESAM):

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

Nazwa pliku katalogującego wiadomości SESAM. W większości przypadków użycie tej dyrektywy nie jest konieczne. Jedynie jeśli plik miadomości nie jest zainstalowany w tablicy plików wiadomości BS2000 systemu, może on być ustalony przez tą dyrektywę.

Katalog wiadomości musi być ustawiony na ACCESS=READ,SHARE=YES ponieważ musi być on dostępny do odczytu dla użytkownika, jako który pracuje Apache.

Dyrektywy konfiguracji Sybase

sybase.allow_persistent boolean

Czy pozwalać na stałe połączenia Sybase.

sybase.max_persistent integer

Maksymalna liczba stałych połączeń Sybase na każdy proces.

sybase.max_links integer

Maksymalna liczba połączeń Sybase na każdy proces, włączając w to połączenia stałe.

Dyrektywy konfiguracji Sybase-CT

sybct.allow_persistent boolean

Czy pozwalać na stałe połączenia Sybase-CT. Domyślnie włączone.

sybct.max_persistent integer

Maksymalna liczba stałych połączeń Sybase-CT na każdy proces. Domyślą wartością jest -1, co oznacza brak limitu.

sybct.max_links integer

Maksymalna liczba połączeń Sybase-CT na proces, włączając w to połączenia stałe. Domyślna wartość to -1, co oznacza brak limitu.

sybct.min_server_severity integer

Wiadomości serwera z 'serverity' większą lub równą sybct.min_server_severity będą zgłaszane jako ostrzeżenia. Wartość ta może być zmieniona także przez wywołanie sybase_min_server_severity(). Domyślna wartość to 10. The default is 10 which reports errors of information severity or greater.

sybct.min_client_severity integer

Wiadomości biblioteki klienta z 'serverity' większą lub równą sybct.min_client_severity będą zgłaszane jako błędy. Wartość ta może być zmieniona także przez wywołanie sybase_min_client_severity(). Domyślna wartość to 10, co praktycznie wyłącza zgłaszanie błędów.

sybct.login_timeout integer

Maksymalny czas oczekiwania na połączenie zanim zwrócona będzie wartość porażki. Zauważ, że jeśli dojdzie do skończenia czasu max_execution_time w trakcie oczekiwania na połączenie, twój skrypt zostanie zakończony zanim będzie mógł podjąć jakiekolwiek działania zaplanowane na przypadek nieudanego połączenia. Domyślna wartość to jedna minuta.

sybct.timeout integer

Maksymalny czas (w sekundach) oczekiwania na wykonanie select_db lub zapytania po którym zwrócona zostanie wartość oznaczająca porażkę. Zauważ, że jeśli dojdzie do skończenia czasu max_execution_time w trakcie oczekiwania na połączenie, twój skrypt zostanie zakończony zanim będzie mógł podjąć jakiekolwiek działania zaplanowane na przypadek niewykonania polecenia. Domyślnie nie ma żadnych ograniczeń.

sybct.hostname string

Nazwa hosta, z którego twierdzisz że się łączysz, który będzie wyświetlany w sp_who. Domyślną wartością jest pusty ciąg.

Dyrektywy konfiguracji Informix

ifx.allow_persistent boolean

Czy pozwalać na stałe połączenia Informix.

ifx.max_persistent integer

Maksymalna liczba stałych połączeń Informix na każdy proces.

ifx.max_links integer

Maksymalna liczba połączeń Informix na każdy proces, włączając w to połączenia stałe.

ifx.default_host string

Domyślny host do połączenia jeśli nie podano innego w ifx_connect() lub ifx_pconnect().

ifx.default_user string

Domyślny identyfikator użytkownika używany jeśli nie podano innego w ifx_connect() lub ifx_pconnect().

ifx.default_password string

Domyślne hasło używane jeśli nie podano innego w ifx_connect() lub ifx_pconnect().

ifx.blobinfile boolean

Ustaw na TRUE jeśli chcesz zwracać kolumny blob w pliku, lub FALSE jeśli chcesz zwracać je w pamięci. Możesz zmienić wartość tej dyrektywy korzystając z ifx_blobinfile_mode().

ifx.textasvarchar boolean

Ustaw na TRUE jeśli chcesz w zapytaniach zwracać kolumny TEXT jako zwykłe stringi, lub FALSE jeśli chcesz używać parametrów identyfikatorów blob. Możesz zmienić wartość tej dyrektywy korzystając z ifx_textasvarchar().

ifx.byteasvarchar boolean

Ustaw na TRUE jeśli chcesz w zapytaniach zwracać kolumny BYTE jak zwykłe stringi, lub FALSE jeśli chcesz używać parametrów identyfikatorów blob. Możesz zmienić wartość tej dyrektywy korzystając z ifx_textasvarchar().

ifx.charasvarchar boolean

Ustaw na TRUE jeśli chcesz obcinać początkowe spacje z kolumn CHAR przy pobieraniu ich.

ifx.nullformat boolean

Ustaw na TRUE jeśli chcesz zwracać kolumny NULL jako string "NULL", lub na FALSE jeśli chcesz aby były zwracane jako pusty string. Możesz zmienić wartość tej dyrektywy korzystając z ifx_nullformat().

Dyrektywy konfiguracji BC Math

bcmath.scale integer

Liczba dziesiętnych cyfr dla wszystkich funkcji bcmath.

Dyrektywy konfiguracji Możliwości Przeglądarek

browscap string

Nazwa pliku opisującego możliwości przeglądarek. Zobacz także get_browser().

Dyrektywy konfiguracji Zunifikowanego ODBC

uodbc.default_db string

Źródło danych ODBC używane jeśli nie podane zostało inne w odbc_connect() lub odbc_pconnect().

uodbc.default_user string

Nazwa użytkownika używana jeśli inna nie została podana w odbc_connect() lub odbc_pconnect().

uodbc.default_pw string

Hasło używane jeśli inne nie zostało podane w odbc_connect() lub odbc_pconnect().

uodbc.allow_persistent boolean

Czy pozwalać na stałe połączenia ODBC.

uodbc.max_persistent integer

Maksymalna liczba stałych połączeń ODBC na każdy proces.

uodbc.max_links integer

Maksymalna liczba połączeń ODBC na każdy proces, włączając w to połączenia stałe.

Dyrektywy konfiguracji Multi-Byte String (Wielobajtowych Stringów)

mbstring.internal_encoding string

mbstring.internal_encoding definiuje domyślne wewnętrzne kodowanie znaków.

mbstring.http_input string

mbstring.http_input definiuje domyślne kodowanie znaków wejścia HTTP.

mbstring.http_output string

mbstring.http_output definiuje domyślne kodowanie znaków wyjścia HTTP.

mbstring.detect_order string

mbstring.detect_order definiuje domyślną kolejność wykrywania kodowania znaków.

mbstring.substitute_character string

mbstring.substitute_character definiuje znak zastępujące znaki o błędnych kodach.