W tym artykule opisujemy sposób wymuszenia wybranej wersji PHP w określonej lokalizacji. Może się to przydać w sytuacji, gdy pojedyncza witryna, wymaga innej wersji PHP niż ta, która uruchomiona jest globalnie na koncie hostingowym.
SPIS TREŚCI
- Jak zmienić wersję PHP na hostingu?
- Jak ustawić daną wersję PHP?
- Jak zmienić wersję PHP za pomocą .htaccess (IdeaWebServer)?
Jak zmienić wersję PHP na hostingu?
- Zaloguj się do Panelu klienta AZ.pl;
- Kliknij tutaj, aby sprawdzić, jak zalogować się do Panelu klienta AZ.pl.
- Wybierz w menu z lewej strony zakładkę Usługi WWW;
- Z zakładki Opcje wybierz Zarządzaj (lub kliknij wprost na nazwę swojego hostingu);
- Sprawdź, na jaki podkatalog skierowana jest domena – w poniższym przykładzie jest to /public_html/domena-az.pl;
- Uruchom WebFTP lub wybranego klienta FTP i przejdź w nim do lokalizacji, w której chcesz wymusić inną wersję PHP;
- Następnie utwórz lub – jeśli istnieje – edytuj plik .htaccess.
UWAGA! W przypadku serwera opartego o środowisko IdeaWebServer, przejdź instrukcji znajdującej się w dalszej części artykułu.
Dodaj do niego wpis:<FilesMatch "\.php$"> SetEnv CGI_HANDLER phpXX </FilesMatch>
XX to wybrana wersja PHP – na przykład wpis poniżej uruchomi PHP w wersji 8.3:
<FilesMatch "\.php$"> SetEnv CGI_HANDLER php83 </FilesMatch>
Możesz uruchomić tylko te wersje PHP, które są dostępne na Twojej usłudze hostingowej. - Przygotowany w ten sposób plik zapisz na swoim koncie FTP.
Jak zmienić PHP tylko dla wybranych rozszerzeń oraz katalogu?
Przez .htaccess można zmienić wersję PHP także dla wybranych rozszerzeń oraz katalogu. Przykładowo, jeśli chcesz włączyć interpreter PHP 8.4 dla plików z rozszerzeniem .htm, w wybranym katalogu należy umieścić plik .htaccess, w którym znajdzie się dyrektywa:
<FilesMatch "\.htm$"> SetEnv CGI_HANDLER php84 SetHandler proxy:unix:/usr/run/uwsgi/fastrouter.sock|uwsgi://php82 </FilesMatch>
Chcąc włączyć daną wersję PHP dla plików z innych rozszerzeniem, wstaw odpowiednie rozszerzenie w miejsce „\.htm$” i pożądaną wersję PHP w miejsce „php84”.
Jak ustawić daną wersję PHP?
W podanym wyżej przykładzie podano dyrektywę do ustawienia PHP w wersji 8.4. Jeśli chcesz ustawić inną wersję PHP niż 8.4, w miejsce php84 w kodzie wstaw:
- php56 – jeśli chcesz użyć wersji PHP 5.6 (wersja nie jest wspierana przez wydawcę),
- php7 – jeśli chcesz użyć wersji PHP 7 (wersja nie jest wspierana przez wydawcę),
- php71 – jeśli chcesz użyć wersji PHP 7.1 (wersja nie jest wspierana przez wydawcę),
- php72 – jeśli chcesz użyć wersji PHP 7.2 (wersja nie jest wspierana przez wydawcę),
- php73 – jeśli chcesz użyć wersji PHP 7.3 (wersja nie jest wspierana przez wydawcę),
- php74 – jeśli chcesz użyć wersji PHP 7.4 (wersja nie jest wspierana przez wydawcę),
- php8 – jeśli chcesz użyć wersji PHP 8.0,
- php81 – jeśli chcesz użyć wersji PHP 8.1,
- php82 – jeśli chcesz użyć wersji PHP 8.2,
- php83 – jeśli chcesz użyć wersji PHP 8.3.
Jak zmienić wersję PHP za pomocą .htaccess (IdeaWebServer)?
Polecenie „:Location” pozwala zdefiniować rodzaj interpretera dla stron o wskazanym rozszerzeniu i lokalizacji. By to zrobić, wykorzystuje się poniższe polecenie:
:Location maska Use [php71|perl|static] :Location
Maska – w tym miejscu należy określić nazwę, rozszerzenie i lokalizację plików.
Use – w tym miejscu należy określić, z jakiej wersji PHP mają korzystać pliki podane w wierszu wyżej. Np. jeśli chcesz zastosować wersję PHP 8.0, wpisz:
Use php80
a jeśli chcesz zastosować wersję PHP 7.2, wpisz:
Use php72
Analogicznie postępuj dla innych wersji PHP.
Utworzony plik należy umieścić w katalogu głównym lub katalogu, dla którego chcesz zmienić wersję PHP.
Przykłady
Przykład 1: Ustawienie wersji PHP 8.0 dla wszystkich plików z rozszerzeniem PHP.
:Location /*.php Use php80 :Location
Przykład 2: Ustawienie wersji PHP 7.4 dla wszystkich plików z rozszerzeniem html, znajdującym się w katalogu /blog/.
:Location /blog/*.html Use php74 :Location
Przykład 3: Ustawienie wersji PHP 8.0 dla wszystkich plików z rozszerzeniami php, php4 i php5.
:Location /*.(php|php4|php5) Use php80 :Location
Przykład 4: Ustawienie traktowania wszystkich plików z rozszerzeniami php i perl jako zwykłe strony HTML. Parametr static odpowiada zwykłej stronie HTML.
:Location /*.(php|perl) Use static :Location