Plik php.ini - podstawowe funkcje

Czym jest plik php.ini?

To plik konfiguracyjny, który pozwala nam zdefiniować ustawienia PHP na serwerze lub też w danym katalogu, na który kieruje domena.

Popularne parametry w skrócie

  • upload_max_filesize – Maksymalna wielkość uploadowanego pliku, 64 mb
  • post_max_size – Maksymalna wielkość danych wysyłanych metodą POST, na serwerze współdzielonym jest to 64 mb
  • max_execution_time – Ten parametr ogranicza czas wykonywania skryptu. Standardowo ustawiony jest na 30s, jego maksymalna wartość to 180 s. Dobrze jednak jest ten czas wydłużyć – przydaje się to w skryptach kontaktujących się z innymi serwerami (np. rozsyłanie e-maili) lub innych skryptach administracyjnych.
  • max_input_vars jest elementem specyfikacji PHP oraz definiuje limit obsługiwanej w jednym zapytaniu liczby zmiennych przesyłanych do serwera
  • ioncube loader – ionCube jest szeroko stosowanym darmowym rozszerzeniem PHP do obsługi kodu PHP, zabezpieczenia witryny i blokowania złośliwego oprogramowania.

Zapis błędów – plik errors.log

W przypadku, kiedy skrypty PHP wykonują się nieprawidłowo, istnieje możliwość zapisu konkretnych błędów.
W celu utworzenia pliku, który będzie logował odpowiednie komunikaty, należy
w pliku php.ini (który znajduje się w katalogu strony www), dodać następujący wpis:

error_reporting = E_ALL & ~E_NOTICE
error_log = /errors.log
log_errors = On

Plik errors.log powinien być zapisany w katalogu, w którym znajduje się
strona www oraz mieć ustawione podstawowe prawa zapisu

Aby zweryfikować błędy PHP, wystarczy pobrać przez klienta ftp plik errors.log.

Output Buffering

Czyli inaczej mechanizm buforowania danych wyjściowych.
Standardowo, przy wykonywaniu skryptu wszystkie dane wyjściowe są wysyłane od razu do przeglądarki.

Przykładowo, jeżeli skrypcie umieścimy np. echo "hello world"; to wartość w funkcji echo() zostanie od razu wysłany do użytkownika.
Output Buffering umożliwia przechowywanie niektórych danych przed ich wysłaniem do przeglądarki, do momentu, w którym tego nie wymusimy.

Opcję Output Buffering rozpoczynamy funkcją ob_start() oraz kończymy funkcją
ob_end_flush()

w przykładowym skrypcie:

<?php
echo "przyklad1";
setcookie("cookies"); // błędnie!
echo "przyklad2";

w odpowiedzi konstrukcja skryptu wyświetli komunikat:
"Warning: Cannot add header information - headers already sent."


Komunikat wynika z faktu, że jeśli do przeglądarki zostały wysyłane jakiekolwiek dane to nie jest możliwe ustawienie cookies lub wysłanie nagłówka HTTP.

Rozwiązanie, zastosowanie opcji Output Buffering:

<?php
ob_start();
echo "trzy";
setcookie("cztery");
echo "pięć";
ob_end_flush();

w efekcie komunikat „Warning: Cannot add header information – headers already sent” nie będzie już widoczny, ponieważ włączyliśmy Output Buffering. Bazując na powyższym przykładzie, spójrzmy:

  • kiedy program dochodzi do linii 3 to echo „trzy”; się nie wykona,aż do momentu
    wystąpienia funkcji ob_end_flush().
  • Później następuje linia 4 czyli setcookie("cztery"); – cookies
    Output Buffering wstrzymuje wszystkie dane prócz nagłówków HTTP (cookies jest takim nagłówkiem) więc cookie zostaje wysłane do użytkownika.
  • W 5 linii znowu mamy funkcję echo – te dane również zostają wstrzymane.
  • Jak widać w kolejnej linii kończymy buforowanie ob_end_flush()
  • Wszystkie informacje do tej chwili wstrzymywane zostają wysłane(bez zmiany kolejności)

Display Errors

Ta funkcja wymusza w przeglądarce wyświetlanie błędów PHP dla strony.
Jest możliwość jej aktywacji z poziomu panelu administracyjnego w zakładce serwer www/ przycisk PHP przy wybranym wskazaniu www) lub z poziomu serwera www.

W aktualnym pliku php.ini (zobacz jak wygenerować aktualny plik php.ini) wystarczy dodać wpis:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Dodatkowe funkcje:

  • ini_set: Funkcja ini_set spróbuje zastąpić konfigurację znalezioną w pliku ini PHP.
  • display_errors: Jest to dyrektywa, która określa, czy błąd zostanie wyświetlony użytkownikowi, czy pozostanie ukryty.
  • display_startup_errors: Jest to dyrektywa służąca do znajdowania błędów podczas sekwencji uruchamiania PHP.
  • Lista wszystkich dyrektyw, które można zastąpić funkcją ini_set, znajduje się w oficjalnej dokumentacji.

allow_url_fopen

Dyrektywa allow_url_fopen to dostęp do obiektów URL jak do plików. Jeżeli ta funkcja jest aktywna możesz pisać skrypty otwierające zdalne pliki tak, jakby były plikami lokalnymi.

Ta funkcja będzie przydatna podczas np. instalacji oprogramowania CMS takich jak WordPress:

Będzie również przydatna np. do użycia funkcji file_get_contents, której efektem jest pobranie zawartości strony internetowej.

Aby włączyć opcję allow_url_fopen, w pliku php.ini wystarczy dodać wpis:

allow_url_fopen = on
Wyłączenie wykonujemy analogicznie:
allow_url_fopen = off

Allow Url Include

Włączenie tej funkcji spowoduje aktywację od strony PHP zdalnego pliku bezpośrednio do skryptu wykonawczego. Dzięki temu będzie możliwość używania adresu URL jako ciągu wewnątrz poleceń.

W celu włączenia tej opcji, w pliku php.ini wystarczy dodać wpis:

allow_url_include = On

Wyłączenie wykonujemy analogicznie:

allow_url_include = Off

Czy artykuł był pomocny?

Nie znalazłeś tego czego szukałeś? Napisz!

Infolinia ogólna:
(22) 295 08 88

H88 S.A.
Franklina Roosevelta 22
60-829 Poznań

Spółka wpisana do Krajowego Rejestru Sądowego przez Sąd Rejonowy Poznań – Nowe Miasto i Wilda w Poznaniu, Wydział VIII Gospodarczy Krajowego Rejestru Sądowego pod nr KRS 0000612359, REGON 364261632, NIP 7822622168, kapitał zakładowy 215 228,00 zł w pełni wpłacony.