Несколько php инстансов на одном сервере
В gentoo linux есть возможность установки несколько php инстансов на один сервер. Рассмотрим подробнее как это сделать на примере сервера с ОС gentoo x64. На момент написания статьи в портажах есть несколько версий
php-5.6.29
php-5.6.30
php-7.0.15
php-7.1.1
Мы будем устанавливать php-5.6.30 и php-7.1.1. Для начала добавляем в make.conf строки
PHP_TARGETS="php5-6 php7-1 php7-2 php7-3"
PHP_INI_VERSION="production"
php7-2 php7-3 — это задел на будущее. Когда эти версии окажутся в портажах не нужно будет вносить правки в make.conf, а сразу переходить к установке
Далее в папке package.use создаем файл php (имя может быть произвольное), в котором указываем опции сборки php. У меня написано следующее:
dev-lang/php -berkdb bzip2 cli crypt ctype curl-embed exif fileinfo filter fpm ftp gd -gdbm\
-gmp hash iconv intl json -mhash mysql mysqli mysqlnd opcache pdo phar posix -redline session\
simplexml sockets ssl -tidy tokenizer truetype unicode xml xmlrpc xmlreader xml writer xslt\
zip zlib soap imap kerberos sqlite
Собираем
emerge =dev-lang/php-5.6.30 =dev-lang/php-7.1.1
В результате в /etc/php наблюдаем следующие папки
cli-php5.6
cli-php7.1
fpm-php5.6
fpm-php7.1
Как настроить несколько пулов в fpm
Настраиваем обе версии сообразно своим потребностям и переходим в /etc/init.d. Там есть лишь один стартовый скрипт php-fpm, а нам нужно запускать два инстанса php сразу. Для этого нужно пролинковать
ln -s php-fpm php-fpm-php5.6
ln -s php-fpm php-fpm-php7.1
Запускаем
service php-fpm-php5.6 start
service php-fpm-php7.1 start
Если ошибок нет, вносим в автозапуск
rc-update add php-fpm-php5.6 default
rc-update add php-fpm-php7.1 default
В принципе идея понятна. Таким образом можно установить даже более, чем два инстанса php. У нас в продакшене их было сразу три
https://4admin.info/multiple-php-instances-on-one-server/