PHP: Różnice pomiędzy wersjami
(Nie pokazano 19 wersji utworzonych przez 3 użytkowników) | |||
Linia 28: | Linia 28: | ||
log_errors = on | log_errors = on | ||
error_log = /usr/home/''login''/domains/''domena''/phperror.log | 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 | ||
+ | [https://www.php.net/manual/en/outcontrol.configuration.php#ini.output-buffering Wyłączenie buforowania wyjścia dla plików ] (X-Accel-Buffering) | ||
+ | output_buffering=off | ||
==== Ładowanie dodatkowych modułów PHP ==== | ==== Ładowanie dodatkowych modułów PHP ==== | ||
Możliwość ładowania dodatkowych modułów PHP jest możliwe poprzez wpis w .user.ini: | Możliwość ładowania dodatkowych modułów PHP jest możliwe poprzez wpis w .user.ini: | ||
anp.extensions="nazwamodułu" | anp.extensions="nazwamodułu" | ||
− | Moduł musi być uprzednio zainstalowany przez nas w systemie. Obecnie dostępne moduły: amqp, | + | 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: sodium), phalcon, grpc. | + | 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 | + | 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 ==== | ==== Zmiana ustawień PHP dla PHP CLI ==== | ||
Linia 45: | Linia 47: | ||
==== Wersja PHP ==== | ==== Wersja PHP ==== | ||
− | Domyślną wersją PHP jest | + | Domyślną wersją PHP jest 8.1. |
Wyboru wersji PHP dla strony można dokonać w utworzonym przez siebie pliku <code class="directory">/usr/home/''login''/domains/''domena''/.htaccess</code>. Należy wtedy dopisać do niego jedną z poniższych linii. | Wyboru wersji PHP dla strony można dokonać w utworzonym przez siebie pliku <code class="directory">/usr/home/''login''/domains/''domena''/.htaccess</code>. Należy wtedy dopisać do niego jedną z poniższych linii. | ||
Linia 54: | Linia 56: | ||
AddType application/x-httpd-php73 .php | AddType application/x-httpd-php73 .php | ||
AddType application/x-httpd-php74 .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: | Ponadto na serwerze dostępne są binarki PHP CLI pod poleceniami: | ||
Linia 63: | Linia 69: | ||
{{szablon:Prompt}}php73 | {{szablon:Prompt}}php73 | ||
{{szablon:Prompt}}php74 | {{szablon:Prompt}}php74 | ||
+ | {{szablon:Prompt}}php80 | ||
+ | {{szablon:Prompt}}php81 | ||
+ | {{szablon:Prompt}}php82 | ||
+ | {{szablon:Prompt}}php83 | ||
Aby uruchamiać daną wersję PHP CLI bez podawania jej wersji w nazwie binarki należy wydać polecenia (przykład dla wersji 7.1): | Aby uruchamiać daną wersję PHP CLI bez podawania jej wersji w nazwie binarki należy wydać polecenia (przykład dla wersji 7.1): | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
mkdir ~/bin | mkdir ~/bin | ||
− | ln -s /usr/local/bin/ | + | ln -s /usr/local/bin/php74 ~/bin/php |
echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile | echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile | ||
source $HOME/.bash_profile | source $HOME/.bash_profile | ||
Linia 82: | Linia 92: | ||
{{szablon:Prompt}}php73-cgi | {{szablon:Prompt}}php73-cgi | ||
{{szablon:Prompt}}php74-cgi | {{szablon:Prompt}}php74-cgi | ||
+ | {{szablon:Prompt}}php80-cgi | ||
+ | {{szablon:Prompt}}php81-cgi | ||
+ | {{szablon:Prompt}}php82-cgi | ||
==== Własne strony błędów ==== | ==== Własne strony błędów ==== | ||
Linia 115: | Linia 128: | ||
# Zalogować się przez ssh. | # Zalogować się przez ssh. | ||
# Przejść do folderu ze skryptami php (na przykład public_html wybranej domeny) <code>cd domains/''domena''/public_html</code>. | # Przejść do folderu ze skryptami php (na przykład public_html wybranej domeny) <code>cd domains/''domena''/public_html</code>. | ||
− | # Uruchomić serwer na zarezerwowanym porcie <code> | + | # Uruchomić serwer na zarezerwowanym porcie <code>php74 -S 0.0.0.0:''ZAREZERWOWANY_PORT''</code> |
#* W tym kroku można również wybrać inną wersję php, na przykład php72. | #* 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 <code>screen -dm bash -c " | + | #* Aby serwer działał po wylogowaniu się, należy go uruchomić w screenie <code>screen -dm bash -c "php74 -S 0.0.0.0:''ZAREZERWOWANY_PORT''"</code>. |
# Opcjonalnie: dodać [[Strona WWW| stronę www]] typu proxy na zarezerwowany port. | # Opcjonalnie: dodać [[Strona WWW| stronę www]] typu proxy na zarezerwowany port. | ||
Aktualna wersja na dzień 09:02, 29 lip 2024
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
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 ~/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ą.