GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat PHP 7.1, 7.2 a 5.6 jako PHP-FPM &FastCGI pro ISPConfig 3 na Debian 9

Debian 9 se dodává s PHP 7.0 jako výchozí verzí PHP. Hlavní verze PHP nejsou vzájemně 100% kompatibilní, takže web může ke svému fungování vyžadovat novější nebo starší verzi PHP. ISPConfig podporuje použití více verzí PHP na stejném serveru, verzi PHP lze vybrat pro každý web zvlášť v nastavení webu. Tento tutoriál ukazuje, jak nainstalovat PHP 7.1, 7.2 a 5.6 jako režim FPM a FCGI spolu s PHP 7.0 na server Debian 9. Další verze PHP jsou nainstalovány ve složce /opt, takže jejich instalace neovlivní výchozí verzi PHP.

AKTUALIZACE:Doporučuje se nyní nainstalovat další verze PHP na Debian a Ubuntu z balíčků. Tutoriál naleznete zde:https://www.howtoforge.com/tutorial/how-to-install-php-7-for-ispconfig-3-from-debian-packages-on-debian-8-and-9 /

1 předběžná poznámka

Nainstaluji PHP 7.1, 7.2 a 5.6. Upozorňujeme, že PHP-FPM lze použít na serverech Apache i Nginx, zatímco FastCGI je k dispozici pouze pro servery Apache.

2 Nainstalujte předpoklady

Nainstalujte si předpoklady pro sestavení PHP a nano editor, který budu používat k úpravě konfiguračních souborů:

apt-get install build-essential nano
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
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

(Poslední příkaz je nutný, pokud vytváříte PHP s --with-imap, protože jinak se ./configure zastaví s následující chybou:

checking for crypt in -lcrypt... yes
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
[email protected]:/usr/local/src/php5-build/php-7.1.14#

)

3 Zkompilujte PHP 7.1 jako PHP-FPM a Fastcgi

Stáhněte a rozbalte archiv PHP:

mkdir -p /opt/php-7.1
mkdir /usr/local/src/php7.1-build
cd /usr/local/src/php7.1-build
wget http://de2.php.net/get/php-7.1.14.tar.bz2/from/this/mirror -O php-7.1.14.tar.bz2
tar jxf php-7.1.14.tar.bz2
cd php-7.1.14/

Nakonfigurujte a sestavte PHP 7.1 následovně (příkaz ./configure si můžete upravit podle svých potřeb, podívejte se na

./configure --help

zobrazit všechny dostupné možnosti; pokud použijete jiný příkaz ./configure, je možné, že budou vyžadovány další knihovny nebo proces sestavení selže):

./configure --prefix=/opt/php-7.1 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --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 --enable-gd-native-ttf --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

Poslední přepínač (--enable-fpm) zajišťuje, že tato verze PHP bude fungovat s PHP-FPM.

make
make install

Zkopírujte php.ini a php-fpm.conf do správných umístění:

cp /usr/local/src/php7.1-build/php-7.1/php.ini-production /opt/php-7.1/lib/php.ini
cp /opt/php-7.1/etc/php-fpm.conf.default /opt/php-7.1/etc/php-fpm.conf
cp /opt/php-7.1/etc/php-fpm.d/www.conf.default /opt/php-7.1/etc/php-fpm.d/www.conf

Otevřete /opt/php-7.1/etc/php-fpm.conf a upravte následující nastavení (odstraňte; před řádkem pid):

nano /opt/php-7.1/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]

Poté otevřete /opt/php-7.1/etc/php-fpm.d/www.conf a upravte řádek naslouchání, musíte použít nepoužívaný port (např. 8999; port 9000 již může používat výchozí PHP-FPM Debianu) :

nano /opt/php-7.1/etc/php-fpm.d/www.conf
[...]
listen = 127.0.0.1:8999
[...]

3.1 Vytvořte soubor systemd unit

Dále vytvoříme soubor systémové jednotky, který se používá ke spuštění a zastavení démona PHP-FPM.

