Как установить php на ubuntu

Как установить php на ubuntu

PHP – это один из самых популярных языков программирования, который используется для создания динамических веб-сайтов и веб-приложений. На операционной системе Ubuntu его установка не вызывает сложностей, если следовать четким шагам. В этом руководстве мы подробно разберем, как установить PHP на Ubuntu, настроить его для работы с Apache или Nginx и обеспечить поддержку нужных версий PHP для ваших проектов.

Для начала вам потребуется Ubuntu с правами администратора (root) или пользователь с правами sudo. Мы будем использовать стандартные репозитории Ubuntu, что гарантирует стабильность и совместимость с системой. Установка PHP включает в себя несколько важных шагов, таких как выбор версии PHP, настройка дополнений и тестирование работы веб-сервера.

Если вы используете Ubuntu 20.04 или более позднюю версию, по умолчанию доступна версия PHP 7.4 или выше. Однако, для некоторых проектов может понадобиться установка другой версии, например, PHP 8.1 или 8.2. В этом руководстве мы также рассмотрим, как установить и переключаться между различными версиями PHP с помощью update-alternatives, чтобы ваша система оставалась гибкой и поддерживала разные версии для разных приложений.

Подготовка системы перед установкой PHP

Подготовка системы перед установкой PHP

Перед установкой PHP необходимо обновить индекс пакетов командой:

sudo apt update

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

sudo apt install -y software-properties-common ca-certificates lsb-release apt-transport-https

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

sudo add-apt-repository ppa:ondrej/php

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

sudo apt update

Убедитесь, что в системе установлена актуальная версия OpenSSL и curl, так как они используются в некоторых PHP-расширениях:

sudo apt install -y openssl curl

Проверьте наличие и актуальность системных библиотек, таких как libxml2 и libzip, которые требуются для работы расширений PHP:

sudo apt install -y libxml2 libzip4

Если на сервере уже установлен другой веб-сервер (например, Apache или Nginx), проверьте его состояние:

sudo systemctl status apache2 или sudo systemctl status nginx

В случае конфликтов между веб-серверами рекомендуется временно остановить ненужный процесс:

sudo systemctl stop apache2 или sudo systemctl stop nginx

Подготовка завершена. Система готова к установке PHP и соответствующих модулей.

Как установить PHP через APT в Ubuntu

Как установить PHP через APT в Ubuntu

Перед установкой убедитесь, что список пакетов обновлён:

sudo apt update

Установите необходимые зависимости:

sudo apt install software-properties-common -y

Добавьте репозиторий с актуальными версиями PHP от разработчиков:

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

Установите нужную версию PHP, например PHP 8.2:

sudo apt install php8.2 -y

Проверьте версию установленного интерпретатора:

php -v

Для работы с веб-сервером установите модуль Apache:

sudo apt install libapache2-mod-php8.2 -y
sudo systemctl restart apache2

Если используется Nginx, установите PHP-FPM:

sudo apt install php8.2-fpm -y
sudo systemctl restart php8.2-fpm

Рекомендуется сразу установить популярные модули расширений:

sudo apt install php8.2-cli php8.2-mbstring php8.2-xml php8.2-curl php8.2-mysql php8.2-zip -y

Для выбора используемой версии при наличии нескольких выполните:

sudo update-alternatives --config php

После установки настройки PHP можно изменить в конфигурационном файле:

/etc/php/8.2/apache2/php.ini

Проверка версии PHP после установки

Проверка версии PHP после установки

После установки PHP убедитесь, что система корректно распознаёт его. Откройте терминал и выполните команду:

php -v

Результат должен содержать строку с номером версии, например:

PHP 8.2.10 (cli) (built: Aug 28 2023 07:23:45) (NTS)

Если команда не распознана, выполните следующие действия:

  • Убедитесь, что пакет php установлен: sudo apt install php
  • Проверьте наличие бинарного файла: which php. Ожидаемый результат – путь вида /usr/bin/php
  • Если файл отсутствует, перезапустите терминал или выполните hash -r

