První beta verze PHP 7 je nyní k dispozici ke stažení, PHP 7 je podle poznámek k vydání 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 (Beta) jako verzi PHP-FPM a FastCGI na serveru Debian Jessie. Tyto sestavení PHP 7 zahrnují Zend OPcache.
Předběžná poznámka
Nainstaluji PHP 7, které je v době psaní tohoto článku aktuálně v beta verzi. Vezměte prosím na vědomí, že PHP-FPM lze použít na serverech Apache i nginx, zatímco FastCGI je k dispozici pouze pro servery Apache.
U starších verzí PHP se PHP-FPM a FastCGI vzájemně vylučovaly, takže binární soubor fpm a FastCGI byly sestaveny samostatně. S PHP 7 lze oba binární soubory sestavit společně, takže nyní budeme muset udělat pouze jedno sestavení PHP.
Zkompilujte PHP 7 s PHP-FPM a Fastcgi
Stáhněte a rozbalte PHP 7:
mkdir -p /opt/php-7.0.0
mkdir /usr/local/src/php5-build
cd /usr/local/src/php5-build
wget https ://downloads.php.net/~ab/php-7.0.0beta1.tar.bz2 -O php-7.0.0.tar.bz2
tar jxf php-7.0.0.tar.bz2
cd php-7.0.0beta1/
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.0#
)
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.0 --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-mysqli --with-pdo-mysql --with-mysqli --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/php5-build/php-7.0.0beta1/php.ini-production /opt/php-7.0.0/lib/php.ini
cp /opt/php-7.0.0/etc/php-fpm.conf.default /opt/php-7.0.0/etc/php-fpm.conf
cp /opt/php-7.0. 0/etc/php-fpm.d/www.conf.default /opt/php-7.0.0/etc/php-fpm.d/www.conf
Otevřete /opt/php-7.0.0/etc/php-fpm.conf a upravte následující nastavení (odstraňte znak # před řádkem pid):
nano /opt/php-7.0.0/etc/php-fpm.conf
[...]pid =run/php-fpm.pid[...]
Poté otevřete /opt/php-7.0.0/etc/php-fpm.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.0.0/etc/php-fpm.d/www.conf
[...]poslech =127.0.0.1:8999[...]
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.0-fpm
#! /bin/sh### BEGIN INIT INFO# Poskytuje:php-7.0.0-fpm# Povinný-Start:$all# Povinný-Stop:$all# Výchozí-Start:2 3 4 5# Výchozí-Stop:0 1 6# Krátký popis:spouští php-7.0.0-fpm# Popis:spouští démona PHP FastCGI Process Manager### END INIT INFOphp_fpm_BIN=/opt/php-7.0.0/sbin/php-fpmphp_fpm_CONF=/opt/php -7.0.0/etc/php-fpm.confphp_fpm_PID=/opt/php-7.0.0/var/run/php-fpm.pidphp_opts="--fpm-config $php_fpm_CONF"wait_for_pid () { try=0 během 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.0-fpm
insserv php-7.0.0-fpm
A nyní vytvořte soubor systemd unit
nano /lib/systemd/system/php-7.0.0-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.0/var/run/php-fpm.pid
ExecStart=/opt/php-7.0.0/sbin/php-fpm --nodaemonize --fpm-config /opt/ php-7.0.0/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Instalovat]
WantedBy=multi-user.targetA znovu načtěte systemd:
systemctl daemon-reloadNakonec spusťte PHP-FPM.
U systémů s tradičním systémem init spusťte:
/etc/init.d/php-7.0.0-fpm startVýsledek by měl být:
/etc/init.d/php-7.0.0-fpm start
Spuštění php-fpm hotovoNa serverech, které používají systemd, použijte tento příkaz:
systemctl start php-7.0.0-fpm.serviceChcete-li povolit Zend OPcache, otevřete /opt/php-7.0.0/lib/php.ini...
nano /opt/php-7.0.0/lib/php.ini... a na konec přidejte následující řádek:
[...]zend_extension=opcache.soMemcache a rozšíření APCu zatím nelze nainstalovat na PHP 7, takže jejich instalaci prozatím vynechám. Tutoriál aktualizuji později, až budou rozšíření pecl kompatibilní s PHP 7.
Povolte 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.0/bin/php-cgi
Cesta k adresáři php.ini: /opt/php-7.0.0/lib
Poté přejděte na kartu Nastavení PHP-FPM a vyplňte pole následovně:
Cesta k iniciačnímu skriptu PHP-FPM: /etc/init.d/php-7.0.0-fpm
Cesta k adresáři php.ini: /opt/php-7.0.0/lib
Cesta k adresáři fondu PHP-FPM: /opt/php-7.0.0/etc/php-fpm.d
4 odkazy
- PHP:http://www.php.net/
- ISPConfig:http://www.ispconfig.org/
- Debian:http://www.debian.org/