nano /lib/systemd/system/php-7.1-fpm.service

s následujícím obsahem:

[Unit]
Description=The PHP 7.1 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/opt/php-7.1/var/run/php-fpm.pid
ExecStart=/opt/php-7.1/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.1/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Povolte službu a znovu načtěte systemd:

systemctl enable php-7.1-fpm.service
systemctl daemon-reload

Nakonec spusťte PHP-FPM.

systemctl start php-7.1-fpm.service

Chcete-li povolit Zend OPcache, otevřete /opt/php-7.1/lib/php.ini...

nano /opt/php-7.1/lib/php.ini

... a na konec přidejte následující řádek:

[...]
zend_extension=opcache.so

3.2 Povolit Memcache (volitelné)

V této kapitole zkompiluji a povolím rozšíření PHP Memcached.

Prvním krokem je instalace balíčku libmemcached-dev z Debianu.

apt-get install libmemcached-dev

Poté vytvořte adresář, stáhněte si z Github rozšíření PHP memcache, rozbalte archiv a zadejte adresář, který obsahuje rozbalené soubory.

mkdir /usr/local/src/php7.1-build/php-memcache
cd /usr/local/src/php7.1-build/php-memcache
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
unzip php7.zip
cd php-memcached-php7

Připravte zdroje spuštěním příkazu phpize z PHP 7.1.

/opt/php-7.1/bin/phpize

Nakonfigurujte a sestavte rozšíření PHP memcache.

./configure --with-php-config=/opt/php-7.1/bin/php-config
make
make install

Chcete-li povolit rozšíření Memcache, otevřete /opt/php-7.1/lib/php.ini...

nano /opt/php-7.1/lib/php.ini

... a na konec přidejte následující řádek:

[...]
extension=memcached.so

3.3 Instalace rozšíření xDebug (volitelné)

Modul xDebug je ladicí rozšíření pro PHP. Instalace je volitelná.

Nainstalujte xDebug pomocí těchto příkazů.

cd /opt/php-7.1/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install xdebug

Poté upravte soubor php.ini pomocí editoru:

nano /opt/php-7.1/lib/php.ini

a na konec souboru přidejte následující řádek:

zend_extension=/opt/php-7.1/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so

Nakonec restartujte démona php-fpm:

systemctl start php-7.1-fpm.service

Otestujte verzi PHP:

cd /opt/php-7.1/bin
./php --version

Výstup by měl být podobný tomuto snímku obrazovky.

Poznámka: Snímek obrazovky pochází z PHP 7.1.14, výukový program se průběžně aktualizuje pro nové verze PHP, ale nepořizujeme pokaždé nové snímky obrazovky, takže verze PHP, kterou uvidíte na svém serveru, může být novější. Aktuální verze tohoto návodu je pro php-7.1.14.

3.4 Povolení PHP 7.1 v ISPConfig

V ISPConfig 3.1 můžete nakonfigurovat novou verzi PHP v části Systém> Další verze PHP. Na záložce Název pouze vyplníte název pro verzi PHP (např. PHP 7.1) - tato verze PHP bude pod tímto názvem uvedena v nastavení webu v ISPConfig:

Přejděte na kartu Nastavení FastCGI a vyplňte pole následovně:

Path to the PHP FastCGI binary: /opt/php-7.1/bin/php-cgi
Path to the php.ini directory: /opt/php-7.1/lib

Poté přejděte na kartu Nastavení PHP-FPM a vyplňte pole následovně:

Path to the PHP-FPM init script: php-7.1-fpm
Path to the php.ini directory: /opt/php-7.1/lib
Path to the PHP-FPM pool directory: /opt/php-7.1/etc/php-fpm.d

4 Zkompilujte PHP 7.2 jako PHP-FPM a Fastcgi

Stáhněte a rozbalte PHP z php.net a rozbalte soubor tar.bz2:

mkdir -p /opt/php-7.2
mkdir /usr/local/src/php7.2-build
cd /usr/local/src/php7.2-build
wget http://de2.php.net/get/php-7.2.2.tar.bz2/from/this/mirror -O php-7.2.2.tar.bz2
tar jxf php-7.2.2.tar.bz2
cd php-7.2.2/

Nakonfigurujte a sestavte PHP 7.2 následovně (příkaz ./configure si můžete upravit podle svých potřeb, podívejte se na

./configure --help

zobrazit všechny dostupné možnosti; pokud použijete jiný příkaz ./configure, je možné, že budou vyžadovány další knihovny nebo proces sestavení selže):

./configure --prefix=/opt/php-7.2 --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

Poslední přepínač (--enable-fpm) zajišťuje, že tato verze PHP bude fungovat s PHP-FPM.

make
make install

Zkopírujte php.ini a php-fpm.conf do správných umístění:

cp /usr/local/src/php7.2-build/php-7.2.2/php.ini-production /opt/php-7.2/lib/php.ini
cp /opt/php-7.2/etc/php-fpm.conf.default /opt/php-7.2/etc/php-fpm.conf
cp /opt/php-7.2/etc/php-fpm.d/www.conf.default /opt/php-7.2/etc/php-fpm.d/www.conf

Otevřete /opt/php-7.2/etc/php-fpm.conf a upravte následující nastavení (odstraňte; před řádkem pid):

nano /opt/php-7.2/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]

Poté otevřete /opt/php-7.2/etc/php-fpm.d/www.conf a upravte řádek naslouchání, musíte použít nepoužívaný port (např. 8998; port 9000 již může používat výchozí PHP-FPM Debianu) :

nano /opt/php-7.2/etc/php-fpm.d/www.conf
[...]
listen = 127.0.0.1:8998
[...]

4.1 Vytvořte soubor systemd unit

Dále vytvoříme soubor systémové jednotky, který se používá ke spuštění a zastavení démona PHP-FPM.

nano /lib/systemd/system/php-7.2-fpm.service

s následujícím obsahem:

[Unit]
Description=The PHP 7.2 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/opt/php-7.2/var/run/php-fpm.pid
ExecStart=/opt/php-7.2/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.2/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Povolte službu a znovu načtěte systemd:

systemctl enable php-7.2-fpm.service
systemctl daemon-reload

Nakonec spusťte PHP-FPM.

systemctl start php-7.2-fpm.service

Chcete-li povolit Zend OPcache, otevřete /opt/php-7.2/lib/php.ini...

nano /opt/php-7.2/lib/php.ini

... a na konec přidejte následující řádek:

[...]
zend_extension=opcache.so

4.2 Povolit Memcache (volitelné)

V této kapitole zkompiluji a povolím rozšíření PHP Memcached.

Prvním krokem je instalace balíčku libmemcached-dev z Debianu.

apt-get install libmemcached-dev

Poté vytvořte adresář, stáhněte si rozšíření PHP memcache z Github, rozbalte archiv a zadejte adresář, který obsahuje rozbalené soubory.

mkdir /usr/local/src/php7.2-build/php-memcache
cd /usr/local/src/php7.2-build/php-memcache
wget https://github.com/php-memcached-dev/php-memcached/archive/php7.zip
unzip php7.zip
cd php-memcached-php7

Připravte zdroje spuštěním příkazu phpize z PHP 7.2.

/opt/php-7.2/bin/phpize

Nakonfigurujte a sestavte rozšíření PHP memcache.

./configure --with-php-config=/opt/php-7.2/bin/php-config
make
make install

Chcete-li povolit rozšíření Memcache, otevřete /opt/php-7.2/lib/php.ini...

nano /opt/php-7.2/lib/php.ini

... a na konec přidejte následující řádek:

[...]
extension=memcached.so

4.3 Instalace rozšíření xDebug (volitelné)

Modul xDebug je ladicí rozšíření pro PHP. Instalace je volitelná.

Nainstalujte xDebug pomocí těchto příkazů.

cd /opt/php-7.2/etc
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install xdebug

