Як встановити PHP 7.1 як PHP-FPM і FastCGI для ISPConfig 3.1 на Debian 8 (Jessie)
Остаточна версія PHP 7.1 доступна для завантаження Github і дзеркала PHP зараз. PHP 7.1 - це наступне покоління мови програмування PHP, це до 2 разів швидше, ніж PHP 5.6 і 14 разів швидше, ніж PHP 5.0 відповідно до приміток до випуску. Нова версія PHP не сумісна з 100% з PHP 5.x, оскільки деякі застарілі API були вилучені, тому рекомендується почати тестування веб-сайтів на сумісність з новим випуском. Це можна зробити легко, не впливаючи на всі сайти на вашому сервері, використовуючи функцію декількох версій PHP у ISPConfig 3. Версію PHP можна вибрати в налаштуваннях веб-сайту ISPConfig 3 для кожного сайту окремо. Ця функція працює з PHP-FPM та FastCGI. Цей підручник показує, як створити новий PHP 7.1 як PHP-FPM та FastCGI-версію на сервері Jessie Debian. Цей PHP 7.1 складається з багатьох складених у розширеннях та Zend OPcache та Memcached як завантажуваних модулів.
Попередня примітка 1
Я встановлю PHP 7.1, який був випущений як остання версія кілька днів тому. Зверніть увагу, що PHP-FPM може використовуватися як на серверах Apache, так і на Nginx, тоді як FastCGI доступний лише для серверів Apache.
У старих версіях PHP PHP-FPM та FastCGI були взаємовиключними, тому бинарність FPM та FastCGI повинна бути побудована окремо. За допомогою PHP 7.1 можна побудувати єдиний бінарний файл, що підтримує режим FPM та FCGI.
2 Скомпонуйте PHP 7.1 з PHP-FPM та Fastcgi
Завантажте та витягніть PHP 7.1 з Github:
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/from/this/mirror -O php-7.1.0.tar.bz2
tar jxf php-7.1.0.tar.bz2
cd php-7.1.0 /
Встановіть необхідні умови для побудови PHP 7.1 та nano-редактора, які я буду використовувати для редагування файлів конфігурації:
apt-get install install-essential nano autoconf
APT-отримати установку libfcgi-DEV libfcgi0ldbl libjpeg62-турбо-DBG libmcrypt-DEV libssl-DEV Libc-client2007e Libc-client2007e-DEV libxml2-DEV libbz2-DEV libcurl4-OpenSSL-DEV libjpeg-DEV libpng12-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
(Остання команда потрібна, якщо ви створюєте PHP з -with-imap, тому що інакше. / Configure не зупиниться з наступною помилкою:
перевірити скріпт в -lcrypt ... так
configure: error: Не вдається знайти бібліотеку imap (libc-client.a). Будь ласка, перевірте встановлення c-клієнта.
[email protected]: / usr / local / src / php5-build / php-7.0.7 #
)
Налаштуйте та створюйте PHP 7.1 таким чином (ви можете налаштувати команду ./configure відповідно до ваших потреб, подивіться на
./configure -help
щоб побачити всі доступні варіанти; якщо ви використовуєте іншу команду ./configure, можливо, що потрібні додаткові бібліотеки, або процес збирання не буде виконаний):
./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 -inable-inline-optimization -with-bz2 -with-zlib -enable-sockets -enable-sysvsem -enable- sysvshm -enable-pcntl -enable-mablebex -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
Останній перемикач (-enable-fpm) гарантує, що ця PHP-версія буде працювати з PHP-FPM.
зробити
зробити установку
Скопіюйте php.ini та php-fpm.conf у правильні місця розташування:
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
Відкрийте /opt/php-7.1/etc/php-fpm.conf та налаштуйте наступну настройку (видаліть перед передньою лінією):
nano /opt/php-7.1/etc/php-fpm.conf
[...] pid = run / php-fpm.pid [...]
Потім відкрийте /opt/php-7.1/etc/php-fpm.d/www.conf та налаштуйте рядок прослуховування, ви повинні використовувати невикористовуваний порт (наприклад, 8999; порт 9000 може бути використаний за замовчуванням Debian за замовчуванням PHP-FPM). :
nano /opt/php-7.1/etc/php-fpm.d/www.conf
[...] слухати = 127.0.0.1: 8999 [...]
Якщо ви використовуєте декілька додаткових версій PHP, то для наступних версій використовуйте безкоштовний порт, наприклад, 8998, 8997 і так далі.
3 Створіть ініціативний скрипт та файл системного блоку
Debian підтримує Systemd, а також традиційні сценарії init. Більшість систем сьогодні використовують Systemd, в цьому випадку продовжуйте використовувати розділ 3.2 для систем із традиційною системою init, дотримуйтесь розділу 3.1, а потім перейдіть до розділу 4. Не встановлюйте як системний, так і init.d-скрипт на тій самій системі.
3.1 Створіть сценарій запуску init.d
Спочатку я створить сценарій init для служби php-fpm, а потім створить системний блок.
Спершу створіть сценарій init для PHP-FPM:
nano /etc/init.d/php-7.1-fpm
#! /bin/sh
### BEGIN INIT INFO
# Provides: php-7.1-fpm
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-7.1-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-7.1/sbin/php-fpm
php_fpm_CONF=/opt/php-7.1/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=0
while test $try -lt 35 ; do
case "$1" in
'created')
if [ -f "$2" ] ; then
try=''
break
fi
;;
'removed')
if [ ! -f "$2" ] ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed. Use force-exit"
exit 1
else
echo " done"
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esac
Зробіть ініціалізований скрипт виконуваним і створіть системні пускові посилання:
chmod 755 /etc/init.d/php-7.1-fpm
insserv php-7.1-fpm
Нарешті запустіть PHP-FPM:
/etc/init.d/php-7.1-fpm початок
Результатом має бути:
/etc/init.d/php-7.1-fpm початок
Запуск php-fpm виконано
3.2 Створити сценарій Systemd для PHP 7.1
Тепер створіть файл systemd:
nano /lib/systemd/system/php-7.1-fpm.service
з наступним вмістом:
[Unit] Опис = PHP-7.1 FastCGI Process Manager Після = network.target [Сервіс] Тип = простий 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 [Встановити] WantedBy = multi-user.target
Увімкнути службу та перезавантажити systemd:
systemctl увімкнути php-7.1-fpm.service
systemctl daemon-перезавантаження
Нарешті запустіть PHP-FPM:
systemctl почати php-7.1-fpm.service
4 Увімкнути Zend OPcache
Щоб увімкнути Zend OPcache, відкрийте /opt/php-7.1/lib/php.ini...
nano /opt/php-7.1/lib/php.ini
... і в кінці додати наступний рядок:
[...] zend_extension = opacache.so
Розширення Memcache та APCu ще не можна встановити на PHP 7.1, тому я пропущу їх інсталяцію. Я оновлю підручник пізніше, коли розширення pecl сумісні з PHP 7.1.
Перевірте версію PHP:
cd / opt / php-7.1 / bin
./php-версія
Вихід має бути схожим на цей скріншот.

