GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat PHP 7 jako PHP-FPM &FastCGI pro ISPConfig 3 na Debian 8 (Jessie)

Finální verze PHP 7 je nyní k dispozici ke stažení na Github a v PHP mirrorech. PHP7 je další generací programovacího jazyka PHP, podle poznámek k verzi je až 2krát rychlejší než PHP 5.6 a 14krát rychlejší než PHP 5.0. Nová verze PHP není 100% kompatibilní s PHP 5.x, protože některá zastaralá API byla odstraněna, takže je dobré začít testovat vaše webové stránky na kompatibilitu s touto novou verzí. To lze provést snadno a bez ovlivnění všech webů na vašem serveru pomocí funkce více verzí PHP v ISPConfig 3. Verzi PHP lze vybrat v nastavení webu ISPConfig 3 pro každý web jednotlivě. Tato funkce funguje s PHP-FPM a FastCGI. Tento tutoriál ukazuje, jak vytvořit nové PHP 7 jako verzi PHP-FPM a FastCGI na serveru Debian Jessie. Tyto sestavení PHP 7 zahrnují Zend OPcache.

1 předběžná poznámka

Nainstaluji PHP 7, které je v době psaní tohoto článku aktuálně v beta verzi. Upozorňujeme, že PHP-FPM lze použít na serverech Apache i Nginx, zatímco FastCGI je k dispozici pouze pro servery Apache.

Se staršími verzemi PHP se PHP-FPM a FastCGI vzájemně vylučovaly, takže binární soubor FPM a FastCGI musel být sestaven samostatně. S PHP 7 lze sestavit jeden binární soubor, který podporuje režimy FPM a FCGI.

2 Kompilace PHP 7 s PHP-FPM a Fastcgi

Stáhněte a extrahujte PHP 7 z Github:

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

Nainstalujte si předpoklady pro sestavení PHP 7 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-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libxml2-dev libbz2-dev-dev libbz2-dev-slvde libpjpj4 libkrb5-dev libpq-dev libxml2-dev libxslt1-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a

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

kontrola crypt v -lcrypt... yes
configure:error:Nelze najít knihovnu imap (libc-client.a). Zkontrolujte prosím instalaci svého c-clienta.
[e-mail chráněný]:/usr/local/src/php5-build/php-7.0.32#

)

Nakonfigurujte a sestavte PHP 7.0.0 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.0.32 --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- optimalizace --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.

provést
provést instalaci

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

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

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

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

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

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

3 Vytvořte init skript a soubor systemd unit

Debian podporuje Systemd i tradiční init skripty. Nejprve vytvořím init skript pro službu php-fpm a poté vytvořím jednotku systemd.

Nejprve vytvořte init skript pro PHP-FPM:

nano /etc/init.d/php-7.0.32-fpm
#! /bin/sh### BEGIN INIT INFO# Poskytuje:php-7.0.32-fpm# Povinný-Start:$all# Povinný-Stop:$all# Výchozí-Start:2 3 4 5# Výchozí-Stop:0 1 6# Stručný popis:spouští php-7.0.32-fpm# Popis:spouští démona PHP FastCGI Process Manager### END INIT INFOphp_fpm_BIN=/opt/php-7.0.32/sbin/php-fpmphp_fpm_CONF=/opt/php -7.0.32/etc/php-fpm.confphp_fpm_PID=/opt/php-7.0.32/var/run/php-fpm.pidphp_opts="--fpm-config $php_fpm_CONF"wait_for_pid () { try=0 při testu $zkuste -lt 35; do case "$1" v 'vytvořeno') if [ -f "$2" ]; pak try='' break fi;; 'odstraněno'), pokud [ ! -f "$2" ]; pak try='' break fi;; esac echo -n . try=`expr $try + 1` spánek 1 hotovo}případ "$1" na začátku) echo -n "Spouštění php-fpm " $php_fpm_BIN $php_opts if [ "$?" !=0]; potom echo "selhal" exit 1 fi wait_for_pid vytvořen $php_fpm_PID if [ -n "$try" ]; potom echo "selhal" exit 1 else echo "hotovo" fi;; stop) echo -n "Slušné vypnutí php-fpm" pokud [ ! -r $php_fpm_PID ]; pak echo "varování, nebyl nalezen žádný soubor pid - php-fpm neběží?" exit 1 fi kill -QUIT `cat $php_fpm_PID` wait_for_pid odstraněn $php_fpm_PID if [ -n "$try" ]; potom echo " selhalo. Použít vynucený konec" exit 1 else echo " done" echo " done" fi;; force-quit) echo -n "Ukončování php-fpm" pokud [ ! -r $php_fpm_PID ]; pak echo "varování, nebyl nalezen žádný soubor pid - php-fpm neběží?" exit 1 fi kill -TERM `cat $php_fpm_PID` wait_for_pid odstraněn $php_fpm_PID if [ -n "$try" ]; potom echo "selhal" exit 1 else echo "hotovo" fi;; restart) $0 stop $0 start;; reload) echo -n "Reload service php-fpm " if [ ! -r $php_fpm_PID ]; pak echo "varování, nebyl nalezen žádný soubor pid - php-fpm neběží?" exit 1 fi kill -USR2 `cat $php_fpm_PID` echo " done";; *) echo "Použití:$0 {start|stop|force-quit|restart|reload}" exit 1;;esac

Vytvořte spustitelný init skript a vytvořte odkazy pro spuštění systému:

chmod 755 /etc/init.d/php-7.0.32-fpm
insserv php-7.0.32-fpm

A nyní vytvořte soubor systemd unit

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

s následujícím obsahem:

[Unit]
Description=Správce procesů PHP 7 FastCGI
After=network.target

[Služba]
Typ=jednoduchý
soubor PIDF =/opt/php-7.0.32/var/run/php-fpm.pid
ExecStart=/opt/php-7.0.32/sbin/php-fpm --nodaemonize --fpm-config /opt/ php-7.0.32/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Instalovat]
WantedBy=multi-user.target

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

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

Nakonec spusťte PHP-FPM.

U systémů s tradičním systémem init spusťte:

/etc/init.d/php-7.0.32-fpm start

Výsledek by měl být:

/etc/init.d/php-7.0.32-fpm start
Spuštění php-fpm hotovo

Na serverech, které používají systemd, použijte tento příkaz:

systemctl start php-7.0.32-fpm.service

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

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

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

[...]zend_extension=opcache.so

Rozšíření Memcache a APCu zatím nelze nainstalovat na PHP 7, takže jejich instalaci zatím vynechám. Tutoriál aktualizuji později, až budou rozšíření pecl kompatibilní s PHP 7.

Otestujte verzi PHP:

cd /opt/php-7.0.32/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.0.0, výukový program se průběžně aktualizuje pro nové verze PHP 7, ale nepořizujeme pokaždé nové snímky obrazovky, takže verze PHP 7, kterou uvidíte na svém serveru, je pravděpodobně novější. Aktuální verze tohoto návodu je pro php-7.0.32.

4 Povolit PHP 7 v ISPConfig

V ISPConfig 3 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.0.0) - 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ě:

Cesta k binárnímu PHP FastCGI: /opt/php-7.0.32/bin/php-cgi
Cesta k adresáři php.ini: /opt/php-7.0.32/lib

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

Cesta k iniciačnímu skriptu PHP-FPM: php-7.0.32-fpm
Cesta k adresáři php.ini: /opt/php-7.0.32/lib
Cesta k adresáři fondu PHP-FPM: /opt/php-7.0.32/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 na Debian 11

  3. Jak nainstalovat PHP 7.2 na Debian 9

  1. Jak nainstalovat PHP na Debian 9

  2. Jak nainstalovat PHP 8 na Debian 10

  3. Jak nainstalovat PHP 7.3 na Debian 10