Этот браузер устарел, для работы с сайтом требуется установить один из актуальных:

Установите один из актуальных: Установить edge | Установить chrome | Установить firefox

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

Недавно я решил переехать с хостинга, но собственную VDS и заниматься разработкой там, но очень быстро столкнулся с проблемой, что разные проекты работают на разных версиях PHP. Вот небольшой гайд, как выйти из этой ситуации!

Устанавливаем репозиторий Sury:


apt-get -y install 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" | sudo tee /etc/apt/sources.list.d/php.list
apt-get update

Установка PHP и включение автозапуска сервиса PHP-FPM для нужной версии:

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

  • Копируем файл /etc/php/5.6/fpm/pool.d/default.conf и делаем свою конфигурацию для %username%
  • 4 строка: меняем [www] на [%username%]
  • 23 строка: меняем www-data на %username%
  • 24 строка: меняем www-data на %username%
  • 38 строка: меняем/run/php/php5.6-fpm.sock на/run/php/php5.6-fpm.%username%.sock

Изменение версии PHP по умолчанию в CLI:


update-alternatives --set php /usr/bin/php7.4
update-alternatives --set phar /usr/bin/phar7.4
update-alternatives --set phar.phar /usr/bin/phar.phar7.4
update-alternatives --set phpize /usr/bin/phpize7.4
update-alternatives --set php-config /usr/bin/php-config7.4



Несколько версии PHP, да еще и в режиме FPM, вряд ли кому-то нужно без web сервера. Рассмотрим вариант работы с Apache.

Устанавливаем apache (если еще не установлен), включаем модули и ставим все это на автозапуск:


apt install -y apache2 libapache2-mod-fcgid
a2enmod fcgid proxy_fcgi actions alias ssl rewrite
systemctl start apache2
systemctl status apache2
systemctl enable apache2

Так же советовал бы всегда сразу включать эти модули, без них большинство решений работать скорее всего просто не будет!


a2enmod ssl rewrite

Добавляем в конфиги vhost поддержку php-fpm:


SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost/"

Перезагружаем apache:


systemctl restart apache2

Если нужна поддержка нескольких юзеров, устанавливаем и включаем либу для поддержки апача от разных пользователей:


apt install -y libapache2-mpm-itk 
a2enmod mpm_prefork 
a2enmod mpm_itk 

Правим настройки vhosts в директиве SetHandler: (чуть выше в статье описано как создать несколько пулов PHP для разных пользователей)

  • Меняем php5.6-fpm.sock на php5.6-fpm.%username%.sock

Для конфигурирования своего сервера, с несколькими версиями php я использую собственный скрипт - ассистент по настройке сразу всех конфигов по пресетам.

назад
вверх