Jak nainstalovat PHP 7.1 jako PHP-FPM a FastCGI pro ISPConfig 3.1 na Debian 8 (Jessie)

  • 6 min číst
  • Prosince 17, 2016

Jak nainstalovat PHP 7.1 jako PHP-FPM a FastCGI pro ISPConfig 3.1 na Debian 8 (Jessie)

Konečná verze PHP 7.1 je k dispozici ke stažení GitHub a zrcadla PHP nyní. PHP 7.1 je další generace programovacího jazyka PHP, je to až 2 krát rychlejší než PHP 5.6 a 14 krát rychleji než PHP 5.0 podle poznámky k vydání. Nová verze PHP není kompatibilní s 100% s PHP 5.x, neboť některé odstraněné API byly odstraněny, takže je dobré začít testovat vaše webové stránky, aby byly kompatibilní s touto novou verzí. To lze provést snadno a bez ovlivnění všech webů na vašem serveru pomocí funkce multi PHP verze v ISPConfig 3. Verze PHP může být vybrána v nastaveních webových stránek ISPConfig 3 pro jednotlivé stránky jednotlivě. Tato funkce pracuje s PHP-FPM a FastCGI. Tento tutoriál ukazuje, jak vytvořit nový PHP 7.1 jako verzi PHP-FPM a FastCGI na serveru Debian Jessie. Tato sestava PHP 7.1 obsahuje mnoho kompilovaných rozšíření a Zend OPcache a Memcached jako načtené moduly.

Předběžná poznámka 1

Budu nainstalovat PHP 7.1, který byl vydán jako finální verze před několika dny. Vezměte prosím na vědomí, že PHP-FPM lze použít na serverech Apache a 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í FPM a FastCGI musely být postaveny samostatně. S PHP 7.1 lze vytvořit jednu binární verzi, která podporuje režim FPM a FCGI.

2 Kompilace PHP 7.1 s PHP-FPM a Fastcgi

Stažení a extrakce PHP 7.1 z Githubu:

mkdir -p / opt / php-7.1
mkdir / usr / local / src / php7-build
cd / usr / local / src / php7-build
wget http://de1.php.net/get/php-7.1.0.tar.bz2/z/this/mirror -O php-7.1.0.tar.bz2
tar jxf php-7.1.0.tar.bz2

cd php-7.1.0 /

Nainstalujte předpoklady pro vytváření PHP 7.1 a editoru nano, který budu používat ke konfiguraci konfiguračních souborů:

apt-get nainstalovat build-essential nano autoconf

apt-get instalace libfcgi-dev libfcgi0ldbl libjcx-dev dbg libmcrypt-dev libssl-dev libc-client62e libc-client2007e-dev libxcx-dev libbc2007-dev libcurl2-dev libbcxNUMX-dev libpq-dev libxml2-dev libxslt4-dev

ln -s /usr/lib/libc-client.a/usr/lib/x86_64-linux-gnu/libc-client.a

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

kontrola krypty v -lcrypt ... ano
konfigurace: chyba: Nelze najít knihovnu imap (libc-client.a). Zkontrolujte prosím instalaci c-klienta.
[email chráněný]: / usr / local / src / php5-build / php-7.0.7 #

)

Konfigurovat a sestavit PHP 7.1 následujícím způsobem (můžete upravit příkaz ./configure podle svých potřeb, podívat se na

./configure -help

pro zobrazení všech dostupných možností; pokud používáte jiný příkaz ./configure, je možné, že jsou požadovány další knihovny nebo proces sestavení se nezdaří):

./configure -prefix = / opt / php-7.1 -with-pdo-pgsql -with-zlib-dir -with-freetype-dir -enable-mbstring -with-libxml-dir = kalendář -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 -povolení-bcmath -with-mhash -enable-zip -with-pcre-regex -with-pdo-mysql -with-mysqli -with-mysql-sock = /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- xsl -enable-opcache -enable-fpm

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

činit
make install

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

cp /usr/local/src/php7-build/php-7.1.0/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; pid linku):

nano /opt/php-7.1/etc/php-fpm.conf

[...] pid = run / php-fpm.pid [...]

Pak otevřete /opt/php-7.1/etc/php-fpm.d/www.conf a nastavte linku poslouchání, musíte použít nepoužívaný port (např. 8999; port 9000 může být již používán výchozím protokolem Debian FPM) :

nano /opt/php-7.1/etc/php-fpm.d/www.conf

[...] poslouchat = 127.0.0.1: 8999 [...]

Pokud používáte několik dalších verzí ve verzi PHP, zajistěte, aby byl pro další verze použit volný port, např. 8998, 8997 a tak dále.

3 Vytvořte soubor inicializačního skriptu a systémové jednotky

Debian podporuje Systemd, stejně jako tradiční initové skripty. Většina systémů dnes používá Systemd, v tomto případě postupujte podle kapitoly 3.2, pro systémy s tradičním systémem init, postupujte podle kapitoly 3.1 a pokračujte kapitolou 4. Neinstalujte skript systemd a init.d na stejném systému.

3.1 Vytvořte skript startu init.d

Nejprve vytvořím initový skript pro službu php-fpm a pak vytvořím systémovou jednotku.

Nejprve vytvořte initový skript pro PHP-FPM:

nano /etc/init.d/php-7.1-fpm

