PHP: Różnice pomiędzy wersjami
m |
|||
Linia 68: | Linia 68: | ||
| 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 83: | Linia 83: | ||
bądź załadować przez <code class="directory">.user.ini</code> | bądź załadować przez <code class="directory">.user.ini</code> | ||
auto_prepend_file = '/ścieżka/do/dl.php' | auto_prepend_file = '/ścieżka/do/dl.php' | ||
− | a plik <code class="directory">dl.php</code> powinien mieć | + | a plik <code class="directory">dl.php</code> powinien mieć zawartość: |
<syntaxhighlight lang="PHP"> | <syntaxhighlight lang="PHP"> | ||
<?php dl('phalcon.so'); ?> | <?php dl('phalcon.so'); ?> | ||
Linia 97: | Linia 97: | ||
# 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>php55 -S 0.0.0.0:'' | + | # Uruchomić serwer na zarezerwowanym porcie <code>php55 -S 0.0.0.0:''ZAREZERWOWANY_PORT''</code> |
#* W tym kroku można również wybrać inną wersję php, na przykład php56. | #* W tym kroku można również wybrać inną wersję php, na przykład php56. | ||
− | #* Aby serwer działał po wylogowaniu się, należy go uruchomić w screenie <code>screen -dm bash -c "php55 -S 0.0.0.0:'' | + | #* Aby serwer działał po wylogowaniu się, należy go uruchomić w screenie <code>screen -dm bash -c "php55 -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. | ||
− | Dostęp do skryptów jest przez adres <nowiki>http://sX.mydevil.net:''ZAREZEROWANY_PORT''</nowiki>. Na przykład na serwerze s4, | + | 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>. |
[[Category:PHP]] | [[Category:PHP]] |
Wersja z 12:49, 18 cze 2016
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 pierw 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 = 256M
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
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.
Istnieje również możliwość wykorzystania .user.ini przy php cli, w tym celu należy wydać polecenie export PHP_INI_SCAN_DIR=/usr/home/login
, gdzie login to nazwa naszego konta, plik .user.ini należy umieścić w takim wypadku w katalogu domowym.
Wersja PHP
Domyślna wersja PHP to 5.6. Wyboru wersji PHP dla strony można dokonać w pliku/usr/home/login/domains/domena/.htaccess
. Należy wtedy dopisać do niego jedną z poniższych linii.
AddType application/x-httpd-php55 .php AddType application/x-httpd-php56 .php AddType application/x-httpd-php70 .php
Ponadto na serwerze dostępne są binarki PHP CLI:
$ php $ php55 $ php56 $ php70
oraz CGI-FCGI:
$ php-cgi $ php55-cgi $ php56-cgi $ php70-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. |
Phalcon
Na serwerach MyDevil dostępny jest wydajny framework Phalcon. Aby załadować moduł należy w skrypcie php dopisaćdl('phalcon.so');
bądź załadować przez .user.ini
auto_prepend_file = '/ścieżka/do/dl.php'
a plik dl.php
powinien mieć zawartość:
<?php dl('phalcon.so'); ?>
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
php55 -S 0.0.0.0:ZAREZERWOWANY_PORT
- W tym kroku można również wybrać inną wersję php, na przykład php56.
- Aby serwer działał po wylogowaniu się, należy go uruchomić w screenie
screen -dm bash -c "php55 -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.