Встроенный PHP-selector

Материал из ISPWiki
Перейти к: навигация, поиск


В панели управления ISPmanager 5 вы можете установить альтернативные версии PHP для использования их в разных режимах работы PHP

В ISPmanager Lite установить альтернативные версии php можно в разделе Возможности.

В ISPmanager Business установить альтернативные версии php можно в разделе Установка PHP.

Новые версии будут установлены в директорию /opt/

Альтернативные версии для режима CGI (а также FastCGI Apache)

При установке альтернативной версии PHP она становится доступна для использования в режим PHP как CGI (или FastCGI Apache, если установлен Apache Prefork). В режиме CGI версия PHP может быть различная для каждого WWW-домена одного пользователя панели управления. Настройка применяется для одного WWW-домена. Достаточно при редактировании WWW-домена выбрать нужную версию из выпадающего списка.

Php-alt.png

Альтернативные версии для режима модуля Apache

При установке альтернативной версии администратор может также выбрать возможность использования этой версии PHP в режиме модуля Apache. В случае, если такая возможность выбрана, администратор панели в списке "Установка PHP" сможет указать, какая именно версия PHP должна быть использована в режиме модуля Apache.

Данная настройка применяется для всех WWW-доменов всех пользователей, использующих PHP в режиме модуля Apache, то есть, настройка применяется для всего сервера.

Альтернативные версии для режима FastCGI (Nginx + PHP-FPM)

При установке альтернативной версии администратор может также выбрать возможность использования этой версии PHP в режиме модуля PHP-FPM (флаг для предоставления данной опции автоматически установлен). В случае, если такая возможность выбрана, каждый пользователь может выбрать для себя необходимую версию PHP для использования в режиме FastCGI (Nginx + PHP-FPM). Изменение настройки производится в списке "Установка PHP" на уровне пользователя или на форме редактирования пользователя с уровня администратора.

Изменения применяются для всех WWW-доменов пользователя, использующих PHP в режиме FastCGI (Nginx + PHP-FPM). То есть, настройка применяется для пользователя.

Особенности реализации

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

При смене версии PHP для PHP-FPM пул пользователя конфигурируется для службы PHP-FPM нужной версии, на сервере при этом может быть запущено несколько служб PHP-FPM разных версий, обслуживающих каждая свой набор пользователей.

Пример добавления своих сборок в панель

Для того, чтобы добавить возможность использовать ваши пакеты php нужно создать 2 файла

/usr/local/mgr5/etc/xml/ispmgr_mod_myphp.xml

<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
 <lang name="ru">
   <messages name="feature">
     <msg name="dname_altphp72">Альтернативная версия PHP 7.2</msg>
   </messages>
   <messages name="feature.edit">
     <msg name="package_ispphp72">My PHP 7.2</msg>
     <msg name="hint_package_ispphp72">Использовать PHP 7.2 в режиме CGI</msg>
     <msg name="package_ispphp72_mod_apache">Модуль PHP для Apache версии 7.2</msg>
     <msg name="hint_package_ispphp72_mod_apache">Возможность использовать PHP 7.2 в режиме модуля Apache</msg>
     <msg name="package_ispphp72_fpm">PHP 7.2 для PHP-FPM</msg>
     <msg name="hint_package_ispphp72_fpm">Возможность использования PHP 7.2 сервисом PHP-FPM</msg>
     <msg name="packagegroup_altphp72gr">PHP версии 7.2</msg>
     <msg name="hint_packagegroup_altphp72gr">Возможность использовать PHP версии 7.2</msg>
   </messages>
 </lang>
</mgrdata>

/usr/local/mgr5/etc/xml/ispmgr_features.d/my_php.xml

<?xml version="1.0" encoding="UTF-8"?>
<features>
       <feature name="altphp72" featuregroup="altphp">
		<packagegroup name="altphp72gr" type="select">
			<package name="ispphp72" dispname="PHP 7.2 CGI" primary="yes" recommended="yes">
				<systemname>isp-php72</systemname>
			</package>
			<if value="turn_off" hide="package_ispphp72_mod_apache" shadow="yes"/>
			<if value="turn_off" hide="package_ispphp72_fpm" shadow="yes"/>
		</packagegroup>
		<package name="ispphp72_fpm" dispname="PHP 7.2 PHP-FPM" recommended="yes">
			<systemname>isp-php72-fpm</systemname>
		</package>
		<package name="ispphp72_mod_apache" dispname="PHP 7.2 Apache module">
			<systemname>isp-php72-mod-apache</systemname>
		</package>
	</feature>
</features>
<systemname>isp-php72</systemname> - имя пакета в apt\yum. 
<package name="ispphp72" dispname="PHP 7.2 CGI" primary="yes" recommended="yes"> Описывает пакет для CGI режима
<package name="ispphp72_fpm" dispname="PHP 7.2 PHP-FPM" recommended="yes"> Описывает пакет для режима PHP-FPM
<package name="ispphp72_mod_apache" dispname="PHP 7.2 Apache module"> Описывает пакет для модуля Apache

Вы можете не включать пакеты для PHP-FPM и Apache в описание, если они по какой-то причине отсутствуют.

Затем перезапустить панель

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

В вашем пакете (в данном случае пакет будет называться php72) должен быть файл в /opt/php72/etc/php.ini