Jak zmienić parametry PHP?

Artykuł dla panelu:
DirectAdmindirect_Admin
ServerPanelserver_Panel
WebAsWebAs

Aby zmienić parametry PHP skorzystaj z jednej z dwóch dostępnych opcji:

Opcja 1 – Edycja z poziomu panelu administracyjnego direct_Admin

1. Zaloguj się do panelu administracyjnego
2. Wybierz domenę, dla której chcesz zmienić parametry
3. Kliknij w „Wersja PHP dla domen” w dziale „Serwer WWW i domeny”

4. Sprawdź, jaka wersja PHP przypisana jest dla domeny, dla której wykonana będzie zmiana parametrów.
5. Powróć do działu „Pozostałe ustawienia” dla tej domeny i wybierz „PHP – ustawienia globalne”

6. Wybierz „Opcje” i sprawdź, jaką masz ustawioną wersję PHP – ustaw ją na taką samą, jak dla domeny z kroku 4.

7. Wykonaj zmianę odpowiednich parametrów z dostępnej listy :

Opcja 2 – Edycja z poziomu pliku .htaccess

 

1. Zaloguj się do panelu administracyjnego hostingu
2. Wybierz domenę, a następnie w dziale „Serwer WWW i domeny” wybierz „Przypisz katalog domeny”. Sprawdź, z jakiego katalogu odpowiada Twoja domena.
3. Wybierz opcję „Menadżer plików” w górnym menu
4. W przypadku, gdy dla Twojej domeny ustawiona jest domyślna ścieżka /home/nazwaserwera/domains/nazwadomeny.pl/public_html przejdź w Menadżerze plików do katalogu domains, następnie katalog z nazwą domeny, w której chcesz zmienić parametry PHP i public_html. W innym wypadku podążaj zgodnie ze strukturą katalogów ustawioną dla Twojej domeny w kroku 2.
5. Wybierz opcję edycji pliku .htaccess w kolumnie „Czynność”:lub jeśli go nie ma: „Utwórz nowy plik” o nazwie „.htaccess”
6. W opcji edycji pliku dodaj do istniejących wpisów linię odpowiadającą edycji parametru i kliknij „Zapisz”. Przykładowe wpisy wyglądają następująco:
php_value max_execution_time 450
php_value memory_limit 512M
php_value upload_max_filesize 512M
W ten sposób na usłudze hostingowej zmienisz również wartość parametru max_input_vars
php_value max_input_vars 10000

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.

W celu modyfikacji parametrów PHP zaloguj się do server_Panel 

  • przejdź do działu serwer www >> lista adresów www i wybierz przycisk dla odpowiedniej strony
  • następnie podaj i zaznacz w formularzu opcje niezbędne do funkcjonowania Twojej strony

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 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

  1. Zaloguj się do Panelu Klienta.
  2. Po lewej stronie rozwiń z menu „Twoje usługi”.
  3. Wybierz zakładkę Hosting.
  4. Kliknij w przycisk „Zaloguj do WebAs”, po prawej stronie na liście, przy wybranej usłudze a zostaniesz automatycznie przekierowany do swojego panelu zarządzania serwerem.
  5. Po zalogowaniu przejdź do zakładki Usługi > Domeny i kliknij na daną domenę.
  6. Następnie przejdź do sekcji PHP, w której będziesz mógł włączyć lub wyłączyć konkretne elementy.

  7. Po wykonaniu zmian kliknij ZAPISZ FORMULARZ.

Innym sposobem dokonania właściwych ustawień jest utworzenie pliku .htaccess w katalogu domeny, w którym możesz umieścić wybraną regułkę w zależności od pożądanych ustawień np.:

php_value register_globals off
php_value short_open_tag off
php_value allow_call_time_pass_reference 0

Możesz także dodać zestaw reguł, dzięki którym potencjalne błędy PHP będą od razu widoczne na stronie:

#Error reporting PHP
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_value error_reporting -1
#End error reporting PHP

jak-zmienic-parametry-php
>
Krzysztof Przybyła