Для одновременной установки нескольких версий PHP проверьте активную с помощью:

update-alternatives --display php

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

sudo update-alternatives --config php

Выберите нужный номер версии из списка. После смены повторно проверьте:

php -v

Установка и настройка дополнительных PHP-расширений

Для работы большинства веб-приложений требуется набор дополнительных PHP-расширений. Чтобы просмотреть доступные модули, используйте команду:

apt-cache search php- | grep php

Установка производится через пакетный менеджер apt. Например:

sudo apt install php-mysql php-curl php-gd php-mbstring php-xml php-zip

Рекомендуется устанавливать расширения, исходя из требований конкретного проекта. Ниже представлены часто используемые модули и их назначение:

  • php-mysql – поддержка MySQL и MariaDB
  • php-curl – взаимодействие с внешними API через HTTP
  • php-gd – работа с графикой (например, генерация изображений)
  • php-mbstring – поддержка многобайтовых строк, необходима для UTF-8
  • php-xml – обработка XML-документов
  • php-zip – работа с ZIP-архивами

После установки расширений необходимо перезапустить веб-сервер:

sudo systemctl restart apache2

или для Nginx с PHP-FPM:

sudo systemctl restart php8.2-fpm

Для проверки активных модулей выполните:

php -m

Если нужный модуль не отображается, убедитесь, что его ini-файл присутствует в директории /etc/php/8.2/mods-available/ и активирован через phpenmod:

sudo phpenmod имя_модуля

Затем снова перезапустите веб-сервер. Повторная проверка через php -m должна отразить изменения.

Конфигурация PHP для использования с Apache

Конфигурация PHP для использования с Apache

После установки PHP и Apache убедитесь, что модуль libapache2-mod-php активирован. Выполните команду sudo a2enmod php для включения модуля и перезапустите Apache: sudo systemctl restart apache2.

Проверьте порядок обработки файлов в конфигурации /etc/apache2/mods-enabled/dir.conf. Убедитесь, что index.php указан перед index.html:

<IfModule mod_dir.c>

  DirectoryIndex index.php index.html

</IfModule>

Измените настройки PHP под нужды проекта, отредактировав файл /etc/php/8.x/apache2/php.ini (уточните версию PHP). Обратите внимание на параметры:

memory_limit – рекомендуемое значение для разработки: 512M или выше.

upload_max_filesize и post_max_size – увеличьте до 50M или больше для загрузки крупных файлов.

display_errors – установите в On на стадии разработки, затем выключите.

error_reporting – используйте E_ALL для отображения всех ошибок.

Проверьте, загружается ли нужная конфигурация, выполнив php -i | grep «Loaded Configuration File». Если изменения не применяются, убедитесь, что правите нужный php.ini.

Перезапустите Apache после изменений командой sudo systemctl restart apache2. Для проверки работоспособности создайте файл info.php в /var/www/html со строкой <?php phpinfo(); ?> и откройте в браузере.

Как настроить PHP для работы с Nginx

Как настроить PHP для работы с Nginx

Убедитесь, что установлен PHP и PHP-FPM. Выполните команду sudo apt install php-fpm, если пакет ещё не установлен. Проверьте, что служба активна: systemctl status php*-fpm.

Откройте конфигурационный файл сайта Nginx, например: /etc/nginx/sites-available/default. Внутри блока server найдите или добавьте блок location ~ \.php$ { ... }.

Пример настройки:

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

Проверьте, что путь к сокету соответствует установленной версии PHP-FPM. Узнать его можно командой: ls /run/php/.

Убедитесь, что в корневом каталоге сайта существует файл index.php и параметр index в конфигурации включает его: index index.php index.html;.

Проверьте директиву root в блоке server. Она должна указывать на корректный путь, например: root /var/www/html;.

После внесения изменений перезапустите Nginx: sudo systemctl reload nginx.

