PHP: Różnice pomiędzy wersjami
(→Przykłady) |
|||
(Nie pokazano 44 wersji utworzonych przez 4 użytkowników) | |||
Linia 3: | Linia 3: | ||
===Wstępna konfiguracja domeny=== | ===Wstępna konfiguracja domeny=== | ||
− | Do uruchomienia strony napisanej w ''PHP'' należy | + | 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]], | * Domena jest prawidłowo dodana i skonfigurowana w naszym systemie [[DNS]], | ||
− | * Została dodana [[WWW|Strona WWW]] | + | * Została dodana [[WWW|Strona WWW]] ze wskazaniem typu ''PHP''. |
=== Konfiguracja PHP === | === Konfiguracja PHP === | ||
− | Konfiguracja interpretera PHP znajduje się w pliku <code class="directory">/usr/home/''login''/.user.ini</code>. Istnieje możliwość ustalenia własnego pliku <code class="directory">.user.ini</code>, oddzielnie dla każdego katalogu. | + | Konfiguracja interpretera PHP znajduje się w pliku <code class="directory">/usr/home/''login''/.user.ini</code>. Istnieje możliwość ustalenia własnego pliku <code class="directory">.user.ini</code>, oddzielnie dla każdego katalogu. Można definiować konfigurację widoczną w <code>phpinfo()</code>, tę z [http://php.net/manual/pl/ini.list.php listy dyrektyw] opisaną jako PHP_INI_PERDIR lub PHP_INI_ALL oraz niektóre zmienne dodatkowych modułów. |
==== Przykłady ==== | ==== Przykłady ==== | ||
Linia 18: | Linia 18: | ||
Zwiększenie ilości pamięci dla interpretatora PHP: | Zwiększenie ilości pamięci dla interpretatora PHP: | ||
− | memory_limit = | + | memory_limit = 768M |
+ | Zwiększenie max_execution_time: | ||
+ | max_execution_time=360 | ||
Zwiększenie max_input_vars: | Zwiększenie max_input_vars: | ||
max_input_vars = 6000 | max_input_vars = 6000 | ||
Linia 26: | 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 | ||
+ | |||
+ | ==== Ł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, | ||
+ | sodium (PHP 7.1: libsodium, 7.2, 7.3: sodium), phalcon, grpc. | ||
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 <code class="directory">/usr/home/''login''/domains/''domena''/.user.ini</code> zawartość (ścieżka wskazuje drzewo katalogów): | 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 <code class="directory">/usr/home/''login''/domains/''domena''/.user.ini</code> zawartość (ścieżka wskazuje drzewo katalogów): | ||
open_basedir = "ścieżka:/tmp" | 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 <code>.user.ini</code> z zawartością musi zostać utworzony w katalogu domowym. Po jego utworzeniu należy wydać polecenie: <syntaxhighlight lang="bash">echo 'export PHP_INI_SCAN_DIR=/usr/home/${USER}' >> $HOME/.bash_profile && source $HOME/.bash_profile</syntaxhighlight> | ||
==== Wersja PHP ==== | ==== Wersja PHP ==== | ||
− | + | Domyślną wersją PHP jest 7.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. | |
− | |||
AddType application/x-httpd-php56 .php | 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 | ||
+ | |||
+ | Ponadto na serwerze dostępne są binarki PHP CLI pod poleceniami: | ||
+ | {{szablon:Prompt}}php | ||
+ | {{szablon:Prompt}}php56 | ||
+ | {{szablon:Prompt}}php70 | ||
+ | {{szablon:Prompt}}php71 | ||
+ | {{szablon:Prompt}}php72 | ||
+ | {{szablon:Prompt}}php73 | ||
+ | {{szablon:Prompt}}php74 | ||
+ | |||
+ | 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"> | ||
+ | mkdir ~/bin | ||
+ | ln -s /usr/local/bin/php71 ~/bin/php | ||
+ | echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile | ||
+ | source $HOME/.bash_profile | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | oraz CGI-FCGI: | ||
+ | |||
+ | {{szablon:Prompt}}php-cgi | ||
+ | {{szablon:Prompt}}php56-cgi | ||
+ | {{szablon:Prompt}}php70-cgi | ||
+ | {{szablon:Prompt}}php71-cgi | ||
+ | {{szablon:Prompt}}php72-cgi | ||
+ | {{szablon:Prompt}}php73-cgi | ||
+ | {{szablon:Prompt}}php74-cgi | ||
==== Własne strony błędów ==== | ==== Własne strony błędów ==== | ||
Linia 53: | Linia 96: | ||
| 404 || errors/404.html || plik/katalog nie istnieje. | | 404 || errors/404.html || plik/katalog nie istnieje. | ||
|- | |- | ||
− | | 500 || errors/500.html || błąd serwera ( | + | | 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. | | 502 || errors/502.html || odrzucenie żądania przez backend/fastcgi (php) lub przekroczenie limitu interpretatorów. | ||
Linia 63: | Linia 106: | ||
|} | |} | ||
− | === | + | === Skrypty PHP bez limitów czasowych === |
+ | |||
+ | Skrypty PHP bez limitów czasowych można uruchamiać po [[Logowanie|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: | ||
+ | # [[Rezerwacja portów| zarezerwować]] port TCP. | ||
+ | # Zalogować się przez ssh. | ||
+ | # 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>php56 -S 0.0.0.0:''ZAREZERWOWANY_PORT''</code> | ||
+ | #* 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 "php56 -S 0.0.0.0:''ZAREZERWOWANY_PORT''"</code>. | ||
+ | # Opcjonalnie: dodać [[Strona WWW| stronę www]] typu proxy na zarezerwowany port. | ||
+ | |||
+ | Dostęp do skryptów jest przez adres <nowiki>http://sX.mydevil.net:''ZAREZEROWANY_PORT''</nowiki>. Na przykład na serwerze s4, zarezerwowanym porcie 12345 dostęp do wcześniej wspomnianego skryptu to <nowiki>http://s4.mydevil.net:12345/import_produktow.php</nowiki>. | ||
+ | |||
+ | === Korzystanie z funkcji mail() === | ||
− | + | Przed skorzystaniem z funkcji mail() prosimy zapoznać się z [[Poczta#Uwagi_dotycz.C4.85ce_wysy.C5.82ki_maili_poprzez_strony_i_aplikacje| zasadami]] które jej dotyczą. | |
− | [[Category: | + | [[Category:PHP]] |
Wersja z 11:46, 13 mar 2020
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
Ł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, sodium (PHP 7.1: libsodium, 7.2, 7.3: sodium), phalcon, grpc.
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 7.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
Ponadto na serwerze dostępne są binarki PHP CLI pod poleceniami:
$ php $ php56 $ php70 $ php71 $ php72 $ php73 $ php74
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/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
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
php56 -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 "php56 -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ą.