название сайта
Авторизация

Селектор PHP 5.6-7.4 для Debian и Ubuntu VestaCP

+4
linux4 комментария
Переключатель версий PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4 для Debian и Ubuntu с возможностью использовать связку nginx + php-fpm.

Переключатель версий PHP 5.6, 7.0, 7.1, 7.2, 7.3, 7.4 для Debian и Ubuntu

Это руководство позволит Вам, настроить переключать версии PHP 5.6, 7.0, 7.1, 7.2, 7.3 и 7.4 в VestaCP, для определенных доменов.

Для чего нужен выбор версии PHP на веб сервере, спросите вы. Ведь новые версии более безопасны и и. п..

Тут у всех разные ситуации. Кому то нужно развернуть на сервере старую версию сайта на Joomla. Joomla никто не обновлял и сайт может работать только на старой версии PHP, например PHP 5.6.;
Вторя ситуация, когда у Вас есть модуль для DLE который работает на PHP начиная с 5.6 и заканчивая 7.0, а на вашем сервере установлена версия PHP 7.2 или 7.4.

Ранее мы публиковали статью о настройке мульти PHP. На там возникли сложности при установке на Ubuntu 18.4.




Настройка селектора PHP для Debian и Ubuntu VestaCP



Руководство предназначено для операционных систем Debian и Ubuntu.

PHP будет работать через PHP-FPM.  Это является более быстрым решением, чем другой существующий PHP-переключатели, которые использует только старое решение phpfcgid (так как с PHP-FPM вы можете использовать opcache).

Связь с PHP-FPM будет происходить через Unix-сокеты, что также является самым быстрым обменом между демонами.

Также, данное решение позволит Вам напрямую связывать nginx и PHP-FPM, избегая использования Apache для желаемых доменов (Apache устанавливается по умолчанию при установке VestaCP).

Да, вы не ослышались, вы можете легко создать стек nginx <-> PHP-FPM, даже если у вас установлен Apache.

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



Первый этап настройки переключателя PHP



Первый обязательный шаг для Debian 10:

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ buster main" > /etc/apt/sources.list.d/php.list'


Первый обязательный шаг для Debian 9:

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ stretch main" > /etc/apt/sources.list.d/php.list'


Первый обязательный шаг для Debian 8:

apt-get update
apt install apt-transport-https ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ jessie main" > /etc/apt/sources.list.d/php.list'


Первый обязательный шаг для Ubuntu:

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


В ситуации если вы получите ошибку на этом этапе, приблизительно такого вида:

ERROR: cannot verify www.google.com's certificate, issued by `/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA': Unable to locally verify the issuer's authority.
To connect to www.google.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.


Для решения этой проблемы, запустите команду:

sudo apt install ca-certificates


После чего, добавьте в любое место файла /etc/wgetrc такую строчку:

ca_directory=/etc/ssl/certs

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

printf "\nca_directory=/etc/ssl/certs" | sudo tee -a /etc/wgetrc

После этих манипуляций, wget загрузить файл без ошибки сертификата.




Второй обязательный шаг для Debian и Ubuntu


Вторым шагом для обеих операционных систем, будет запуск двух команд?

apt-get update
a2enmod proxy_fcgi setenvif


Теперь переходим к PHP. Выберите нужную вам версию.


Для PHP 5.6:

apt-get install php5.6-apcu php5.6-mbstring php5.6-bcmath php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-mcrypt php5.6-mysql php5.6-soap php5.6-xml php5.6-zip php5.6-memcache php5.6-memcached php5.6-zip
update-rc.d php5.6-fpm defaults
a2enconf php5.6-fpm
systemctl restart apache2
cp -r /etc/php/5.6/ /root/vst_install_backups/php5.6/
rm -f /etc/php/5.6/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-56.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-56.sh



Для PHP 7.0:

apt-get install php7.0-apcu php7.0-mbstring php7.0-bcmath php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-intl php7.0-mcrypt php7.0-mysql php7.0-soap php7.0-xml php7.0-zip php7.0-memcache php7.0-memcached php7.0-zip
update-rc.d php7.0-fpm defaults
a2enconf php7.0-fpm
systemctl restart apache2
cp -r /etc/php/7.0/ /root/vst_install_backups/php7.0/
rm -f /etc/php/7.0/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-70.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-70.sh



