Przejdź do treści

PHP

PHP to obiektowy język programowania zaprojektowany do generowania stron Internetowych i budowania aplikacji webowych w czasie rzeczywistym.

Wstępna konfiguracja domeny

Do uruchomienia strony napisanej w PHP należy najpierw zadbać o prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że:

  • Domena jest prawidłowo dodana i skonfigurowana w naszym systemie DNS,
  • Została dodana Strona WWW ze wskazaniem typu PHP.

Konfiguracja PHP

Konfiguracja interpretera PHP znajduje się w pliku /usr/home/login/.user.ini. Istnieje możliwość ustalenia własnego pliku .user.ini, oddzielnie dla każdego katalogu. Można definiować konfigurację widoczną w phpinfo(), tę z listy dyrektyw opisaną jako PHP_INI_PERDIR lub PHP_INI_ALL oraz niektóre zmienne dodatkowych modułów.

Przykłady

W poniższym przykładzie zostanie ustawiona zmienna error_reporting dla domeny domena. W tym celu należy zapisać do pliku /usr/home/login/domains/domena/.user.ini zawartość:

error_reporting = E_ALL | E_WARNING

Zwiększenie ilości pamięci dla interpretatora PHP:

memory_limit = 768M

Zwiększenie max_execution_time:

max_execution_time = 360

Zwiększenie max_input_vars:

max_input_vars = 6000

Zapisywanie error logów PHP do pliku:

display_errors = off
log_errors = on
error_log = /usr/home/login/domains/domena/phperror.log

Zmiana domyślnej lokalizacji katalogu plików tymczasowych (/tmp)

upload_tmp_dir = ścieżka/do/katalogu

Ładowanie dodatkowych modułów PHP

Ładowanie dodatkowych modułów PHP jest możliwe poprzez wpis w pliku .user.ini:

anp.extensions = "nazwamodułu"
Moduł musi być uprzednio zainstalowany przez administrację w systemie. Obecnie dostępne moduły: amqp, sodium (PHP 7.1: libsodium, od PHP 7.2 do PHP 8.2: sodium), phalcon, grpc, yaml.

Aby ograniczyć możliwość operacji na plikach przez PHP do określonego drzewa katalogów należy skorzystać z open_basedir. W tym celu należy zapisać do pliku /usr/home/login/domains/domena/.user.ini zawartość (ścieżka wskazuje drzewo katalogów):

open_basedir = "ścieżka:/tmp"

Zaleca się skorzystanie z konfiguracji open_basedir dostępnej bezpośrednio w panelu w Szczegóły przy danej witrynie WWW typu PHP.

Zmiana ustawień PHP dla PHP CLI

W celu zmiany opcji dla PHP CLI plik konfiguracyjny .user.ini z zawartością musi zostać utworzony w katalogu domowym. Po jego utworzeniu należy wydać polecenie:

echo "export PHP_INI_SCAN_DIR=/usr/home/${USER}" >> $HOME/.bash_profile && source $HOME/.bash_profile

Wersja PHP

Domyślną wersją PHP jest 8.1.

Wyboru wersji PHP dla strony WWW można dokonać w utworzonym przez siebie pliku /usr/home/login/domains/domena/.htaccess. Należy wtedy dopisać do niego jedną z poniższych linii:

AddType application/x-httpd-php56 .php
AddType application/x-httpd-php70 .php
AddType application/x-httpd-php71 .php
AddType application/x-httpd-php72 .php
AddType application/x-httpd-php73 .php
AddType application/x-httpd-php74 .php
AddType application/x-httpd-php80 .php
AddType application/x-httpd-php81 .php
AddType application/x-httpd-php82 .php
AddType application/x-httpd-php83 .php

Ponadto na serwerze dostępne są binarki PHP CLI pod poleceniami:

$ php
$ php56
$ php70
$ php71
$ php72
$ php73
$ php74
$ php80
$ php81
$ php82
$ php83

Aby uruchamiać daną wersję PHP CLI bez podawania jej wersji w nazwie binarki należy wydać polecenia (przykład dla wersji 7.1):

mkdir -p ~/bin
ln -s /usr/local/bin/php71 ~/bin/php
echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile
source $HOME/.bash_profile

oraz CGI-FCGI:

$ php-cgi
$ php56-cgi
$ php70-cgi
$ php71-cgi
$ php72-cgi
$ php73-cgi
$ php74-cgi
$ php80-cgi
$ php81-cgi
$ php82-cgi
$ php83-cgi

Własne strony błędów

Użytkownik może z łatwością utworzyć własne strony błędów dla swojej strony. W tym celu należy w głównym katalogu domeny (np. /usr/home/login/domains/domena/public_html/) utworzyć katalog errors i umieścić w nim statyczne strony błędów. Kod PHP nie zostanie wykonany, tylko wyświetlony użytkownikowi. Poniżej prezentujemy listę stron błędów, które można zmieniać:

Kod błędu Plik ze stroną Opis błędu
401 errors/401.html wyświetlany po błędnej autoryzacji.
403 errors/403.html brak dostępu do pliku/katalogu.
404 errors/404.html plik/katalog nie istnieje.
500 errors/500.html błąd serwera (najczęściej błędne wpisy w .htaccess).
502 errors/502.html odrzucenie żądania przez backend/fastcgi (php) lub przekroczenie limitu interpretatorów.
503 errors/503.html przekroczenie limitu interpretatorów.
504 errors/504.html przekroczenie czasu na wykonanie żądania.

Skrypty PHP bez limitów czasowych

Skrypty PHP bez limitów czasowych można uruchamiać po zalogowaniu się przez SSH. Aby uruchomić skrypt należy skorzystać z PHP CLI, na przykład:

php ~/domains/sklep.domena.pl/public_html/import_produktow.php

Drugim sposobem jest uruchomienie wbudowanego serwera webowego w PHP. Aby to zrobić należy:

  1. Zarezerwować port TCP.
  2. Zalogować się przez SSH.
  3. Przejść do katalogu ze skryptami PHP (na przykład public_html wybranej domeny)
    cd ~/domains/domena/public_html
  4. Uruchomić serwer na zarezerwowanym porcie php73 -S 0.0.0.0:ZAREZERWOWANY_PORT
    • W tym kroku można również wybrać inną wersję PHP, na przykład php72.
    • Aby serwer działał po wylogowaniu się, należy go uruchomić na screenie: screen -dm sh -c "php73 -S 0.0.0.0:ZAREZERWOWANY_PORT"
  5. Opcjonalnie: dodać stronę WWW typu PROXY na zarezerwowany port.

Dostęp do skryptów jest możliwy poprzez adres http://sX.small.pl:ZAREZEROWANY_PORT. Na przykład na serwerze s4.small.pl, zarezerwowanym porcie 12345 dostęp do wcześniej wspomnianego skryptu to http://s4.small.pl:12345/import_produktow.php.

Korzystanie z funkcji mail()

Przed skorzystaniem z funkcji mail() prosimy zapoznać się z zasadami, które jej dotyczą.