PHP: Różnice pomiędzy wersjami

(Pożegnanie php 5.4)
(Przykłady)
Linia 31: Linia 31:
 
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.
  
 
Istnieje również możliwość wykorzystania .user.ini przy php cli, w tym celu należy wydać polecenie <code>export PHPRC=/usr/home/''login/.user.ini''</code>, gdzie login to nazwa naszego konta, plik .user.ini należy umieścić w takim wypadku w katalogu domowym.
 
Istnieje również możliwość wykorzystania .user.ini przy php cli, w tym celu należy wydać polecenie <code>export PHPRC=/usr/home/''login/.user.ini''</code>, gdzie login to nazwa naszego konta, plik .user.ini należy umieścić w takim wypadku w katalogu domowym.

Wersja z 15:01, 31 sty 2016

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 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 z 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 PHPRC=/usr/home/login/.user.ini, 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 (tymczasowo na s0-s7 5.4). 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

Ponadto na serwerze dostępne są binarki PHP CLI:

php
php55
php56

oraz CGI-FCGI:

php-cgi
php55-cgi
php56-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ęsciej 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ć zawiartość:

<?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:

  1. zarezerwować port TCP.
  2. Zalogować się przez ssh.
  3. Przejść do folderu ze skryptami php (na przykład public_html wybranej domeny) cd domains/domena/public_html.
  4. Uruchomić serwer na zarezerwowanym porcie php55 -S 0.0.0.0:ZAREZEROWANY_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:ZAREZEROWANY_PORT".
  5. 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, zarezerowanym porcie 12345 dostęp do wcześniej wspomnianego skryptu to http://s4.mydevil.net:12345/import_produktow.php.