Poté upravte soubor php.ini pomocí editoru:

nano /opt/php-7.2/lib/php.ini

a na konec souboru přidejte následující řádek:

zend_extension=/opt/php-7.2/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so

Nakonec restartujte démona php-fpm:

systemctl start php-7.2-fpm.service

Otestujte verzi PHP:

cd /opt/php-7.2/bin
./php --version

Výstup by měl být podobný tomuto snímku obrazovky.

Poznámka: Snímek obrazovky pochází z PHP 7.2.2, výukový program se průběžně aktualizuje pro nové verze PHP, ale nepořizujeme pokaždé nové snímky obrazovky, takže verze PHP, kterou uvidíte na svém serveru, může být novější. Aktuální verze tohoto návodu je pro php-7.2.2.

4.4 Povolení PHP 7.2 v ISPConfig

V ISPConfig 3.1 můžete nakonfigurovat novou verzi PHP v části Systém> Další verze PHP. Na záložce Název pouze vyplníte název pro verzi PHP (např. PHP 7.2) - tato verze PHP bude pod tímto názvem uvedena v nastavení webu v ISPConfig:

Přejděte na kartu Nastavení FastCGI a vyplňte pole následovně:

Path to the PHP FastCGI binary: /opt/php-7.2/bin/php-cgi
Path to the php.ini directory: /opt/php-7.2/lib

Poté přejděte na kartu Nastavení PHP-FPM a vyplňte pole následovně:

Path to the PHP-FPM init script: php-7.2-fpm
Path to the php.ini directory: /opt/php-7.2/lib
Path to the PHP-FPM pool directory: /opt/php-7.2/etc/php-fpm.d

5 Zkompilujte PHP 5.6 jako PHP-FPM a Fastcgi

Stáhněte si PHP a rozbalte archiv tar.bz2:

mkdir -p /opt/php-5.6
mkdir /usr/local/src/php5.6-build
cd /usr/local/src/php5.6-build
wget http://de2.php.net/get/php-5.6.33.tar.bz2/from/this/mirror -O php-5.6.33.tar.bz2
tar jxf php-5.6.33.tar.bz2

Verze OpenSSL v Debianu 9 je pro PHP 5.6 příliš nová, takže pro použití s ​​PHP 5.6 budeme muset zkompilovat starší verzi v /opt/openssl.

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
cd openssl-1.0.1t
./config shared --prefix=/opt/openssl
make -j $(nproc) && make install
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"

Vytvořte symbolický odkaz, aby PHP našlo knihovny freetype, libcrypto a libssl.

mkdir /usr/include/freetype2/freetype
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h
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

Zadejte složku, která obsahuje rozbalené zdrojové soubory PHP.

cd /usr/local/src/php5.6-build/php-5.6.33/

Nakonfigurujte a sestavte PHP 5.6 následovně (příkaz ./configure si můžete upravit podle svých potřeb, podívejte se na

./configure --help

zobrazit všechny dostupné možnosti; pokud použijete jiný příkaz ./configure, je možné, že budou vyžadovány další knihovny nebo proces sestavení selže):

./configure --prefix=/opt/php-5.6 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --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 --enable-gd-native-ttf --with-openssl=/opt/openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm

Poslední přepínač (--enable-fpm) zajišťuje, že tato verze PHP bude fungovat s PHP-FPM.

make
make install

Zkopírujte php.ini a php-fpm.conf do správných umístění:

cp /usr/local/src/php5.6-build/php-5.6.33/php.ini-production /opt/php-5.6/lib/php.ini
cp /opt/php-5.6/etc/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.conf
mkdir -p /opt/php-5.6/etc/php-fpm.d

Otevřete /opt/php-5.6/etc/php-fpm.conf a upravte následující nastavení:

