Az 1. oldal tartalma
Bevezető
A Debian 9 (Stretch) disztribúciója a PHP 7.0-ás változatát tartalmazza alapértelmezettként. A PHP fő verziói nem teljesen kompatibilisek egymással, így gyakran előfordul, hogy a szerveren futtatott weboldalak ennél újabb, vagy éppen régebbi PHP verziót igényelnek. Ebben a leírásban feltelepítjük a PHP 5.6-os ágából a jelenlegi legfrissebb változatot, az 5.6.40-et egy Debian 9 (Stretch) alapú tökéletes szerverre választható PHP verzióként, melyeket FastCGI és PHP-FPM módokban lehet ezután működtetni. Így a disztribúcióban lévő alapértelmezett PHP verziója mellett lesz használható a weboldalak számára.
Korábban már készítettem egy másik leírást, amelyben Debian 8 (Jessie) alapú szerverre telepítettem a 7.1-es PHP-t.
Előfeltételek
Előkészítés
Legelőször frissítsük a Debian csomagtár adatbázisát és a csomagokat. Root-ként adjuk ki a szokásos apt-get parancsokat:
apt-get update
apt-get upgrade
Ezt a PHP-t opcionális verzióként fogjuk telepíteni, ami azt jelenti, hogy a disztribúcióban lévő alapértelmezett PHP mellett fog tudni működni, annál a weboldalnál, amelyiknél szükség van rá. Mivel a Debian 9 már nem tartalmazza a PHP 5.6-ot, és nem is alapértelmezettként fogjuk telepíteni, ezért most nem a megszokott módon telepítjük csomagokból, hanem a forráskódjából kell lefordítanunk.
A fordítás előtt még szükség lesz jó néhány előkészületre, beállításra, hogy a PHP 5.6 számára a Debian 8-hoz hasonló, kompatibilis környezetet állíthassunk össze. Továbbá a fordítás előtti konfiguráció során is még sok paramétert be kell neki állítani, hogy egy teljesen működőképes és független PHP rendszerként tudják majd használni a szerveren lévő webtárhelyek.
Fordításhoz szükséges csomagok telepítése
A PHP lefordításához szükség van a fejlesztői és fordító eszközökre. Telepítsük a build-essential, autoconf, pkg-config csomagokat:
apt-get -y install build-essential autoconf pkg-config
Majd telepítsük a PHP környezet fejlesztői csomagjait, amik szintén szükségesek a fordításhoz:
apt-get -y install \
libfcgi-dev \
libfcgi0ldbl \
libjpeg62-turbo-dev \
libmcrypt-dev \
libssl-dev \
libc-client2007e \
libc-client2007e-dev \
libxml2-dev \
libbz2-dev \
libcurl4-openssl-dev \
libjpeg-dev libpng-dev \
libfreetype6-dev \
libkrb5-dev \
libpq-dev \
libxml2-dev \
libxslt1-dev
Az áttekinthetőség kedvéért több sorba tördeltem a parancsot. Ugyanígy kimásolva futtatható.
Szükséges linkek létrehozása
A PHP IMAP moduljának lefordításához még szükség van két linkre, ezeket hozzuk létre:
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include
ln -s x86_64-linux-gnu/curl
Régebbi OpenSSL telepítése
A Debian 9 disztribúciójában lévő OpenSSL verziója (1.1.0) túl új a PHP 5.6 számára, ezért fel kell telepítenünk a régebbi változatát (1.0.1t), ami alapból Debian 8 (Jessie) disztribúciójának a része. Mivel a Debian 9 nem tartalmazza ezt a csomagot, ezért le kell fordítanunk a forráskódjából. A régebbi OpenSSL verziót természetesen másodlagosként telepítjük fel a meglévő mellé, amit csak a PHP 5.6 fog használni, és nem fogja zavarni az alapértelmezett verzió működését.
Töltsük le az OpenSSL 1.0.1t változatát a hivatalos oldaláról, majd csomagoljuk ki:
cd /tmp
wget "https://www.openssl.org/source/old/1.0.1/openssl-1.0.1t.tar.gz"
tar xzf openssl-1.0.1t.tar.gz
Hozzuk létre a cél könyvtárát:
mkdir /opt/openssl
Lépjünk be a forrás könyvtárába, majd konfiguráljuk:
cd openssl-1.0.1t
./config shared --prefix=/opt/openssl
Függőségek összeállítása a forrás számára:
make depend
Írták is lent a kommentekben, hogy a leírás készítése óta változhattak a körülmények a Debian 9-ben. Az ilyesmivel mindig érdemes számolni egy régebbi leírás elkészítésénél.
Most már jöhet az OpenSSL fordítása:
make
Majd ha hiba nélkül lefutott, akkor jöhet a telepítés:
make install
Link létrehozása és az OpenSSL-hez szükséges friss gyökér tanúsítvány csomag letöltése a wget paranccsal:
ln -s /opt/openssl/lib /opt/openssl/lib/x86_64-linux-gnu
wget -O /opt/openssl/ssl/cert.pem "http://curl.haxx.se/ca/cacert.pem"
További linkek létrehozása, hogy a PHP 5.6 elérje a libcrypto és libssl függvénykönyvtárakat:
ln -s /opt/openssl/lib/libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/
ln -s /opt/openssl/lib/libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/
ln -fs /opt/openssl /usr/local/ssl
Végül töröljük az átmeneti dolgokat:
rm -rf /tmp/openssl*
FreeType függvénykönyvtár elérhetővé tétele
Az eredeti leírás szerinti freetype2 linkeléses résznél nem stimmelt valami, ezért körülnéztem a Debian 8-ban, hogy ott hogyan van ez a freetype2 könyvtár.
A Debian 8-ban a /usr/include/freetype2/ könyvtárban vannak közvetlenül a FreeType header fájljai, és egy config alkönyvtár. A Debian 9-ben pedig ugyanez a struktúra egy könyvtárszinttel beljebb van: /usr/include/freetype2/freetype/.
Ezt az eltérést a dpkg paranccsal is tudjuk ellenőrizni mindkét rendszeren:
dpkg -L libfreetype6-dev | grep "/usr/include"
Itt két megoldás lehetséges: Vagy átlinkeljük a fájlokat és a config könyvtárat egy könyvtárszinttel kijjebb, vagy pedig a PHP konfigurációjánál adjuk meg a FreeType támogatás számára a megfelelő könyvtárat:
[...]
--with-freetype-dir=/usr/include/freetype2/freetype
[...]
Én ez utóbbit tartom ésszerűbbnek, tehát majd a PHP konfigurációjánál fogjuk ezt beállítani.
Ezzel az előkészületek meg is volnának, jöhet a PHP letöltése, konfigurálása, fordítása és telepítése.
PHP 5.6 letöltése
Hozzuk létre a telepítési célkönyvtárat:
mkdir -p /opt/php-5.6.40
Hozzuk létre a forrás és a fordítás számára az ideiglenes könyvtárat, majd lépjünk bele:
mkdir /usr/local/src/php-5.6-build
cd /usr/local/src/php-5.6-build
Töltsük le a PHP kiadásainak letöltőoldaláról az 5.6.40-es forráscsomagját, illetve ha ennek a leírásnak az elkészítése óta van frissebb, akkor azt. Én itt az Ausztriai tükröt választom, de lehet bármelyikről tölteni.
wget http://at2.php.net/get/php-5.6.40.tar.gz/from/this/mirror -O php-5.6.40.tar.gz
Csomagoljuk ki:
tar -xzf php-5.6.40.tar.gz
Fordítás és telepítés
Konfigurálás
A fordítás előtt konfigurálni kell a forrást, ami előkészíti a szoftvert az adott hardverre történő lefordításra. Többek között itt kell megadni neki nagyon sok paramétert, amiknek köszönhetően fogunk egy kész, működő rendszert kapni.
Lépjünk be a forrás könyvtárba:
cd /usr/local/src/php-5.6-build/php-5.6.40
Az összes konfigurálási lehetőségeket, kapcsolókat megtekinthetjük az alábbi paranccsal:
./configure --help
Itt pedig egy kész konfiguráció, amit az eredeti leírás alapján, és az itt felmerült változtatások figyelembevételével állítottam össze:
./configure\
--prefix=/opt/php-5.6.40 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-gd \
--with-zlib \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--enable-exif \
--enable-bcmath \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-pdo-mysql \
--with-mysql \
--with-mysqli \
--with-mysql-sock=/var/run/mysqld/mysqld.sock \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl=/opt/openssl \
--with-openssl-dir=/opt/openssl \
--with-libdir=/lib/x86_64-linux-gnu \
--enable-ftp \
--with-kerberos \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--enable-opcache \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-fpm
Ebben a konfigurációban tehát majdnem minden benne van, ami kellhet egy teljes PHP-be, egy dolgot kivéve: az IMAP támogatást.
Nálam hiba nélkül le is futott ez a konfiguráció, így jöhet is a következő lépés.
Fordítás
Az előkészített szoftvercsomag forrásának lefordítását a make paranccsal végezhetjük, a forrás könyvtárban maradva (/usr/local/src/php-5.6-build/php-5.6.40). Én még kíváncsiságból elé szoktam tenni a time parancsot is, így le tudom mérni a pontos futási időt is:
time make
Dobott jópár warningot, de hiba nem volt benne, és lefutott 9 perc 42 másodperc alatt a VirtualBox-os gépen. A gazda gép pedig egy Intel I7-3770-es CPU.
Telepítés
És végül jöhet a telepítés, ami a végleges helyére rakja a PHP-t:
make install
Ezzel tehát a /opt/php-5.6.40/ könyvtárba került a PHP 5.6 rendszerünk.
Ellenőrzés
A sikeres telepítést ellenőrizhetjük is a parancssori (CLI) PHP módon keresztül:
/opt/php-5.6.40/bin/php --version
A megfelelő kimenet pedig:
PHP 5.6.40 (cli) (built: Feb 18 2019 16:47:39) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
A következő oldalon folytatjuk a PHP 5.6.40 telepítés utáni beállításainak elvégzésével.
- HowtoForge.com - How to install PHP 7.1, 7.2 and 5.6 as PHP-FPM & FastCGI for ISPConfig 3 on Debian 9
- Hogyan telepítsük a PHP 7.1.19-et opcionális módban Debian 8-as tökéletes szerverre
- Hogyan telepíthetünk újabb PHP verziókat Debian 9 (Stretch) LAMP szerverünkre PHP-FPM módban
- Hogyan állíthatunk be egyedi PHP verziókat ISPConfig rendszerű szerverünkön
- Naplófájlok forgatása és tömörítése a Logrotate programmal
- Tökéletes szerver: Debian 9 (stretch) V1.0
- Enciklopédia - PHP
- Enciklopédia - PHP-FPM
- php.net - Releases
Lapozó
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
- 394 megtekintés