Для PHP 7.1:

apt-get install php7.1-apcu php7.1-mbstring php7.1-bcmath php7.1-cli php7.1-curl php7.1-fpm php7.1-gd php7.1-intl php7.1-mcrypt php7.1-mysql php7.1-soap php7.1-xml php7.1-zip php7.1-memcache php7.1-memcached php7.1-zip
update-rc.d php7.1-fpm defaults
a2enconf php7.1-fpm
systemctl restart apache2
cp -r /etc/php/7.1/ /root/vst_install_backups/php7.1/
rm -f /etc/php/7.1/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-71.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-71.sh



Для PHP 7.2:

apt-get install php7.2-apcu php7.2-mbstring php7.2-bcmath php7.2-cli php7.2-curl php7.2-fpm php7.2-gd php7.2-intl php7.2-mysql php7.2-soap php7.2-xml php7.2-zip php7.2-memcache php7.2-memcached php7.2-zip
update-rc.d php7.2-fpm defaults
a2enconf php7.2-fpm
systemctl restart apache2
cp -r /etc/php/7.2/ /root/vst_install_backups/php7.2/
rm -f /etc/php/7.2/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-72.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-72.sh


Для PHP 7.3:

apt-get install php7.3-apcu php7.3-mbstring php7.3-bcmath php7.3-cli php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-mysql php7.3-soap php7.3-xml php7.3-zip php7.3-memcache php7.3-memcached php7.3-zip
update-rc.d php7.3-fpm defaults
a2enconf php7.3-fpm
systemctl restart apache2
cp -r /etc/php/7.3/ /root/vst_install_backups/php7.3/
rm -f /etc/php/7.3/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-73.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-73.sh


Для PHP 7.4:

apt-get install php7.4-apcu php7.4-mbstring php7.4-bcmath php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-intl php7.4-mysql php7.4-soap php7.4-xml php7.4-zip php7.4-memcache php7.4-memcached php7.4-zip
update-rc.d php7.4-fpm defaults
a2enconf php7.4-fpm
systemctl restart apache2
cp -r /etc/php/7.4/ /root/vst_install_backups/php7.4/
rm -f /etc/php/7.4/fpm/pool.d/*
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-74.stpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.stpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-74.tpl -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.tpl
wget http://dl.mycity.tech/vesta/php-fpm-tpl/PHP-FPM-74.sh -O /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.sh
chmod a+x /usr/local/vesta/data/templates/web/apache2/PHP-FPM-74.sh



Теперь просто перейдите в VestaCP, отредактируйте WEB для желаемого домена выбрав желаемую версию PHP:

VestaCP выбор версии PHP для сайта

Теперь у многих отпала необходимость перехода на другую панель управления хостингом, и появилась возможность, без труда понижать и повышать версию PHP для ваших сайтов на VDS/VPS под управлением VestaCP.




Читайте также

Отметьте картинки:*
  1. Александр
    Александр
    26 сентября 2022 23:37
     Couldn't find any package by regex 'php7.4-zip'
    А что с этим делать?
    1. thin
      27 сентября 2022 10:18
      Добавить репозитарий в котором есть данный пакет и повторить.
  2. Александр
    23 февраля 2021 21:19
    Почему-то очень мало инфы по варианту nginx + php-fpm. В основном вариант c Apache.
    Подскажите плиз, как сделать селектор PHP 5.6-7.4 для Centos 7.
    1. thin
      25 февраля 2021 09:57
      //Почему-то очень мало инфы по варианту nginx + php-fpm. В основном вариант c Apache.

      Моет потому, что в VestaCP даже вариант nginx + php-fpm без Apache на работает.

      Да и особой прибавки в скорости сайта на связке nginx + php-fpm я не увидел. (( 


      //Подскажите плиз, как сделать селектор PHP 5.6-7.4 для Centos 7.

      У меня нет серверов на Центос.

      Но вы можете попробовать вот этот вариант https://forum.vestacp.com/viewtopic.php?f=19&t=10854
new.thin.kiev.ua
Авторизация