#! / bin / sh ### BEGIN INIT INFO # Poskytuje: php-7.1-fpm # Required-Start: $ all # Required-Stop: $ all # Výchozí-Start: 2 3 4 5 # Krátký popis: spustí php-0-fpm # Popis: spustí démon PHP ProcessCreator Process Manager ### END INIT INFO php_fpm_BIN = / opt / php-1 / sbin / php-fpm php_fpm_CONF = / opt / php-6 / etc /php-fpm.conf php_fpm_PID = / opt / php-7.1 / var / run / php-fpm.pid php_opts = "- fpm-config $ php_fpm_CONF" wait_for_pid () {try = 7.1 při testu $ try -lt 7.1; proveďte případ "$ 7.1" v "vytvořeném") pokud [-f "$ 0"]; pak zkuste = '' break fi ;; 'odstraněno') pokud [! -f "$ 2"]; pak zkuste = '' break fi ;; esac echo -n. zkuste = `expr $ try + 1` spánku 1 hotovo} případ" $ 1 "na začátku) echo -n" Spuštění php-fpm "$ php_fpm_BIN $ php_opts pokud [" $? " ! = 0]; pak echo "nezdařilo" ukončit 1 fi wait_for_pid vytvořeno $ php_fpm_PID pokud [-n "$ try"]; pak echo "nezdařilo" výstup 1 else echo "done" fi ;; stop) echo -n "laskavě vypíná php-fpm" pokud [! -r $ php_fpm_PID]; pak echo "varování, žádný soubor pid nalezen - php-fpm není spuštěn?" ukončit 1 fi kill - QUIT `cat $ php_fpm_PID wait_for_pid odebrán $ php_fpm_PID pokud [-n" $ try "]; pak echo "se nezdařilo. Použijte sílu-exit "exit 1 jiný echo" done "echo" done "fi;; force-quit) echo -n" Ukončení php-fpm "pokud [! -r $ php_fpm_PID]; pak echo "varování, žádný soubor pid nalezen - php-fpm není spuštěn?" ukončit 1 fi kill -TERM `cat $ php_fpm_PID` wait_for_pid odebrán $ php_fpm_PID pokud [-n" $ try "]; pak echo "nezdařilo" výstup 1 else echo "done" fi ;; restart) $ 0 stop $ 0 start ;; reload) echo -n "Znovu načíst službu php-fpm" pokud [! -r $ php_fpm_PID]; pak echo "varování, žádný soubor pid nalezen - php-fpm není spuštěn?" výstup 1 fi kill -USR2 `cat $ php_fpm_PID` echo" done ";; *) echo "Použití: $ 0 {start | stop | force-quit | restart | reload}" ukončení 1; esac

Proveďte spustitelný skript init a vytvořte spouštěcí odkazy systému:

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

Nakonec spusťte PHP-FPM:

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

Výsledkem by mělo být:

/etc/init.d/php-7.1-fpm start
Spuštěno spuštění php-fpm

3.2 Vytvořit systémový skript pro PHP 7.1

Nyní vytvořte soubor systémové jednotky:

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

s následujícím obsahem:

[Unit] Popis = Správce procesů PHP 7.1 FastCGI Po = network.target [Service] Type = jednoduchý PIDFile = / opt / php-7.1 / var / run / php-fpm.pid ExecStart = / opt / php -7.1 / sbin / php-fpm --nodaemonizovat --fpm-config /opt/php-7.1/etc/php-fpm.conf ExecReload = / bin / kill -USR2 $ MAINPID [Instalovat] WantedBy = multi-user.target

Aktivovat službu a obnovit systém:

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

Nakonec spusťte PHP-FPM:

systemctl spustit php-7.1-fpm.service

4 Aktivovat Zend OPcache

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

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

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

[...] zend_extension = opcache.so

Rozšíření Memcache a APCu nelze na PHP 7.1 dosud nainstalovat, takže pro tuto instalaci přeskočím. Aktualizuji tutoriál později, když jsou rozšíření pecl kompatibilní s PHP 7.1.

Otestujte verzi PHP:

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

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

PHP 7.1 s povoleným OPcache

Upozornění: Záběr obrazovky je z PHP 7.1.0, návod se průběžně aktualizuje pro nové verze jazyka PHP 7.1, ale nezískáváme nové screenshoty, takže PHP 7.1 verze, kterou uvidíte na vašem serveru, může být novější. Aktuální verze tohoto tutoriálu je pro php-7.1.0.

5 Enable Memcache (volitelné)

V této kapitole budu kompilovat a povolit rozšíření PHP Memcached.

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

apt-get nainstalovat libmemcached-dev

Pak vytvořte direktorium, stáhněte si příponu PHP memcache od společnosti Github, rozbalte archiv a zadejte adresář obsahující nevybalené soubory.

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

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

/ opt / php-7.1 / bin / phpize

Nakonfigurujte a vytvořte rozšíření PHP memcache.

./configure -with-php-config = / opt / php-7.1 / bin / php-config
činit
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 konci přidejte následující řádek:

[...] rozšíření = memcached.so

6 Povolit PHP 7.1 v ISPConfig

Ve verzi ISPConfig 3 můžete nakonfigurovat novou verzi PHP v části System> Additional PHP Versions. Na kartě Jméno vyplňte název PHP verze (např. PHP 7.1) - tato verze PHP bude uvedena pod tímto názvem v nastavení webových stránek v ISPConfig:

Zadejte název vlastní verze PHP

Přejděte na záložku Nastavení FastCGI a vyplňte následující pole:

Cesta k binární verzi PHP FastCGI: / opt / php-7.1 / bin / php-cgi
Cesta do adresáře php.ini: / opt / php-7.1 / lib

PHP 7.1 FastCGI

Potom g na záložce Nastavení PHP-FPM a vyplňte následující pole:

Cesta k init skriptu PHP-FPM: /etc/init.d/php-7.1-fpm
Cesta do adresáře php.ini: / opt / php-7.1 / lib
Cesta k adresáři fondu PHP-FPM: /opt/php-7.1/etc/php-fpm.d

Nastavení jazyka PHP 7.1 FPM

Zdroj

Související příspěvek:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *