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

Последнее обновление: 31.07.2025

Рассмотрим установку сервера Apache и PHP на Linux на примере Ubuntu. Данные компоненты устанавливаются через пакеты, поэтому прежде всего нам надо убедиться, что нам доступны новые пакеты. Для этого выполним следующие команды:

sudo apt update
sudo apt upgrade

Установка Apache

Для установки Apache выполним команду

sudo apt install apache2

После установки в папке /etc/apache2/ мы сможем найти ряд файлов конфигурации веб-сервера:

eugene@Eugene:/etc/apache2$ ls -l
total 80
-rw-r--r-- 1 root root  7178 Feb 20 23:11 apache2.conf
drwxr-xr-x 2 root root  4096 Feb 20 21:29 conf-available
drwxr-xr-x 2 root root  4096 Feb 20 21:29 conf-enabled
-rw-r--r-- 1 root root  1782 Jul 21  2023 envvars
-rw-r--r-- 1 root root 31063 Jul 21  2023 magic
drwxr-xr-x 2 root root 12288 Feb 20 21:29 mods-available
drwxr-xr-x 2 root root  4096 Feb 20 21:29 mods-enabled
-rw-r--r-- 1 root root   274 Jul 21  2023 ports.conf
drwxr-xr-x 2 root root  4096 Feb 20 23:12 sites-available
drwxr-xr-x 2 root root  4096 Feb 20 22:52 sites-enabled
  • apache2.conf: основной файл конфигурации Apache, который определяет глобальные настройки (на Windows ему соответствует httpd.conf)

  • envvars: файл, который задает переменные окружения для веб-сервера

  • magic: задает инструкции для определения MIME-типа на основании первых нескольких байт файла

  • ports.conf: определяет TCP-порт, на котором будет запущен Apache2

Например, откроем файл ports.conf в каком-нибудь текстовом редакторе. И по умолчанию файл имеет следующее содержимое:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80

<IfModule ssl_module>
	Listen 443
</IfModule>

<IfModule mod_gnutls.c>
	Listen 443
</IfModule>

Здесь строка "Listen 80" указывает, что веб-сервер будет запущен на порту 80. И сразу после установки Apache мы можем использовать этот порт для обращения к веб-серверу в бразере. Для обращения к локальному серверу по умолчанию применяется имя "localhost" или адрес "127.0.0.1". Поэтому введем в адресной строке адрес "http://localhost:80" или "http://127.0.0.1:80". Нам отобразится некоторое стандартное содержимое:

установка Apache на Ubuntu

Так как 80 порт - стандартный, то при наборе адреса можно просто использовать "http://localhost".

А если нам потребуется изменить номер порта с 80 на какой-то другой, то для этого надо будет изменить номер порта в строке "Listen 80" и перезапустить веб-сервер.

Кроме того, в папке sites-available расположен файл 000-default.conf - файл конфигурации единственного хоста по умолчанию - хоста, который запускается по адресу http://localhost.

Исключение для Apache для файервола

Если нужно будет разрешить входящий трафик для Apache по сети (например, из других компьютеров, которые подключены к локальной сети), надо добавить соответствующие правила для файервола. Как правило, в качестве файервола применяется UFW (Uncomplicated Firewall). Для добавления исключений для Apache выполним следующую команду:

sudo ufw allow 'Apache Full'

Последняя часть команды - Apache Full указывает на тип сервера. Здесь мы можем использовать следующие типы:

  • Apache: Открывает только порт 80 (HTTP).

  • Apache Full: Открывает как порт 80 (HTTP), так и порт 443 (HTTPS).

  • Apache Secure: Открывает только порт 443 (HTTPS).

Затем может потребоваться перезагрузить UFW:

sudo ufw enable

Установка PHP

Теперь, когда Apache установлен и работает, также установим PHP и необходимые модули для интеграции с Apache. Для этого установим следующие пакеты:

sudo apt install php libapache2-mod-php

Здесь устанавливается два пакета:

  • php: Базовый пакет PHP

  • libapache2-mod-php: Модуль, который позволяет Apache обрабатывать PHP-файлы

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

sudo systemctl restart apache2

Стоит отметить, что также можно установить ряд дополнительных пакетов:

sudo apt install php-mysql php-pgsql php-cli php-curl php-json php-gd php-mbstring php-xml php-zip php-cgi
  • php-mysql: Модуль для работы с базами данных MySQL/MariaDB.

  • php-pgsql: Модуль для работы с базами данных PostgreSQL.

  • php-cli: Интерфейс командной строки PHP, полезный для тестирования сценариев.

  • php-cgi: Модуль для выполнения скриптов PHP без необходимости установки модуля PHP для Apache.

  • php-curl: Позволяет PHP отправлять запросы по URL.

  • php-json: Модуль для обработки данных JSON.

  • php-gd: Модуль для работы с изображениями.

  • php-mbstring: Модуль для поддержки многобайтовых строк.

  • php-xml: Модуль для работы с XML.

  • php-zip: Модуль для работы с ZIP-архивами.

После установки PHP перезапустим Apache командой:

sudo systemctl restart apache2.service

Тестирование установки PHP

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

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

В открывшемся редакторе Nano (можно использовать любой другой текстовый редактор) вставим следующий код:

<?php
  phpinfo();
?>

С помощью тегов <?php и ?> определяем область, где будет располагаться код на языке PHP. В частности, функция phpinfo() выводит всю информацию об интерпретаторе и системе.

Сохраним файл (Ctrl+O, затем Enter) и выйдите из редактора (Ctrl+X).

Теперь откроем веб-браузер и перейдем по адресу http://localhost/phpinfo.php. Мы должны увидеть подробную страницу с информацией об установке PHP.

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

Настройка домашней директории Apache

По умолчанию корневая директория веб-сервера Apache находится по адресу /var/www/html, так как данный путь указан в файле "/etc/apache2/sites-available/000-default.conf". Это место, куда по умолчанию помещаются скрипты php и другие файлы сервера, как статические html-страницы, файлы css, javascript и т.д. Для простого веб-сайта часто достаточно использовать /var/www/html. Но мы можем изменить этот путь на другой каталог. Например, создадим в домашнем каталоге Home новую папку "localhost" с помощью следующей команды:

mkdir ~/localhost

Откроем файл /etc/apache2/sites-available/000-default.conf и изменим в нем строку

DocumentRoot /var/www/html

на

DocumentRoot /home/[USER]/localhost

Здесь вместо [USER] указывается имя текущего пользователя. Например, в моем случае это "eugene", соответственно я указываю

DocumentRoot /home/eugene/localhost

Далее настроим доступ к папке localhost. Откроем файл /etc/apache2/apache2.conf и найдем в нем строки:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
<Directory /home/eugene/localhost/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
        Allow from all
</Directory>

и заменим их на

<Directory /home/[USER]/localhost/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
        Allow from all
</Directory>

Где вместо [USER] также указывается имя текущего пользователя, то есть путь к папке.

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

chmod 755 $HOME

Для теста создадим в папке localhost файл index.html с простейшим содержимым. Для этого выполним следующую команду:

echo "Hello METANIT.COM" > ~/localhost/index.html

Перезапустим веб-сервер с помощью команды

sudo systemctl restart apache2ls -la.service

Далее обратимся к браузере по адресу "http://localhost":

Конфигурация веб-сервера Apache на Ubuntu
Помощь сайту
Юмани:
410011174743222
Номер карты:
4048415020898850