nano /opt/php-5.6/etc/php-fpm.conf
[...]
pid = run/php-fpm.pid
[...]
user = www-data
group = www-data
[...]
listen = 127.0.0.1:8997
[...]
include=/opt/php-5.6/etc/php-fpm.d/*.conf

5.1 Vytvoření souboru systemd unit

Dále vytvoříme soubor systémové jednotky, který se používá ke spuštění a zastavení démona PHP-FPM.

nano /lib/systemd/system/php-5.6-fpm.service

s následujícím obsahem:

[Unit]
Description=The PHP 5.6 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/opt/php-5.6/var/run/php-fpm.pid
ExecStart=/opt/php-5.6/sbin/php-fpm --nodaemonize --fpm-config /opt/php-5.6/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Povolte službu a znovu načtěte systemd:

systemctl enable php-5.6-fpm.service
systemctl daemon-reload

Nakonec spusťte PHP-FPM.

systemctl start php-5.6-fpm.service

Chcete-li povolit Zend OPcache, otevřete /opt/php-5.6/lib/php.ini...

nano /opt/php-5.6/lib/php.ini

... a na konec přidejte následující řádek:

[...]
zend_extension=opcache.so

5.2 Povolit Memcache (volitelné)

V této kapitole zkompiluji a povolím rozšíření PHP Memcached.

Prvním krokem je instalace balíčku libmemcached-dev z Debianu.

apt-get install libmemcached-dev

Poté spusťte tyto příkazy a vytvořte rozšíření memcache

cd /opt/php-5.6/etc
pecl -C ./pear.conf update-channels
pecl -C ./pear.conf install memcache

Chcete-li povolit rozšíření Memcache, otevřete /opt/php-5.6/lib/php.ini...

nano /opt/php-5.6/lib/php.ini

... a na konec přidejte následující řádek:

[...]
extension=memcache.so

Nakonec restartujte démona php-fpm:

systemctl start php-5.6-fpm.service

Otestujte verzi PHP:

cd /opt/php-5.6/bin
./php --version

Výstup by měl být podobný tomuto snímku obrazovky.

Poznámka: Snímek obrazovky pochází z PHP 5.6.33, výukový program se průběžně aktualizuje pro nové verze PHP, ale nepořizujeme pokaždé nové snímky obrazovky, takže verze PHP, kterou uvidíte na svém serveru, může být novější. Aktuální verze tohoto návodu je pro php-5.6.33.

5.4 Povolení PHP 5.6 v ISPConfig

V ISPConfig 3.1 můžete nakonfigurovat novou verzi PHP v části Systém> Další verze PHP. Na záložce Název pouze vyplníte název pro verzi PHP (např. PHP 5.6) - tato verze PHP bude pod tímto názvem uvedena v nastavení webu v ISPConfig:

Přejděte na kartu Nastavení FastCGI a vyplňte pole následovně:

Path to the PHP FastCGI binary: /opt/php-5.6/bin/php-cgi
Path to the php.ini directory: /opt/php-5.6/lib

Poté přejděte na kartu Nastavení PHP-FPM a vyplňte pole následovně:

Path to the PHP-FPM init script: php-5.6-fpm
Path to the php.ini directory: /opt/php-5.6/lib
Path to the PHP-FPM pool directory: /opt/php-5.6/etc/php-fpm.d

  • PHP:http://www.php.net/
  • ISPConfig:http://www.ispconfig.org/
  • Debian:http://www.debian.org/

Debian
  1. Jak vytvořit PHP 5.6 (PHP-FPM &FastCGI) pomocí Zend OPcache a APCu pro ISPConfig 3 na Debianu 7 (Wheezy)

  2. Jak nainstalovat PHP 8.0 na Debian 11

  3. Jak nainstalovat PHP 8.0 na Debian 10 / Debian 9

  1. Jak nainstalovat PHP 7.4 na Debian 10

  2. Jak nainstalovat PHP 8 na Debian 10

  3. Jak nainstalovat PHP na Debian 11

  1. Jak nainstalovat a používat PHP Composer na Debian 10

  2. Jak nainstalovat PHP na Debian 9

  3. Jak nainstalovat a používat PHP Composer na Debianu 9