Установка нескольких версий PHP на ISPConfig 3.1

В этом руководстве показано, как установить несколько версий PHP на сервер ISPConfig Debian. Версия PHP позже может быть выбрана в настройках веб-сайта ISPConfig 3 для каждого сайта в отдельности. Эта функция работает с PHP-FPM и FastCGI. Мы установим PHP 5.6 и 7.x в качестве PHP-FPM и версии FastCGI на сервере Debian, используя пакеты PHP из sury.org .

1 Предисловие

Я установлю PHP непосредственно с сайта сопровождающих пакетов Debian PHP https://packages.sury.org/php / с помощью apt-get. Это не приведет к перезаписи существующей установки, но изменит используемую по умолчанию версию PHP на самую новую установленную! Поэтому очень важно добавить новую версию PHP для установленной версии в ISPConfig и сначала перевести все сайты на эту версию. Если вы используете задания cron, вызывающие PHP-скрипты, вам также придется их адаптировать, подробнее об этом позже.

Поскольку другие пакеты, такие как openssl, также обновляются, установленные пакеты из sury.org нельзя просто удалить после установки. Сначала вам нужно понизить рейтинг этих пакетов до версий Debian, прежде чем вы сможете удалить пакеты PHP, не нарушая работу других пакетов. Самым простым способом для меня было деактивировать новый добавленный репозиторий, а затем установить пакеты из sury.org будут отображаться как самостоятельно созданные или устаревшие пакеты в aptitude, и вы сможете понижать рейтинг пакета за пакетом.

Пожалуйста, обратите внимание, что PHP-FPM можно использовать как на серверах Apache, так и на серверах Nginx, в то время как FastCGI доступен только для серверов Apache.

2 Включите версии PHP в ISPConfig

В ISPConfig 3 вы можете настроить новые версии PHP в разделе Система > Дополнительные версии PHP.

Добавить версию Debian PHP

Вы можете пропустить этот шаг, если у вас не установлена версия PHP Debian.

Прежде всего, вы должны добавить новую версию для уже установленной версии PHP. На вкладке Имя вы просто вводите имя для версии PHP (например, Debian 5.6) - эта версия PHP будет указана под этим именем в настройках веб-сайта в ISPConfig:

Enter the name of the custom PHP version

Перейдите на вкладку настроек FastCGI и заполните поля следующим образом:

Path to the PHP FastCGI binary: php5-cgi
Path to the php.ini directory: /etc/php5/cgi/php.ini

PHP 7.1 FastCGI

Затем перейдите на вкладку настроек PHP-FPM и заполните поля следующим образом:

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

PHP 7.1 FPM settings

Важный шаг для заданий cron

Если вы используете задания cron, вызывающие PHP-скрипты, вы также должны указать cron, какую версию использовать. Добавьте php5 в начало команды, чтобы использовать версию Debian. Если вы не уверены, что именно используете, перейдите по символической ссылке /usr/bin/php и используйте ее конечный пункт назначения в качестве префикса.

Добавление других версий PHP

В настоящее время существует 3 версии, доступные по адресу https://packages.sury.org/php / и теперь вы должны повторить последний шаг для каждой версии, которую вы будете устанавливать. Но вместо этого используйте следующие настройки:

PHP 5.6

Path to the PHP FastCGI binary: php-cgi5.6
Path to the php.ini directory: /etc/php/5.6/cgi/php.ini
Path to the PHP-FPM init script: php5.6-fpm
Path to the php.ini directory: /etc/php/5.6/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/5.6/fpm/pool.d

Версия cli, например, для заданий cron, имеет имя php5.6.

PHP 7.0

Path to the PHP FastCGI binary: php-cgi7.0
Path to the php.ini directory: /etc/php/7.0/cgi/php.ini
Path to the PHP-FPM init script: php7.0-fpm
Path to the php.ini directory: /etc/php/7.0/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.0/fpm/pool.d

Версия cli, например, для заданий cron, имеет имя php7.0.

PHP 7.1

Path to the PHP FastCGI binary: php-cgi7.1
Path to the php.ini directory: /etc/php/7.1/cgi/php.ini
Path to the PHP-FPM init script: php7.1-fpm
Path to the php.ini directory: /etc/php/7.1/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.1/fpm/pool.d

Версия cli, например, для заданий cron, имеет имя php7.1.

PHP 7.2

Path to the PHP FastCGI binary: php-cgi7.2
Path to the php.ini directory: /etc/php/7.2/cgi/php.ini
Path to the PHP-FPM init script: php7.2-fpm
Path to the php.ini directory: /etc/php/7.2/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.2/fpm/pool.d

Версия cli, например, для заданий cron, имеет имя php7.2.

PHP 7.3

Path to the PHP FastCGI binary: php-cgi7.3
Path to the php.ini directory: /etc/php/7.3/cgi/php.ini
Path to the PHP-FPM init script: php7.3-fpm
Path to the php.ini directory: /etc/php/7.3/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.3/fpm/pool.d

Версия cli, например, для заданий cron, имеет имя php7.3.

PHP 7.4

