PHP
PHP to obiektowy język programowania zaprojektowany do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistym.
Spis treści
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 folderu plików tymczasowych /tmp
upload_tmp_dir = ścieżka/do/katalogu
Wyłączenie buforowania wyjścia dla plików (X-Accel-Buffering)
output_buffering=off
Ładowanie dodatkowych modułów PHP
Możliwość ładowania dodatkowych modułów PHP jest możliwe poprzez wpis w .user.ini:
anp.extensions="nazwamodułu"
Moduł musi być uprzednio zainstalowany przez nas w systemie. Obecnie dostępne moduły: amqp (od PHP 8.1), sodium (PHP 7.1: libsodium, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2: sodium), phalcon (PHP do wersji 7.4 włącznie), grpc, yaml (od PHP 7.1 do PHP 8.2), sysvsem (od PHP 7.3 do PHP 8.2), swoole (od PHP 8.0 do PHP 8.2).
Aby rozszerzyć możliwość operacji przez stronę typu PHP ponad domyślne katalogi (/usr/home/login/domains/domena/public_html:/tmp:/usr/share:/usr/local/share:/dev:/tmp:/usr/share:/usr/local/share:/dev) należy skorzystać 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 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 AddType application/x-httpd-php84 .php
Ponadto na serwerze dostępne są binarki PHP CLI pod poleceniami:
$ php $ php56 $ php70 $ php71 $ php72 $ php73 $ php74 $ php80 $ php81 $ php82 $ php83 $ php84
Aby uruchamiać daną wersję PHP CLI bez podawania jej wersji w nazwie binarki należy wydać polecenia (przykład dla wersji 7.1):
mkdir ~/bin ln -s /usr/local/bin/php74 ~/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
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 umieszczać 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 użytkownik może 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 folderu ze skryptami php (na przykład public_html wybranej domeny)
cd domains/domena/public_html
. - Uruchomić serwer na zarezerwowanym porcie
php74 -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ć w screenie
screen -dm bash -c "php74 -S 0.0.0.0:ZAREZERWOWANY_PORT"
.
- Opcjonalnie: dodać stronę www typu proxy na zarezerwowany port.
Dostęp do skryptów jest przez adres http://sX.mydevil.net:''ZAREZEROWANY_PORT''. Na przykład na serwerze s4, zarezerwowanym porcie 12345 dostęp do wcześniej wspomnianego skryptu to http://s4.mydevil.net:12345/import_produktow.php.
Korzystanie z funkcji mail()
Przed skorzystaniem z funkcji mail() prosimy zapoznać się z zasadami które jej dotyczą.