Tartalom
- oldal: A sury.org csomagtár beüzemelése és a különböző PHP verziók telepítése
- oldal: Különböző PHP-FPM verziók kombinált használata egy szerveren
Az 1. oldal tartalma
Bevezető
A Debian 9 (Stretch) rendszer hivatalos csomagtárában a PHP 7.0.x verziója érhető el, ami felett már kicsit eljárt az idő, valamint frissítéseket sem fog már kapni. Ezért szükségünk lehet az újabb változatokra, ha éles weboldalakat futtatunk, de akár tesztkörnyezetünket is bővíthetjük. Korábban már foglalkoztunk a PHP forráskódjából történő lefordításával Debian 8-ra és Debian 9-re is, most pedig a deb.sury.org külső csomagtárának igénybevételével fogunk kényelmesen feltelepíteni több PHP verziót is, amik a PHP-FPM szerver API-val működtetve egymás mellett is használhatók Debian 9 (Stretch), Debian 8 (Jessie) vagy akár a Debian 10 (Buster) rendszereken is.
A deb.sury.org csomagtára nem hivatalos Debian csomagtár, viszont fenntartója (Ondřej Surý) már a PHP 5 óta készít PHP csomagokat a Debian hivatalos csomagtárába is, így teljes biztonsággal használhatjuk Debian vagy Ubuntu alapú szerverünkön az ő általa készített frissebb PHP verziókat és egyéb kiegészítőket tartalmazó csomagokat. A repó használatának további előnye, hogy időről időre kerülnek fel az újabb csomagok, amiket a rendszerünk APT csomagkezelőjével könnyen frissíthetünk.
Alapfeltételek
Ennek a receptnek az elkészítéséhez szükség van minimum egy Apache webkiszolgálóra, aminek segítségével lekérhetjük a szerverről a php fájlok kimeneteit (A PHP-t természetesen ebben az útmutatóban fogjuk telepíteni).
Ha egy minimális szerverrel indulunk, mint például az alábbiak valamelyike:
- Debian 8 (Jessie) minimális szerver
- Debian 9 (Stretch) minimális szerver
- Debian 10 (Buster) minimális szerver
akkor telepítsük az Apache-ot (root-ként) az alábbi parancs segítségével:
apt-get -y install apache2
Vagy pedig kezdhetjük valamelyik LAMP rendszerrel is, amik már tartalmazzák az Apache mellett a MySQL/MariaDB adatbázis szervert és az alap PHP-t is:
Ahogy a leírás címe is utal rá, ezt a feladatot a Debian 9 (Stretch) LAMP szerveren fogom elvégezni, így később még lehetőségünk lesz több mindent építeni erre a szerverre.
A deb.sury.org csomagtár használatba vétele
Elsőként telepítsünk néhány szükséges csomagot:
apt-get install -y apt-transport-https ca-certificates
Az apt-transport-https csomag lehetővé teszi, hogy az APT forráslistánkban használhassunk HTTPS elérhetőségű csomagtárakat is. A ca-certificates csomag pedig tartalmazza a megbízható tanúsítványokat kiállító hatóságok listáját, hogy az SSL alapú alkalmazások ellenőrizni tudják az SSL kapcsolatok hitelességét.
Ha ezzel megvagyunk, lépjünk be a csomagtárak GPG kulcsait tároló könyvtárba:
cd /etc/apt/trusted.gpg.d/
Majd töltsük le a sury.org GPG kulcsát ebbe a könyvtárba valamilyen néven elnevezve (-O kapcsolóval), hogy később is tudjuk, hogy kinek a GPG kulcsa ez:
wget https://packages.sury.org/php/apt.gpg -O sury-org-php.gpg
Ezután nyissuk meg az APT forrásfájlunkat szerkesztésre:
nano /etc/apt/sources.list
Majd adjuk hozzá a Debian főverziónknak megfelelő sort:
deb https://packages.sury.org/php/ <Debian kódnevünk> main
Ahol a Debian kódnevünket helyettesítsük be az alábbiak szerint (kis kezdőbetűkkel):
- Debian 8 esetén: "jessie"
- Debian 9 esetén: "stretch"
- Debian 10 esetén: "buster"
- Debian 11 esetén: "bullseye"
(Ügyeljünk, hogy a kódnév előtt és után szóközök vannak.)
Mentsük le a fájlt, majd frissítsük a csomagtárainkat:
apt-get update
apt-get -y upgrade
A frissítés elején kiírja, hogy néhány csomag vissza lesz tartva. Nálam például:
Az alábbi csomagok vissza lesznek tartva: libapache2-mod-php7.0 libxml2 linux-image-amd64 php-bz2 php-mbstring php-mysql php-xml php7.0-bz2 php7.0-cli php7.0-common php7.0-curl php7.0-gd php7.0-imap php7.0-intl php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-pspell php7.0-readline php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xml php7.0-xmlrpc php7.0-zip
Amennyiben mindenképpen frissíteni szeretnénk ezeket a visszatartott csomagokat, az alábbi linken olvashatunk ennek a kivitelezéséről:
Hogyan frissíthetjük a visszatartott csomagjainkat az APT csomagkezelő segítségével
Mivel a célunk, hogy a PHP7.0-nál újabb verzió ágakat tegyünk fel, így a 7.0-val most nem foglalkozunk, hanem elkezdjük az újabb PHP verziók telepítését.
PHP verziók telepítése
A sury.org csomagtárból többféle PHP verziót telepíthetünk, jelenleg a következőket: 5.6, 7.0, 7.1, 7.2, 7.3 és 7.4. Ezek közül tegyük fel azokat, amelyekre szükségünk van, de akár mindet feltehetjük.
Alapcsomagok
A különböző PHP változatok telepítése előtt még célszerű feltennünk néhány alapcsomagot, amik mindegyik PHP verzió számára biztosítják a szükséges kiegészítő szolgáltatásokat.
A parancs több csomag telepítését tartalmazza, így külön sorokba tördelve jelenítem meg, amit egyben bemásolva futtathatunk
apt-get -y install \
mcrypt \
imagemagick \
memcached \
php-apcu \
php-gettext \
php-imagick \
php-memcache \
php-pear \
php-yaml
Ezután jöhetnek a különböző PHP verziók telepítése.
PHP 5.6
Bár ez egy régebbi verzió, de ha már rendelkezésünkre áll az új csomagtárban és szükségünk van rá, pl. egy régi weboldal futtatásához, telepítsük az alábbi paranccsal:
apt-get -y install \
php5.6 \
php5.6-bcmath \
php5.6-bz2 \
php5.6-cgi \
php5.6-cli \
php5.6-common \
php5.6-curl \
php5.6-fpm \
php5.6-gd \
php5.6-imap \
php5.6-intl \
php5.6-json \
php5.6-mbstring \
php5.6-mcrypt \
php5.6-mysql \
php5.6-opcache \
php5.6-pspell \
php5.6-recode \
php5.6-soap \
php5.6-sqlite3 \
php5.6-tidy \
php5.6-xml \
php5.6-xmlrpc \
php5.6-xsl \
php5.6-zip
A parancs futásának végén kiír pár sornyi megjegyzést:
NOTICE: Not enabling PHP 5.6 FPM by default. NOTICE: To enable PHP 5.6 FPM in Apache2 do: NOTICE: a2enmod proxy_fcgi setenvif NOTICE: a2enconf php5.6-fpm NOTICE: You are seeing this message because you have apache2 package installed.
Ez röviden annyit jelent, hogy alapból nincs engedélyezve a PHP-FPM az Apache-ban, ennek használatához be kell kapcsolni a megfelelő modulokat. Ezeket majd később állítgatjuk be.
Ez az összeállítás tartalmazza egy általános használatú PHP rendszer összetevőit, de ha szükségünk van még további csomagokra, akkor az alábbi apt-cache paranccsal rákereshetünk az összes PHP 5.6-os csomagra:
apt-cache search php5.6
A listából még mazsolázhatunk, amennyiben szükségünk van még egyéb kiegészítőkre is.
Ellenőrizhetjük ezt a változatot a CLI segítségével:
php5.6 --version
PHP 5.6.40-12+0~20190902.20+debian9~1.gbpc72558 (cli) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Ha tehát a PHP 5.6 parancssori módjára van szükségünk, pl. egy cron feladat végrehajtásához, stb, akkor a php5.6 parancsot használhatjuk ehhez a verzióhoz.
A php.ini fájlok pedig az alábbi helyeken vannak:
- CLI-hez: /etc/php/5.6/cli/php.ini
- PHP-FPM-hez: /etc/php/5.6/fpm/php.ini
PHP-FPM állapot lekérdezése:
systemctl status php5.6-fpm
● php5.6-fpm.service - The PHP 5.6 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php5.6-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-09-26 19:55:19 CEST; 2h 1min ago
Docs: man:php-fpm5.6(8)
Main PID: 21398 (php-fpm5.6)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php5.6-fpm.service
├─21398 php-fpm: master process (/etc/php/5.6/fpm/php-fpm.conf)
├─21400 php-fpm: pool www
└─21401 php-fpm: pool www
szept 26 19:55:19 debian9 systemd[1]: Starting The PHP 5.6 FastCGI Process Manager...
szept 26 19:55:19 debian9 systemd[1]: Started The PHP 5.6 FastCGI Process Manager.
PHP 7.0
Ha még nincs fent, és kompatibilitási okok miatt szükségünk van a 7.0-ás PHP-re, akkor telepítsük a következő paranccsal:
apt-get -y install \
php7.0 \
php7.0-bcmath \
php7.0-bz2 \
php7.0-cgi \
php7.0-cli \
php7.0-common \
php7.0-curl \
php7.0-fpm \
php7.0-gd \
php7.0-imap \
php7.0-intl \
php7.0-json \
php7.0-mbstring \
php7.0-mcrypt \
php7.0-mysql \
php7.0-opcache \
php7.0-pspell \
php7.0-recode \
php7.0-soap \
php7.0-sqlite3 \
php7.0-tidy \
php7.0-xml \
php7.0-xmlrpc \
php7.0-xsl \
php7.0-zip
Itt is kiírja a PHP-FPM-el kapcsolatos megjegyzéseket, de innentől már nem nyújtom ezzel a leírás terjedelmét...
Itt is keresgélhetünk még szükséges csomagokat a következő paranccsal:
apt-cache search php7.0
Parancssori használat: php7.0
A php.ini fájlok:
- CLI-hez: /etc/php/7.0/cli/php.ini
- PHP-FPM-hez: /etc/php/7.0/fpm/php.ini
PHP-FPM állapot lekérdezése:
systemctl status php7.0-fpm
● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-09-26 20:28:22 CEST; 1h 31min ago
Docs: man:php-fpm7.0(8)
Main PID: 28253 (php-fpm7.0)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php7.0-fpm.service
├─28253 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
├─28254 php-fpm: pool www
└─28255 php-fpm: pool www
szept 26 20:28:22 debian9 systemd[1]: Starting The PHP 7.0 FastCGI Process Manager...
szept 26 20:28:22 debian9 systemd[1]: Started The PHP 7.0 FastCGI Process Manager.
PHP 7.1
A 7.1-es ágat is hasonlóképpen telepíthetjük:
apt-get -y install \
php7.1 \
php7.1-bcmath \
php7.1-bz2 \
php7.1-cgi \
php7.1-cli \
php7.1-common \
php7.1-curl \
php7.1-fpm \
php7.1-gd \
php7.1-imap \
php7.1-intl \
php7.1-json \
php7.1-mbstring \
php7.1-mcrypt \
php7.1-mysql \
php7.1-opcache \
php7.1-pspell \
php7.1-recode \
php7.1-soap \
php7.1-sqlite3 \
php7.1-tidy \
php7.1-xml \
php7.1-xmlrpc \
php7.1-xsl \
php7.1-zip
Itt is kereshetünk további kiegészítőket a fenti keresőparancshoz hasonlóan...
Parancssori használat: php7.1
A php.ini fájlok:
- CLI-hez: /etc/php/7.1/cli/php.ini
- PHP-FPM-hez: /etc/php/7.1/fpm/php.ini
PHP-FPM állapot lekérdezése:
systemctl status php7.1-fpm
● php7.1-fpm.service - The PHP 7.1 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.1-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-09-26 20:54:00 CEST; 1h 10min ago
Docs: man:php-fpm7.1(8)
Main PID: 11156 (php-fpm7.1)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php7.1-fpm.service
├─11156 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf)
├─11158 php-fpm: pool www
└─11159 php-fpm: pool www
szept 26 20:54:00 debian9 systemd[1]: Starting The PHP 7.1 FastCGI Process Manager...
szept 26 20:54:00 debian9 systemd[1]: Started The PHP 7.1 FastCGI Process Manager.
PHP 7.2
A 7.2-es PHP telepítéséhez futtassuk a következőt:
apt-get -y install \
php7.2 \
php7.2-bcmath \
php7.2-bz2 \
php7.2-cgi \
php7.2-cli \
php7.2-common \
php7.2-curl \
php7.2-fpm \
php7.2-gd \
php7.2-imap \
php7.2-intl \
php7.2-json \
php7.2-mbstring \
php7.2-mysql \
php7.2-opcache \
php7.2-pspell \
php7.2-recode \
php7.2-soap \
php7.2-sqlite3 \
php7.2-tidy \
php7.2-xml \
php7.2-xmlrpc \
php7.2-xsl \
php7.2-zip
Parancssori használat: php7.2. Pl. verzió lekérdezése:
php7.2 --version
A php.ini fájlok:
- CLI-hez: /etc/php/7.2/cli/php.ini
- PHP-FPM-hez: /etc/php/7.2/fpm/php.ini
PHP-FPM állapot lekérdezése:
systemctl status php7.2-fpm
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-09-26 21:17:17 CEST; 49min ago
Docs: man:php-fpm7.2(8)
Main PID: 29395 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php7.2-fpm.service
├─29395 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
├─29396 php-fpm: pool www
└─29397 php-fpm: pool www
szept 26 21:17:17 debian9 systemd[1]: Starting The PHP 7.2 FastCGI Process Manager...
szept 26 21:17:17 debian9 systemd[1]: Started The PHP 7.2 FastCGI Process Manager.
PHP 7.3
A 7.3-as PHP-t is hasonlóan telepíthetjük:
apt-get -y install \
php7.3 \
php7.3-bcmath \
php7.3-bz2 \
php7.3-cgi \
php7.3-cli \
php7.3-common \
php7.3-curl \
php7.3-fpm \
php7.3-gd \
php7.3-imap \
php7.3-intl \
php7.3-json \
php7.3-mbstring \
php7.3-mysql \
php7.3-opcache \
php7.3-pspell \
php7.3-recode \
php7.3-soap \
php7.3-sqlite3 \
php7.3-tidy \
php7.3-xml \
php7.3-xmlrpc \
php7.3-xsl \
php7.3-zip
Parancssori használat: php7.3. Pl. verzió lekérdezése:
php7.3 --version
A php.ini fájlok:
- CLI-hez: /etc/php/7.3/cli/php.ini
- PHP-FPM-hez: /etc/php/7.3/fpm/php.ini
PHP-FPM állapot lekérdezése:
systemctl status php7.3-fpm
● php7.3-fpm.service - The PHP 7.3 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.3-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-09-26 21:50:42 CEST; 18min ago
Docs: man:php-fpm7.3(8)
Main PID: 13594 (php-fpm7.3)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 4915)
CGroup: /system.slice/php7.3-fpm.service
├─13594 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
├─13595 php-fpm: pool www
└─13596 php-fpm: pool www
szept 26 21:50:42 debian9 systemd[1]: Starting The PHP 7.3 FastCGI Process Manager...
szept 26 21:50:42 debian9 systemd[1]: Started The PHP 7.3 FastCGI Process Manager.
PHP 7.4
És végül a jelenlegi legfrissebb PHP verzió telepítése:
apt-get -y install \
php7.4 \
php7.4-bcmath \
php7.4-bz2 \
php7.4-cgi \
php7.4-cli \
php7.4-common \
php7.4-curl \
php7.4-fpm \
php7.4-gd \
php7.4-imap \
php7.4-intl \
php7.4-json \
php7.4-mbstring \
php7.4-mysql \
php7.4-opcache \
php7.4-pspell \
php7.4-soap \
php7.4-sqlite3 \
php7.4-tidy \
php7.4-xml \
php7.4-xmlrpc \
php7.4-xsl \
php7.4-zip
Parancssori használat: php7.4. Pl. verzió lekérdezése:
php7.4 --version
PHP 7.4.0beta4 (cli) (built: Aug 27 2019 13:24:38) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies with Zend OPcache v7.4.0beta4, Copyright (c), by Zend Technologies
Mint láthatjuk, a PHP 7.4 – a leírás készítése idején (2019-09-27) – még béta állapotban van, tehát éles környezetben még ne használjuk. Ennek változásáról a PHP hivatalos oldalán tájékozódhatunk.
A leírás készítése óta eltelt kerek 4 hónap, az imént említett PHP 7.4 verziója jelenleg a következő:
PHP 7.4.2 (cli) (built: Jan 23 2020 14:09:40) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.2, Copyright (c), by Zend Technologies
Ez alapján már látható, hogy a PHP 7.4 nagy fejlődésen ment át, tehát ma már nyugodtan használható éles használatra is.
A php.ini fájlok:
- CLI-hez: /etc/php/7.4/cli/php.ini
- PHP-FPM-hez: /etc/php/7.4/fpm/php.ini
PHP-FPM állapot lekérdezése:
systemctl status php7.4-fpm
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-09-26 22:20:01 CEST; 6min ago
Docs: man:php-fpm7.4(8)
Main PID: 30857 (php-fpm7.4)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php7.4-fpm.service
├─30857 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
├─30858 php-fpm: pool www
└─30859 php-fpm: pool www
szept 26 22:20:01 debian9 systemd[1]: Starting The PHP 7.4 FastCGI Process Manager...
szept 26 22:20:01 debian9 systemd[1]: Started The PHP 7.4 FastCGI Process Manager.
Egy független PHP teszt alapján a 7.4-es ág teljesítménye ígéretesnek tűnik, így várjuk mielőbb a stabil változat kiadását.
Amint láthatjuk, a különböző PHP verziók FPM pool-jai elindultak, fejenként az 1+2 alapértelmezett processzel, amik várják a beérkező kapcsolatokat. A feladatunk azonban itt még nem ért véget, a következő oldalon folytatjuk a PHP-k egy szerveren történő párhuzamos használatával.
PHP 8.0
Elkészült a PHP 8 telepítő leírás:
Kapcsolódó tartalom, hasznos linkek:
- Enciklopédia - PHP
- Enciklopédia - PHP-FPM
- Hogyan telepíthetjük fel a PHP 8-at Debian vagy Ubuntu rendszerű szerverünkre
- Hogyan telepítsük fel a PHP-FPM-et egy Debian 8 (Jessie) LAMP szerverre
- Hogyan telepítsük a PHP 7.1.19-et opcionális módban Debian 8-as tökéletes szerverre
- Hogyan telepítsük a PHP 5.6.40-et választható verzióként a Debian 9 (Stretch) tökéletes szerverre
- Hogyan állíthatunk be egyedi PHP verziókat ISPConfig rendszerű szerverünkön
- Hogyan állítsuk át manuálisan egy PHP-FPM pool-ban futó weboldalunk vagy webalkalmazásunk PHP verzióját?
- A PHP 8 újdonságai és változásai
- Tökéletes szerver letöltése: Debian 10 (Buster) v1.1
- Mit tegyünk, ha a Sury.org csomagtárunk nem frissül GPG aláírási hiba miatt Debian szerverünkön?
Lapozó
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
- 1187 megtekintés