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"
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:
- Zarezerwować port
TCP
. - Zalogować się przez
SSH
. - Przejść do katalogu ze skryptami PHP (na przykład
public_html
wybranej domeny)
cd ~/domains/domena/public_html
- 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"
- W tym kroku można również wybrać inną wersję PHP, na przykład
- 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ą.