Własny plik php.ini – przykłady

Do sprawdzenia ustawień skorzystamy w pliku phpinfo.php w którym powinien znaleźć się kod:

<?php
phpinfo();
?>

Następnie wywołujemy go za pomocą przeglądarki i wyświetlą nam się wszystkie ustawienia.

Wszystko co jest tutaj opisane wykonujemy w jednym katalogu, najlepiej głównym katalogu domeny.

Zaczynamy od odczytania wartości Server API z pliku phpinfo.php. Następnie kierując się nią wybieramy metody dla Apache, CGI lub FastCGI (jeśli widoczne jest tam CGI/FastCGI to jest to FastCGI)

Aktualny plik php.ini i wszystkie dyrektywy: Najnowszy php.ini ze wszystkimi dyrektywami
Spis dyrektyw razem z ich typem: Lista dyrektyw php.ini

Informacja: Wszelkie ustawienia dziedziczą podkatalogi

PHP uruchamiane jako moduł Apache

php.ini w głównym katalogu

Stwórz po prostu plik php.ini w głównym katalogu w którym znajduje się phpinfo.php a do pliku php.ini wklej:

memory_limit =13M

Następnie wywołaj plik phpinfo.php lub odśwież stronę i sprawdź czy wartość memory_limit wynosi 13, jeśli nie lub wyskoczył ci błąd 500 usuń plik php.ini
Jeśli wyświetliła się wartość 13 to możesz zmieniać dowolne dyrektywy za pomocą tego pliku.

Za pomocą pliku .htaccess

To zadziała jeśli php jest uruchomiony jako moduł Apache. Otwórz plik .htaccess, jeśli nie istnieje to go stwórz, w głównym katalogu tam gdzie phpinfo.php i dodaj w nim linijkę:

php_value memory_limit 13M

Następnie wywołaj plik phpinfo.php lub odśwież stronę i sprawdź czy wartość memory_limit wynosi 13, jeśli nie lub wyskoczył ci błąd 500 usuń plik php.ini
Jeśli wyświetliła się wartość 13 to możesz zmieniać dowolne dyrektywy za pomocą tych wpisów.
Dla wartości logicznych służy:

php_flag name on|off

np.:

php_flag magic_quotes_runtime off

PHP uruchamiane jako CGI lub FastCGI

Często php jest uruchamiane jako FastCGI lub CGI dla obydwóch typów metoda wczytania własnego php.ini jest taka sama, więc zaczynamy od utworzenia pliku o nazwie np. file.php do którego wklejamy taki kod:

<?php
echo dirname(__FILE__).'/php.ini';
?>

Wgrywamy go do głównego katalogu i wywołujemy, następnie wyświetli nam się ścieżka podobna do:

/home/tosiek/domains/tosiek.pl/public_html/php.ini

Kopiujemy ją sobie. Potem odszukujemy skryptu FastCGI lub CGI za którego pomocą jest uruchamiany interpreter PHP, najczęściej znajduje się w katalogu /cgi-bin/ no pod nazwą php-fcgi lub php-cgi. Ściągamy ten plik na dysk i otwieramy dowolnym edytorem, treść będzie podobna do tej:

#!/bin/sh
export PHP_FCGI_CHILDREN=3
exec /user/htdocs/cgi-bin/php5.cgi

Pierwsza możliwość – dodanie parametru -c

Modyfikujemy linijkę exec /user/htdocs/cgi-bin/php5.cgi dodając parametr -c ze ścieżką do pliku php.ini (odczytaną z pliku file.php):

#!/bin/sh
export PHP_FCGI_CHILDREN=3
exec /user/htdocs/cgi-bin/php5.cgi -c /home/tosiek/domains/tosiek.pl/public_html/php.ini

Zapisujemy ten plik i wgrywamy na serwer.

Druga możliwość – ustawienie zmiennej środowiskowej PHPRC

Przed linijką exec /user/htdocs/cgi-bin/php5.cgi dodajemy linijkę:

export PHPRC=/home/tosiek/domains/tosiek.pl/public_html/php.ini

oczywiście wartość PHPRC zastępujemy wartością odczytaną z pliku file.php.
Gotowy plik powinien podobnie wyglądać:

#!/bin/sh
export PHP_FCGI_CHILDREN=3
export PHPRC=/home/tosiek/domains/tosiek.pl/public_html/php.ini
exec /user/htdocs/cgi-bin/php5.cgi

Zapisujemy ten plik i wgrywamy na serwer.

Niezależnie od metody w folderze w którym utworzyliśmy plik file.php tworzymy plik php.ini do pliku php.ini wklej:

memory_limit =13M

Następnie wywołaj plik phpinfo.php lub odśwież stronę i sprawdź czy wartość memory_limit wynosi 13, jeśli nie lub wyskoczył ci błąd 500 usuń plik php.ini
Jeśli wyświetliła się wartość 13 to możesz zmieniać dowolne dyrektywy za pomocą tego pliku.

Wartość dla Loaded Configuration File powinna być taka jak odczytana z pliku file.php