Установка PHP в Ubuntu с Apache
PHP — это очень популярный скриптовый язык программирования с открытым исходным кодом, который часто используется для разработки веб-сайтов и веб-приложений. PHP означает рекурсивный акроним от PHP Hypertext Processor. Скрипты выполняются на стороне сервера и могут находиться как в отдельных файлах, так и быть встроенными в HTML.
На данный момент официально поддерживается три версии PHP — это 5.6, 7.4, 8. Предыдущие версии больше не получают обновлений безопасности. В этой статье мы рассмотрим как выполняется установка PHP Ubuntu. Будем устанавливать только поддерживаемые версии. Кроме того, рассмотрим как установить расширения для Apache, а также изменить версию по умолчанию.
Версия PHP по умолчанию
PHP версии 7.4 поставляется в официальных репозиториях Ubuntu, поэтому если вы хотите эту версию, то можете очень просто установить ее с помощью команды apt.
Обновляем список пакетов сервера:
sudo apt update
Обновляем пакеты сервера:
sudo apt upgrade
Смотрим версию по умолчанию:
sudo apt show php
Для установки версии по умолчанию:
sudo apt install php
Для того чтобы интерпретатор php работал с Apache необходимо установить пакет:
sudo apt install libapache2-mod-php
Посмотреть версию php в терминале:
php -v // вывод версии PHP
Старая версия PHP 5.6
Если вам нужна другая версия PHP, например 5.6, то вам придется добавить в систему репозиторий PPA. Сначала необходимо установить зависимости:
sudo apt install python-software-properties
Затем для добавления PHP репозитория выполните:
sudo add-apt-repository ppa:ondrej/php
Теперь вы можете установить php ubuntu нужной вам версии. В данном случае 5.6. Для Apache выполните такие команды:
sudo apt install php5.6 libapache2-mod-php5.6
Затем можно смотреть версию:
php -v
Новая версия PHP 8.0
На момент написания статьи, версия PHP 8.0 вышла относительно недавно и в официальных репозиториях LTS релиза Ubuntu её нет. В этой версии было много улучшений и исправлений и если вы хотите её попробовать, то можете установить из того же самого PPA. Сначала необходимо установить зависимости:
sudo apt install python-software-properties
Затем для добавления PHP репозитория выполните:
sudo add-apt-repository ppa:ondrej/php
Затем, необходимо указать версию php, которая вам нужна в команде установки:
sudo apt install php8.0 libapache2-mod-php8.0
После завершения установки интерпретатор появится в системе:
php -v
Установка расширений PHP
Не зависимо от того какую версию PHP вы установили, обычно для полноценной работы программ необходимо ещё установить расширения. Вот основные расширения, которые требуются чаще всего:
php-curlподдержка библиотеки CURL для отправки сетевых запросовphp-memcachedкэширование с помощью Memcachephp-mysqlподдержка баз данных MySQL и MariaDBphp-pgsqlподдержка PostgreSQLphp-gdобработка графики с помощью библиотеки GDphp-imagickобработка графики с помощью библиотеки ImageMagickphp-intlлокализация и интернационализацияphp-mcryptшифрованиеphp-xmlработа с XML файлами и DOMphp-zipработа с ZIP архивамиphp-mbstringработа со строками содержащими UTF-8 символы, в том числе и кириллицу
Поиск расширений PHP, которые могут быть установлены или уже были установлены:
apt search --names-only php | grep ^php7
Устанавливаем необходимые расширения, для примера возьмем два php7.2-gd и php7.2-zip:
sudo apt install php7.2-gd php7.2-zip
Смотрим, какие расширения PHP сейчас уже установлены:
apt list --installed | grep ^php7
Файлы конфигурации всех установленных расширений PHP находятся в директории /etc/php/VERSION/mods-available, посмотреть в терменале можно выполнив две команды:
cd /etc/php/7.2/mods-available
ls
Управление расширениями
Для управления расширениями требуется установка расширения php-common предоставляет следующие команды:
phpenmodдля включения модулейphpdismodдля отключения модулейphpqueryдля просмотра статуса
Синтаксис команд:
phpenmod [-v ALL|php_version] [-s ALL|sapi_name] module_name // включение
phpdismod [-v ALL|php_version] [-s ALL|sapi_name] module_name // отключение
phpquery [-d] [-q] -v version_name -s sapi_name [-m module_name] [-M] [-S] [-V] // статус
Включим два модуля, которые установили ранее:
sudo phpenmod -v 7.2 -s fpm gd // включаем модуль gd
sudo phpenmod -v 7.2 -s fpm zip // включаем модуль zip
Отключить модули можно так:
sudo phpdismod -v 7.2 -s fpm gd // отключаем модуль gd
sudo phpdismod -v 7.2 -s fpm zip // отключаем модуль zip
Опция -v позволяет указать версию PHP, для которой надо включить или отключить модуль. А опция -s предназначена для указания SAPI (Server API), например cli или fpm.
Выбор версии 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.ini
В каких директориях хранятся конфиги — зависит от операционной системы версии PHP, файлов php.ini может быть много. Мы можем посмотреть какие есть файлы выполнив команду:
php -i | grep php.ini