Path to the PHP FastCGI binary: php-cgi7.4
Path to the php.ini directory: /etc/php/7.4/cgi/php.ini
Path to the PHP-FPM init script: php7.4-fpm
Path to the php.ini directory: /etc/php/7.4/fpm/php.ini
Path to the PHP-FPM pool directory: /etc/php/7.4/fpm/pool.d

Версия cli, например, для заданий cron, имеет имя php7.4.

3 Изменение версии PHP веб-сайтов

Вы можете пропустить этот шаг, если у вас не установлена версия PHP Debian.

Теперь измените версию PHP всех веб-сайтов на недавно созданную версию (например, Debian 5.6).

И не забудьте изменить задания cron, как упоминалось выше.

4 Добавьте репозиторий по адресу packages.sury.org

Чтобы добавить репозиторий по адресу packages.sury.org и его BGP-ключи для apt используют эти команды:

apt-get install -y apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

Следующая команда - это всего одна строка, не добавляйте никаких разрывов строк:

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt-get update

Чтобы обновить уже установленные пакеты из нового репозитория, используйте эту команду:

apt-get upgrade

5 Установите PHP с packages.sury.org

Я предлагаю здесь несколько вариантов установки, пожалуйста, выберите нужные версии и просто пропустите остальные!

5.1 установка PHP 5.6

Чтобы установить PHP, используйте эту команду:

apt-get install php5.6 php5.6-cli php5.6-cgi php5.6-fpm php5.6-gd php5.6-mysql php5.6-imap php5.6-curl php5.6-intl php5.6-pspell php5.6-recode php5.6-sqlite3 php5.6-tidy php5.6-xmlrpc php5.6-xsl php5.6-zip php5.6-mbstring php5.6-soap php5.6-opcache libicu65 php5.6-common php5.6-json php5.6-readline php5.6-xml

5.2 установка PHP 7.0

Чтобы установить PHP, используйте эту команду:

apt-get install php7.0 php7.0-cli php7.0-cgi php7.0-fpm php7.0-gd php7.0-mysql php7.0-imap php7.0-curl php7.0-intl php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-zip php7.0-mbstring php7.0-soap php7.0-opcache php7.0-common php7.0-json php7.0-readline php7.0-xml

5.3 установка PHP 7.1

Чтобы установить PHP, используйте эту команду:

apt-get install php7.1 php7.1-cli php7.1-cgi php7.1-fpm php7.1-gd php7.1-mysql php7.1-imap php7.1-curl php7.1-intl php7.1-pspell php7.1-recode php7.1-sqlite3 php7.1-tidy php7.1-xmlrpc php7.1-xsl php7.1-zip php7.1-mbstring php7.1-soap php7.1-opcache php7.1-common php7.1-json php7.1-readline php7.1-xml

5.4 установка PHP 7.2

Чтобы установить PHP, используйте эту команду:

apt-get install php7.2 php7.2-cli php7.2-cgi php7.2-fpm php7.2-gd php7.2-mysql php7.2-imap php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl php7.2-zip php7.2-mbstring php7.2-soap php7.2-opcache php7.2-common php7.2-json php7.2-readline php7.2-xml

5.5 установка PHP 7.3

Чтобы установить PHP, используйте эту команду:

apt-get install php7.3 php7.3-cli php7.3-cgi php7.3-fpm php7.3-gd php7.3-mysql php7.3-imap php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl php7.3-zip php7.3-mbstring php7.3-soap php7.3-opcache php7.3-common php7.3-json php7.3-readline php7.3-xml

5.6 установка PHP 7.4

Чтобы установить PHP, используйте эту команду:

apt-get install php7.4 php7.4-cli php7.4-cgi php7.4-fpm php7.4-gd php7.4-mysql php7.4-imap php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl php7.4-zip php7.4-mbstring php7.4-soap php7.4-opcache libonig5 php7.4-common php7.4-json php7.4-readline php7.4-xml

6 Установка расширения Memcache (если нужно)

Чтобы установить Memcache, используйте эту ком

apt-get install php-memcache php-memcached

7 Установка расширения APCu (если нужно)

Чтобы установить пользовательский кэш APC, используйте эту команду:

apt-get install php-apcu php-apcu-bc

8 Установка расширения xDebug (если нужно)

Модуль xDebug - это отладочное расширение для PHP. Установка является необязательной.

Чтобы установить xDebug, используйте эту команду:

apt-get install php-xdebug

Этот пакет имеет другие настройки по умолчанию, чем пакет Debian php5-xdebug. В зависимости от вашего программного обеспечения вам необходимо изменить настройки, такие как xdebug.max_nesting_level, чтобы запустить его!

9 Верните Debian PHP по умолчанию к исходной версии

PHP операционной системы по умолчанию должен оставаться в исходной версии. Чтобы исправить это, выполните следующие команды:

update-alternatives --config php
update-alternatives --config php-cgi

В Debian 10 выберите 7.3, в Debian 9: Выберите PHP 7.0, в Debian 8 выберите PHP 5.6 в появившемся диалоговом окне.

10 Перезапустить демон FPM

Наконец, перезапустите демонов php-fpm. Выполните команды для ранее установленных:

service php5.6-fpm restart
service php7.0-fpm restart
service php7.1-fpm restart
service php7.2-fpm restart
service php7.3-fpm restart
service php7.4-fpm restart