Выбрать php по умолчанию

Установка PHP в Ubuntu

PHP — это очень популярный скриптовый язык программирования с открытым исходным кодом, который часто используется для разработки веб-сайтов и веб-приложений. PHP означает рекурсивный акроним от PHP Hypertext Processor. Скрипты выполняются на стороне сервера и могут находиться как в отдельных файлах, так и быть встроенными в HTML.

На данный момент официально поддерживается три версии PHP — это 5.6, 7.4 и 8. Предыдущие версии больше не получают обновлений безопасности. В этой статье мы рассмотрим как выполняется установка PHP Ubuntu. Будем устанавливать только поддерживаемые версии. Кроме того, рассмотрим как установить расширения для Apache, а также изменить версию по умолчанию.

Установка PHP в Ubuntu

1. Версия по умолчанию — 7.4

PHP версии 7.4 поставляется в официальных репозиториях Ubuntu, поэтому если вы хотите эту версию, то можете очень просто установить ее с помощью команды apt. Сначала смотрим информацию:

Теперь для установки версии из репозиториев наберите:

Для того чтобы интерпретатор php работал с Apache необходимо установить ещё этот пакет:

sudo apt install libapache2-mod-php

После этого можно посмотреть версию php в терминале:

2. Устаревшая версия — 5.6

Если вам нужна другая версия PHP, например, 5.6, то вам придется добавить в систему репозиторий PPA. Сначала необходимо установить зависимости:

sudo apt install python-software-properties

Затем для добавления PPA репозитория выполните:

sudo add-apt-repository ppa:ondrej/php

Теперь вы можете установить php ubuntu нужной вам версии. В данном случае 5.6. Для Apache выполните такие команды:

sudo apt install php5.6 libapache2-mod-php5.6

Затем можно смотреть версию:

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

3. Новая версия — 8.0

На момент написания статьи, версия PHP 8.0 вышла относительно недавно и в официальных репозиториях LTS релиза Ubuntu её нет. В этой версии было много улучшений и исправлений и если вы хотите её попробовать, то можете установить из того же самого PPA:

sudo add-apt-repository ppa:ondrej/php

Затем, как и в предыдущем пункте необходимо указать версию php, которая вам нужна в команде установки:

sudo apt install php8.0 libapache2-mod-php8.0

После завершения установки интерпретатор появится в системе:

Читайте также:  Saving file java android

Установка расширений PHP

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

  • php-curl — поддержка библиотеки CURL для отправки сетевых запросов;
  • php-memcached — кэширование с помощью Memcache;
  • php-mysql — поддержка баз данных MySQL и MariaDB;
  • php-pgsql — поддержка PostgreSQL;
  • php-gd — обработка графики с помощью библиотеки GD;
  • php-imagick — обработка графики с помощью библиотеки ImageMagick;
  • php-intl — локализация и интернационализация;
  • php-mcrypt — шифрование;
  • php-xml — работа с XML файлами и DOM;
  • php-zip — работа с ZIP архивами;
  • php-mbstring — работа со строками содержащими UTF-8 символы, в том числе и кириллицу.

Для того чтобы установить все эти расширения для версии PHP по умолчанию выполните такую команду:

sudo apt install php-curl php-memcached php-mysql php-pgsql php-gd php-imagick php-intl php-mcrypt php-xml php-zip php-mbstring

Если надо установить расширения PHP для определённой версии, то следует указать эту версию в названии пакета:

sudo apt install php7.4-curl php7.4-memcached php7.4-mysql php7.4-pgsql php7.4-gd php7.4-imagick php7.4-intl php7.4-mcrypt php7.4-xml php7.4-zip php7.4-mbstring

Аналогично можно установить расширения для PHP 5.6 или 8.0.

Выбор версии PHP по умолчанию

Вы можете выбрать какую версию php нужно использовать по умолчанию с помощью утилиты update-alternatives. Сначала смотрим доступные версии:

sudo update-alternatives —config php

После этого следует ввести номер версии, которую вы хотите использовать по умолчанию:

Или можно сразу установить php ubuntu по умолчанию:

sudo update-alternatives —set php /usr/bin/php5.6

Чтобы используемая версия обновилась в Apache нужно подключить правильный модуль и перезагрузить веб-сервер. Например, для того чтобы отключить 7.4 и включить 5.6 выполните:

sudo a2dismod php7.4
sudo a2enmod php5.6
sudo systemctl restart apache2

Установка php 8 Ubuntu выполняется так же. Теперь вы знаете как переключить версию php Ubuntu. Установка и настройка PHP вместе с Nginx отдельная обширная тема и она описана в статье про настройку PHP-FPM.

Выводы

В этой статье мы рассмотрели как выполняется установка PHP 8 ubuntu 20.04 и других версиях системы. Теперь вы знаете как установить не только PHP 8, но и другие поддерживаемые версии. Как видите, это очень просто, вы можете получить нужную версию PHP буквально в несколько кликов. Надеюсь, эта информация была вам полезной.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Жонглируем версиями PHP в системе

Проблема “ хочу новую версию %software% на моем стареньк … стабильном Debian/CentOS…” так же стара, как *nix-мир. Способов добиться желаемого хватает. Есть масса решений как притащить в систему несколько версий одного и того же софта. Но дальше хочется не просто иметь ещё одну версию, но и управлять тем, какая из версий доступна в системе по умолчанию, для конкретных приложений или пользователей.

