Ebből a leírásból megtudhatod, hogy hogyan telepítsd alternatív módon a PHP7.3 verzióiját ISPConfig3 alá. A módszer alkalmazható különböző php verziók egymás mellé telepítésére is. Így az egyes webalkalmazások különböző verziókkal futtathatók.
PHP Telepítése
Első lépés szokásos, frissítsük a rendszer csomagjait és telepítsük fel a szükségeseket
apt-get update && apt-get upgrade -y && apt-get install build-essential apt-get 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 libsqlite3-dev libonig-dev
Az alábbi néhány beállítás azért kell, mert különben a ./configure parancs elhal a –with-imap kapcsoló használatakor
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
GMP library telepítése forrásból. Ez a csomag szükséges például a Nextcloud 19.1 verzióhoz is.
cd /tmp wget ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2 tar -xjf gmp-4.3.2.tar.bz2 cd gmp-4.3.2 ./configure --prefix=/usr && make && make install
Elérkeztünk az érdemi munkához. Hozzuk létre a szükséges könyvtárakat és töltsük le-, majd csomagoljuk ki a php általunk kiválasztott verzióját. Én jelenleg a most elérhető legfrissebb stabil verziót fogom telepíteni
mkdir -p /opt/php-7.3.12 mkdir /usr/local/src/php7.3-build cd /usr/local/src/php7.3-build wget https://www.php.net/distributions/php-7.3.12.tar.gz -O php-7.3.12.tar.bz2 tar jxf php-7.3.12.tar.bz2 cd php-7.3.12/
Állítsuk be, hogy milyen szolgáltatásokat szeretnénk használni a php adott verziójánál. Ezekről bővebben a ./configure –help parancs ad információt
./configure --prefix=/opt/php-7.3.12 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --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-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg-dir=/usr --with-png-dir=/usr --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --enable-intl --with-gmp make make install
Konfigurációs állományok másolása, beállítása
cp /usr/local/src/php7.3-build/php-7.3.12/php.ini-production /opt/php-7.3.12/lib/php.ini cp /opt/php-7.3.12/etc/php-fpm.conf.default /opt/php-7.3.12/etc/php-fpm.conf cp /opt/php-7.3.12/etc/php-fpm.d/www.conf.default /opt/php-7.3.12/etc/php-fpm.d/www.conf nano /opt/php-7.3.12/etc/php-fpm.conf [...] pid = /opt/php-7.3.12/var/run/php-fpm.pid [...] nano /opt/php-7.3.12/etc/php-fpm.d/www.conf [...] listen = 127.0.0.1:8991 [...]
Hozzuk létre a szolgáltatás indító scriptjét
nano /lib/systemd/system/php-7.3.12-fpm.service
Másoljuk be az alábbi tartalmat
[Unit] Description=The PHP 7.3.12 FastCGI Process Manager After=network.target [Service] Type=simple PIDFile=/opt/php-7.3.12/var/run/php-fpm.pid ExecStart=/opt/php-7.3.12/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.3.12/etc/php-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID [Install] WantedBy=multi-user.target
Engedélyezzük- és indítsuk el a szolgáltatást
systemctl enable php-7.3.12-fpm.service systemctl daemon-reload systemctl start php-7.3.12-fpm.service
Engedélyezzük a php cache lehetőségét, ehhez először nyissuk meg a konfigurációs fájlt
nano /opt/php-7.3.12/lib/php.ini
Majd adjuk hozzá az alábbi sort
[...] zend_extension=opcache.so
Először telepítsük fel a szükséges csomagokat
apt-get -y install libzip-dev libmemcached-dev
Lépjünk az átmeneti fájlokat tartalmazó „tmp” könyvtárba, majd a Git verziókezelő tárolójából töltsük le a szükséges állományt és tömörítsük azt ki
cd /tmp wget https://github.com/php-memcached-dev/php-memcached/archive/master.zip -O php7.zip unzip php7.zip
Lépjünk be az alábbi könyvtárba, majd a php verziónknak megfelelően genereáljuk le a konfigurációs állományt, majd fordítsunk és telepítsünk
cd php-memcached-master /opt/php-7.3.12/bin/phpize ./configure --with-php-config=/opt/php-7.3.12/bin/php-config make make install
A php.ini konfigurációjában adjuk meg a külső modul elérési útját
nano /opt/php-7.3.12/lib/php.ini extension=/opt/php-7.3.12/lib/php/extensions/no-debug-non-zts-20180731/memcached.so
Opcionális modulok telepítése
xDebug és APCU extension
Ebben a szakaszban opcionális modulok telepítése következik
apt install php-apcu php-apcu-bc cd /opt/php-7.3.12/etc ../bin/pecl -C ./pear.conf update-channels ../bin/pecl -C ./pear.conf install xdebug ../bin/pecl -C ./pear.conf install apcu
Következik a szokásos beállítás, a modul elérési útját adjuk a php.ini fájlhoz
nano /opt/php-7.3.12/lib/php.ini zend_extension=/opt/php-7.3.12/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so extension=apcu.so
Az új beállítások érvényesítéséhez indítsuk újra a szolgáltatást
systemctl restart php-7.1-fpm.service
Redis extension
Redis támogatása, telepítsük fel a szükséges csomagokat
apt install php-redis redis-server
Majd telepítsük a a Redis szerver támogatását a php verziónkba
cd /opt/php-7.3.12/etc ../bin/pecl -C ./pear.conf update-channels ../bin/pecl -C ./pear.conf install redis
Végül ismét nincs más hátra, mint a php.ini fájlban a szükséges kiegészítés beállítása
nano /opt/php-7.3.12/lib/php.ini extension=redis.so
Indítsuk újra a szolgáltatást
systemctl restart php-7.1-fpm.service
WordPress és Nextcloud támogatás
Egyes webes alkalmazások igénylik az imagick kiterjesztést is. Ez a modul tulajdonképpen arra szolgál, hogy a php grafikus szerkesztésekhez meg tudja hívni az ImageMagick alkalmazás megfelelő rutinjait, például mondjuk, ha egy jpg képet akarunk átméretezni. Lássuk mi kell ehhez. Először telepítsük az ImageMagick programot. Lépjünk a „tmp” könyvtárba
cd /tmp
Majd a következő parancsokkal folytassuk
wget https://www.imagemagick.org/download/ImageMagick.tar.gz tar xvzf ImageMagick.tar.gz cd ImageMagick-7.0.8-26/ ./configure make make install sudo ldconfig /usr/local/lib magick -version
Most jön a modul telepítése
apt install php-imagick php-gd
Lássuk a kiterjesztést
cd /tmp git clone --depth 1 https://github.com/mkoppanen/imagick.git cd imagick /opt/php-7.3.12/bin/phpize ./configure --with-php-config=/opt/php-7.3.12/bin/php-config make install
Végezetül a már jól ismert beállító fájl konfigurálása
nano /opt/php-7.3.12/lib/php.ini [...] extension=/opt/php-7.3.12/lib/php/extensions/no-debug-non-zts-20180731/imagick.so [...]
Indítsuk újra a szolgáltatást
service php-7.3.12-fpm restart
Ezzel el is készültünk, az fpm szolgáltatás apache2 beállítása egy következő bejegyzés témája lesz…