Как установить несколько версий PHP на Ubuntu 16.04 / 17.10

  1. Установите несколько версий PHP на Ubuntu 16.04 / 17.10 через PPA
  2. Переключение версии PHP в виртуальном хосте Apache
  3. Переключение версии PHP в блоке Nginx Server

Из этого туториала Вы узнаете, как установить несколько версий PHP на Ubuntu 16.04 / Ubuntu 17.10 и позволить конкретному виртуальному хосту Apache или блоку сервера Nginx использовать одну из них. Это полезно, когда на вашем сервере несколько веб-приложений, но одно или два из них несовместимы с версией PHP в репозитории Ubuntu по умолчанию. Репозиторий Ubuntu 16.04 включает в себя PHP7.0, а репозиторий Ubuntu 17.10 включает в себя PHP7.1. Мы увидим, как установить PHP5.6 , PHP7.0 , PHP7.1 и PHP7.2 на одном сервере Ubuntu 16.04 / 17.10.

Установите несколько версий PHP на Ubuntu 16.04 / 17.10 через PPA

Самый простой способ установить несколько версий PHP - использовать PPA из Ондржея Суры , который также является сопровождающим certbot PPA. Чтобы добавить этот PPA, выполните следующие команды в терминале. Общий пакет свойств программного обеспечения необходим, если вы хотите установить программное обеспечение из PPA. Он автоматически устанавливается на рабочий стол Ubuntu, но может отсутствовать на вашем сервере Ubuntu.

sudo apt установить общие свойства программного обеспечения sudo add-apt-repository ppa: ondrej / php обновление sudo apt

Теперь вы можете установить PHP7.2 в Ubuntu 16.04 / 17.10, выполнив следующую команду.

sudo apt установить php7.2 php7.2-fpm

И установите некоторые распространенные расширения PHP7.2.

sudo apt install php7.2-mysql php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

Вы можете просмотреть все доступные расширения PHP7.2, введя sudo apt install php7.2 и дважды нажав клавишу Tab.

Чтобы установить PHP7.1 в Ubuntu 16.04 / 17.10, запустите

sudo apt установить php7.1 php7.1-fpm

Установите некоторые распространенные расширения PHP7.1.

sudo apt install php7.1-mysql php7.1-mbstring php7.1-xml php7.1-gd php7.1-curl

Вы можете установить PHP7.0 и PHP5.6 таким же образом. Просто замените номер версии в этих командах.

Переключение версии PHP в виртуальном хосте Apache

По умолчанию Apache использует одну версию PHP на всех виртуальных хостах. Если вы хотите использовать другую версию PHP на конкретном виртуальном хосте, вам необходимо отключить модуль Apache PHP и запускать код PHP через PHP-FPM. Проверьте, установлен ли mod_php.

dpkg -l | grep libapache2-mod-php

Если он установлен, вам нужно отключить его. Например, у меня на сервере Ubuntu 17.10 установлена ​​libapache2-mod-php7.1,

Я отключаю это, запустив:

sudo a2dismod php7.1

Вам также необходимо отключить модуль prefork MPM.

sudo a2dismod mpm_prefork

Теперь вам нужно выполнить следующую команду, чтобы включить три модуля, чтобы использовать PHP-FPM, независимо от того, установлен ли mod_php на вашем сервере.

sudo a2enmod mpm_event proxy_fcgi setenvif

Фрагмент конфигурации PHP-FPM находится в / etc / apache2 / conf-available /.

Допустим, вы хотите использовать PHP7.2 в вашем WordPress виртуальный хост, затем просто скопируйте все в php7.2-fpm.conf и вставьте их в файл конфигурации виртуального хоста WordPress между тегами <VirtualHost>. Таким образом, ваш файл конфигурации виртуального хоста выглядит следующим образом.

Сохраните и закройте файл. Перезапустите Apache, чтобы изменения вступили в силу.

sudo systemctl перезапустить apache2

Теперь предположим, что вы хотите использовать PHP7.1 в Mautic виртуальный хост, потому что Mautic не совместим с PHP7.2, затем просто скопируйте все в php7.1-fpm.conf и вставьте их в свой виртуальный хост Mautic между тегами <VirtualHost>, а затем перезапустите Apache.

Чтобы проверить, какая версия PHP используется вашим виртуальным хостом, вы можете создать файл info.php в корневом каталоге вашего документа (скажем, / var / www / html).

sudo nano /var/www/html/info.php

Вставьте следующий PHP-код в файл.

&lt;? php phpinfo (); ?>

Сохраните и закройте файл. Затем в адресной строке браузера введите

your-domain.com /info.php

Переключение версии PHP в блоке Nginx Server

Переключить версию PHP в блоке сервера Nginx очень просто. Как вы, вероятно, знаете, Nginx запускает код PHP через PHP-FPM, который прослушивает сокет Unix. Файл сокета находится в каталоге / run / php /.

Как видно из скриншота, на моем сервере есть четыре файла сокетов PHP-FPM, соответствующих различным версиям PHP. Ваш файл блока сервера Nginx обычно имеет следующий фрагмент для подключения к серверу PHP-FPM.

location ~ \ .php $ {fastcgi_pass unix: /run/php/php5.6-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; включить fastcgi_params; include snippets / fastcgi-php.conf; }

conf;  }

Версия PHP, используемая Nginx, определяется второй строкой во фрагменте. Чтобы использовать PHP7.2 в конкретном блоке сервера Nginx, измените эту строку на:

fastcgi_pass unix: / run / php / php 7.2 -fpm.sock;

Чтобы использовать PHP7.0 в блоке сервера Nginx, измените эту строку на

fastcgi_pass unix: / run / php / php 7.0 -fpm.sock;

Я уверен, что вы поняли идею сейчас. Сохраните и закройте файл. Затем перезагрузите Nginx, чтобы изменения вступили в силу.

sudo systemctl перезагрузить nginx

Чтобы проверить, какая версия PHP используется вашим блоком сервера, вы можете создать файл info.php в корневом каталоге вашего документа (скажем, / var / www / html).

sudo nano /var/www/html/info.php

Вставьте следующий PHP-код в файл.

&lt;? php phpinfo (); ?>

Сохраните и закройте файл. Затем в адресной строке браузера введите

your-domain.com/info.php

Это оно! Я надеюсь, что это руководство помогло вам запустить несколько версий PHP на Ubuntu 16.04 / Ubuntu 17.10 с Apache и Nginx. Как всегда, если вы нашли этот пост полезным, то Подпишитесь на нашу бесплатную рассылку или следуйте за нами Google+ , щебет или же нравится наша страница в Facebook ,

Оцените этот урок

[Всего: 4 Среднее: 4,8]

Lt;?
Php phpinfo (); ?
Lt;?
Php phpinfo (); ?