Читайте также:  Generate random numbers java range

Что делать, если хочется сменить системную версию PHP на одну из кастомных сборок? Давайте отталкиваться от того, что у вас на сервере уже установлено несколько версий PHP и вы хотите, чтобы в консоли команда php была конкретной версии, отличающаяся от той, что шла с системой. В этой статье я расскажу, как правильно это настроить, чтобы не было проблем с будущими пакетными обновлениями.

В качестве примера возьмём сервер на CentOS 7, где установлен родной PHP:

# php -v PHP 5.4.16 (cli) (built: May 12 2016 13:45:17) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v5.0.12, Copyright (c) 2002-2015, by ionCube Ltd.

Также на сервере установлен наш Plesk с парой своих сборок PHP:

# rpm -qa | grep plesk-php.*-release plesk-php56-release-5.6.22-centos7.16052711.x86_64 plesk-php70-release-7.0.7-centos7.16052710.x86_64

Допустим, мы хотим переключить систему на использование PHP 5.6 по умолчанию (переключать глобально PHP с версии 5.4 на 7 как-то сс… страшно — чему-то в системе может поплохеть от такого). Бинарь PHP 5.6 лежит у нас тут:

# /opt/plesk/php/5.6/bin/php -v PHP 5.6.22 (cli) (built: May 27 2016 11:45:28) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v5.0.18, Copyright (c) 2002-2015, by ionCube Ltd. with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Как же сделать так, чтобы система использовала эту, нужную нам, версию PHP?

Сначала посмотрим на системную переменную PATH

# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

В ней перечислен список директорий, в которых ищутся программы по имени. Главный нюанс — поиск в директориях происходит последовательно и используется первый найденный результат. Текущий путь до текущего бинарника PHP мы можем увидеть с помощью команды:

Как видно из PATH , /usr/local/bin находится в списке раньше, чем /usr/bin . Значит, если мы поместим ссылку на альтернативную версию PHP “пораньше”, в /usr/local/bin , то именно она и будет использоваться при вызове команды php вместо /usr/bin/php . Мы можем создать эту ссылку руками (и всё даже будет работать), но правильнее использовать специально созданную для этих целей утилиту update-alternatives (в CentOS это просто alternatives , но есть симлинка update-alternatives , поэтому дальше будем оперировать именно этой командой, как универсальной для Debian/Ubuntu/CentOS/и т.д.).

Читайте также:  Как покрасить блок css

Теперь, давайте зарегистрируем все доступные версии PHP с помощью этой команды:

# update-alternatives --install /usr/local/bin/php php /opt/plesk/php/5.6/bin/php 10 # update-alternatives --install /usr/local/bin/php php /opt/plesk/php/7.0/bin/php 20 # update-alternatives --install /usr/local/bin/php php /usr/bin/php 30

Цифры 10, 20 и 30 — это приоритет. Он работает для автоматического выбора, если администратор сам не выбрал конкретную версию. Самое большое число определяет выбор «по умолчанию».

Проверим, что php теперь указывает на созданную командой симлинку:

# update-alternatives --list | grep php php auto /usr/bin/php # update-alternatives --display php php - status is auto. link currently points to /usr/bin/php /opt/plesk/php/5.6/bin/php - priority 10 /opt/plesk/php/7.0/bin/php - priority 20 /usr/bin/php - priority 30 Current `best' version is /usr/bin/php.

Давайте разберемся, что же update-alternatives сделала для нас:

# which php /usr/local/bin/php # ls -l /usr/local/bin/php lrwxrwxrwx. 1 root root 21 Jul 2 10:03 /usr/local/bin/php -> /etc/alternatives/php # ls -l /etc/alternatives/php lrwxrwxrwx. 1 root root 26 Jul 2 10:03 /etc/alternatives/php -> /usr/bin/php

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

# php -v PHP 5.4.16 (cli) (built: May 12 2016 13:45:17) . 

То есть, мы успешно настроили группу PHP в update-alternatives , где по умолчанию в автоматическом режиме выбран системный PHP. Сейчас у нас есть возможность переключить команду PHP на любую другую версию..

Давайте переключимся на PHP версии 5.6, которая идет в поставке с Plesk’ом:

# update-alternatives --config php There are 3 programs which provide 'php'. Selection Command ----------------------------------------------- 1 /opt/plesk/php/5.6/bin/php 2 /opt/plesk/php/7.0/bin/php *+ 3 /usr/bin/php Enter to keep the current selection[+], or type selection number: 1

Проверяем, что переключение произошло:

# php -v PHP 5.6.22 (cli) (built: May 27 2016 11:45:28) … # update-alternatives --display php php - status is manual. link currently points to /opt/plesk/php/5.6/bin/php … 

Все отлично работает. Теперь в системе используется нужная нам версия PHP и я не опасаюсь, что эта настройка слетит при следующих пакетных обновлениях.

С помощью update-alternatives можно выбирать не только версию PHP, но и многие другие вещи, например разные версии phpunit или редактор по умолчанию в системе. Подход этот универсален для различных систем. Не изобретая своего велосипеда, используя существующие инструменты, вы можете быть уверенным, что не устроили для ваших коллег квеста “Ну почему оно так работает?!”. Настраивайте свою систему правильно.

P.S. Приглашаю пофлеймить про phpenv в комментарии 🙂

Источник

Оцените статью