Будь ласка, запиши: Знімок вікна з PHP 7.1.0, навчальний посібник постійно оновлюється для нових версій PHP 7.1, але ми не приймаємо нових скріншотів кожного разу, тому версія PHP 7.1, яку ви побачите на своєму сервері, може бути новою. Поточна версія цього підручника для php-7.1.0.
5 Увімкнути Memcache (необов'язково)
У цьому розділі я буду компілювати та вмикати розширення PHP Memcached.
Перший крок - встановити пакет libmemcached-dev з Debian.
apt-get install libmemcached-dev
Потім створіть директиву, завантажте розширення PHP memcache з Github, розпакуйте архів і введіть каталог, що містить розпаковані файли.
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
розпакуйте php7.zip
cd php-memcached-php7
Підготовка його джерел, запустивши команду phpize з PHP 7.1.
/ opt / php-7.1 / bin / phpize
Налаштуйте та створіть розширення PHP memcache.
./configure -with-php-config = / opt / php-7.1 / bin / php-config
зробити
зробити установку
Щоб увімкнути розширення Memcache, відкрийте /opt/php-7.1/lib/php.ini...
nano /opt/php-7.1/lib/php.ini
... і в кінці додати наступний рядок:
[...] розширення = memcached.so
6 Увімкніть PHP 7.1 у ISPConfig
У ISPConfig 3 ви можете налаштувати нову версію PHP за допомогою системи> Додаткові версії PHP. На вкладці Ім'я ви просто введете назву для версії PHP (наприклад, PHP 7.1) - ця версія PHP буде вказана під цим ім'ям в налаштуваннях веб-сайту в ISPConfig:

Перейдіть на вкладку "Настройки FastCGI" і заповніть поля, як вказано нижче.
Шлях до PHP FastCGI двійковий: / opt / php-7.1 / bin / php-cgi
Шлях до каталогу php.ini: / opt / php-7.1 / lib

Потім перейдіть на вкладку Параметри PHP-FPM та заповніть поля наступним чином:
Шлях до сценарію ініціалізації PHP-FPM: /etc/init.d/php-7.1-fpm
Шлях до каталогу php.ini: / opt / php-7.1 / lib
Шлях до каталогу пулів PHP-FPM: /opt/php-7.1/etc/php-fpm.d

Посилання 7
джерело
Як встановити PHP 7.1 як PHP-FPM і FastCGI для ISPConfig 3.1 на Debian 8 (Jessie)
Як встановити PHP 7.1 як PHP-FPM і FastCGI для ISPConfig 3.1 на Debian 8 (Jessie)
Остаточна версія PHP 7.1 доступна для завантаження Github і дзеркала PHP зараз. PHP 7.1 - це наступне покоління мови програмування PHP, це до 2 разів швидше, ніж PHP 5.6 і 14 разів швидше, ніж PHP 5.0 відповідно до приміток до випуску. Нова версія PHP не сумісна з 100% з PHP 5.x, оскільки деякі застарілі API були вилучені, тому рекомендується почати тестування веб-сайтів на сумісність з новим випуском. Це можна зробити легко, не впливаючи на всі сайти на вашому сервері, використовуючи функцію декількох версій PHP у ISPConfig 3. Версію PHP можна вибрати в налаштуваннях веб-сайту ISPConfig 3 для кожного сайту окремо. Ця функція працює з PHP-FPM та FastCGI. Цей підручник показує, як створити новий PHP 7.1 як PHP-FPM та FastCGI-версію на сервері Jessie Debian. Цей PHP 7.1 складається з багатьох складених у розширеннях та Zend OPcache та Memcached як завантажуваних модулів.
Попередня примітка 1
Я встановлю PHP 7.1, який був випущений як остання версія кілька днів тому. Зверніть увагу, що PHP-FPM може використовуватися як на серверах Apache, так і на Nginx, тоді як FastCGI доступний лише для серверів Apache.
У старих версіях PHP PHP-FPM та FastCGI були взаємовиключними, тому бинарність FPM та FastCGI повинна бути побудована окремо. За допомогою PHP 7.1 можна побудувати єдиний бінарний файл, що підтримує режим FPM та FCGI.
2 Скомпонуйте PHP 7.1 з PHP-FPM та Fastcgi
Завантажте та витягніть PHP 7.1 з Github:
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/from/this/mirror -O php-7.1.0.tar.bz2
tar jxf php-7.1.0.tar.bz2
cd php-7.1.0 /
Встановіть необхідні умови для побудови PHP 7.1 та nano-редактора, які я буду використовувати для редагування файлів конфігурації:
apt-get install install-essential nano autoconf
APT-отримати установку libfcgi-DEV libfcgi0ldbl libjpeg62-турбо-DBG libmcrypt-DEV libssl-DEV Libc-client2007e Libc-client2007e-DEV libxml2-DEV libbz2-DEV libcurl4-OpenSSL-DEV libjpeg-DEV libpng12-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
(Остання команда потрібна, якщо ви створюєте PHP з -with-imap, тому що інакше. / Configure не зупиниться з наступною помилкою:
перевірити скріпт в -lcrypt ... так
configure: error: Не вдається знайти бібліотеку imap (libc-client.a). Будь ласка, перевірте встановлення c-клієнта.
[email protected]: / usr / local / src / php5-build / php-7.0.7 #
)
Налаштуйте та створюйте PHP 7.1 таким чином (ви можете налаштувати команду ./configure відповідно до ваших потреб, подивіться на
./configure -help
щоб побачити всі доступні варіанти; якщо ви використовуєте іншу команду ./configure, можливо, що потрібні додаткові бібліотеки, або процес збирання не буде виконаний):
./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 -inable-inline-optimization -with-bz2 -with-zlib -enable-sockets -enable-sysvsem -enable- sysvshm -enable-pcntl -enable-mablebex -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
Останній перемикач (-enable-fpm) гарантує, що ця PHP-версія буде працювати з PHP-FPM.
зробити
зробити установку
Скопіюйте php.ini та php-fpm.conf у правильні місця розташування:
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
Відкрийте /opt/php-7.1/etc/php-fpm.conf та налаштуйте наступну настройку (видаліть перед передньою лінією):
nano /opt/php-7.1/etc/php-fpm.conf
Потім відкрийте /opt/php-7.1/etc/php-fpm.d/www.conf та налаштуйте рядок прослуховування, ви повинні використовувати невикористовуваний порт (наприклад, 8999; порт 9000 може бути використаний за замовчуванням Debian за замовчуванням PHP-FPM). :
nano /opt/php-7.1/etc/php-fpm.d/www.conf
Якщо ви використовуєте декілька додаткових версій PHP, то для наступних версій використовуйте безкоштовний порт, наприклад, 8998, 8997 і так далі.
3 Створіть ініціативний скрипт та файл системного блоку
Debian підтримує Systemd, а також традиційні сценарії init. Більшість систем сьогодні використовують Systemd, в цьому випадку продовжуйте використовувати розділ 3.2 для систем із традиційною системою init, дотримуйтесь розділу 3.1, а потім перейдіть до розділу 4. Не встановлюйте як системний, так і init.d-скрипт на тій самій системі.
3.1 Створіть сценарій запуску init.d
Спочатку я створить сценарій init для служби php-fpm, а потім створить системний блок.
Спершу створіть сценарій init для PHP-FPM:
nano /etc/init.d/php-7.1-fpm
Зробіть ініціалізований скрипт виконуваним і створіть системні пускові посилання:
chmod 755 /etc/init.d/php-7.1-fpm
insserv php-7.1-fpm
Нарешті запустіть PHP-FPM:
/etc/init.d/php-7.1-fpm початок
Результатом має бути:
/etc/init.d/php-7.1-fpm початок
Запуск php-fpm виконано
3.2 Створити сценарій Systemd для PHP 7.1
Тепер створіть файл systemd:
nano /lib/systemd/system/php-7.1-fpm.service
з наступним вмістом:
Увімкнути службу та перезавантажити systemd:
systemctl увімкнути php-7.1-fpm.service
systemctl daemon-перезавантаження
Нарешті запустіть PHP-FPM:
systemctl почати php-7.1-fpm.service
4 Увімкнути Zend OPcache
Щоб увімкнути Zend OPcache, відкрийте /opt/php-7.1/lib/php.ini...
nano /opt/php-7.1/lib/php.ini
... і в кінці додати наступний рядок:
Розширення Memcache та APCu ще не можна встановити на PHP 7.1, тому я пропущу їх інсталяцію. Я оновлю підручник пізніше, коли розширення pecl сумісні з PHP 7.1.
Перевірте версію PHP:
cd / opt / php-7.1 / bin
./php-версія
Вихід має бути схожим на цей скріншот.
Будь ласка, запиши: Знімок вікна з PHP 7.1.0, навчальний посібник постійно оновлюється для нових версій PHP 7.1, але ми не приймаємо нових скріншотів кожного разу, тому версія PHP 7.1, яку ви побачите на своєму сервері, може бути новою. Поточна версія цього підручника для php-7.1.0.
5 Увімкнути Memcache (необов'язково)
У цьому розділі я буду компілювати та вмикати розширення PHP Memcached.
Перший крок - встановити пакет libmemcached-dev з Debian.
apt-get install libmemcached-dev
Потім створіть директиву, завантажте розширення PHP memcache з Github, розпакуйте архів і введіть каталог, що містить розпаковані файли.
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
розпакуйте php7.zip
cd php-memcached-php7
Підготовка його джерел, запустивши команду phpize з PHP 7.1.
/ opt / php-7.1 / bin / phpize
Налаштуйте та створіть розширення PHP memcache.
./configure -with-php-config = / opt / php-7.1 / bin / php-config
зробити
зробити установку
Щоб увімкнути розширення Memcache, відкрийте /opt/php-7.1/lib/php.ini...
nano /opt/php-7.1/lib/php.ini
... і в кінці додати наступний рядок:
6 Увімкніть PHP 7.1 у ISPConfig
У ISPConfig 3 ви можете налаштувати нову версію PHP за допомогою системи> Додаткові версії PHP. На вкладці Ім'я ви просто введете назву для версії PHP (наприклад, PHP 7.1) - ця версія PHP буде вказана під цим ім'ям в налаштуваннях веб-сайту в ISPConfig:
Перейдіть на вкладку "Настройки FastCGI" і заповніть поля, як вказано нижче.
Шлях до PHP FastCGI двійковий: / opt / php-7.1 / bin / php-cgi
Шлях до каталогу php.ini: / opt / php-7.1 / lib
Потім перейдіть на вкладку Параметри PHP-FPM та заповніть поля наступним чином:
Шлях до сценарію ініціалізації PHP-FPM: /etc/init.d/php-7.1-fpm
Шлях до каталогу php.ini: / opt / php-7.1 / lib
Шлях до каталогу пулів PHP-FPM: /opt/php-7.1/etc/php-fpm.d
Посилання 7
джерело