Создайте файл info.php в корне сайта с содержимым <?php phpinfo(); ?> и откройте его в браузере, чтобы убедиться в корректной работе PHP с Nginx.

Настройка параметров PHP в php.ini

Файл php.ini находится по пути /etc/php/8.2/apache2/php.ini (версия может отличаться). После внесения изменений перезапустите Apache командой sudo systemctl restart apache2.

Для увеличения максимального размера загружаемых файлов измените следующие параметры:

upload_max_filesize = 64M

post_max_size = 64M

Чтобы увеличить время выполнения скриптов, отредактируйте:

max_execution_time = 120

max_input_time = 120

Для повышения доступной памяти задайте:

memory_limit = 256M

Включение отображения ошибок во время разработки:

display_errors = On

error_reporting = E_ALL

Чтобы задать временную зону, укажите параметр:

date.timezone = Europe/Moscow

Изменения вступают в силу только после перезапуска веб-сервера. Убедитесь, что редактируется правильный php.ini, особенно если установлено несколько версий PHP. Для проверки используйте php -i | grep "Loaded Configuration File".

Обновление и удаление PHP на Ubuntu

Обновление и удаление PHP на Ubuntu

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

sudo add-apt-repository ppa:ondrej/php

sudo apt update

Чтобы обновить установленную версию PHP до последнего доступного релиза в системе:

sudo apt upgrade php

Для обновления конкретного модуля, например, php-cli:

sudo apt install --only-upgrade php-cli

Проверить текущую версию можно командой:

php -v

Для полного удаления PHP выполните:

sudo apt purge 'php*'

Удалите неиспользуемые зависимости:

sudo apt autoremove

Очистите кеш пакетов:

sudo apt clean

Если использовался PPA, удалите его:

sudo add-apt-repository --remove ppa:ondrej/php

Вопрос-ответ:

Какую версию PHP лучше устанавливать на Ubuntu 22.04?

Выбор версии зависит от того, какие приложения вы собираетесь запускать. Если вы работаете с современными CMS или фреймворками, такими как Laravel или Symfony, стоит устанавливать последнюю стабильную версию PHP, которая доступна в официальных репозиториях или через PPA от разработчиков. На момент написания статьи это, как правило, PHP 8.2. Однако, если у вас есть проект, который работает только на старой версии PHP, например 7.4, можно установить её вручную через репозиторий `ppa:ondrej/php`, предварительно проверив совместимость с системой.

Зачем добавлять сторонний PPA при установке PHP?

По умолчанию репозитории Ubuntu могут содержать не самую новую версию PHP. Сторонний PPA, например `ppa:ondrej/php`, предоставляет более широкий выбор версий, включая как свежие релизы, так и устаревшие, которые уже отсутствуют в стандартных источниках. Это удобно, если нужно протестировать проект на разных версиях или поддерживать старое приложение. Добавление такого репозитория делает доступной установку нужных пакетов через стандартный менеджер APT.

Нужно ли вручную настраивать файл php.ini после установки?

Файл `php.ini` создаётся автоматически при установке PHP, и его базовая конфигурация подходит для большинства случаев. Однако, если вы планируете запускать веб-приложение с особыми требованиями — например, работа с большими файлами, увеличенный лимит памяти или изменение часового пояса — тогда стоит открыть `php.ini` и внести изменения вручную. Часто корректируют параметры `upload_max_filesize`, `post_max_size`, `memory_limit` и `date.timezone`.

Как проверить, что PHP установлен и работает корректно с Apache?

После установки PHP и модуля для Apache (обычно `libapache2-mod-php`), нужно перезапустить сервер командой `sudo systemctl restart apache2`. Затем создайте тестовый файл, например `info.php`, в директории `/var/www/html/` со следующим содержимым: ``. Откройте в браузере адрес `http://localhost/info.php`. Если всё сделано правильно, вы увидите страницу с настройками PHP. Она показывает текущую версию, активные модули и параметры конфигурации.

Ссылка на основную публикацию