Установка Apache PHP MySQL Ubuntu: Пошаговая инструкция 2024 | AdminWiki

Установка Apache PHP MySQL на Ubuntu: Полное руководство для разработчиков

17 декабря 2025 7 мин. чтения #apache #devops #lamp #mysql #php #ubuntu #веб-сервер

Представь, что тебе нужно развернуть полноценный веб-сервер для разработки или продакшена. Ты ищешь решение, которое будет стабильным, производительным и легко настраиваемым. Именно для этого существует связка Apache + PHP + MySQL — классический LAMP-стек, который десятилетиями доказывает свою надежность. В этой статье я, как Senior DevOps, проведу тебя через весь процесс установки и настройки, объясняя каждый шаг так, будто ты сидишь рядом со мной за одним компьютером.

Что такое LAMP и зачем он нужен?

LAMP — это акроним, обозначающий набор программного обеспечения для развертывания веб-приложений:

  • Linux — операционная система (в нашем случае Ubuntu)
  • Apache — веб-сервер
  • MySQL — система управления базами данных
  • PHP — язык программирования для бэкенда

Эта комбинация идеально подходит для WordPress, Laravel, Symfony и других PHP-фреймворков.

Подготовка системы Ubuntu

Перед началом установки apache php mysql обновим систему:

bash
sudo apt update
sudo apt upgrade -y
Важно: Все команды выполняются от имени пользователя с sudo-правами. Если ты используешь root, убери sudo из команд.

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

Давай начнем с установки веб-сервера Apache:

bash
sudo apt install apache2 -y

После установки проверь статус службы:

bash
sudo systemctl status apache2

Открой браузер и перейди по адресу http://localhost или http://твой-ip-адрес. Должна появиться стандартная страница Apache.

Базовая настройка Apache

Настроим виртуальный хост для твоего проекта:

bash
sudo nano /etc/apache2/sites-available/myproject.conf

Добавь следующую конфигурацию:

config
<VirtualHost *:80>
    ServerName myproject.local
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/myproject/public
    
    ErrorLog ${APACHE_LOG_DIR}/myproject_error.log
    CustomLog ${APACHE_LOG_DIR}/myproject_access.log combined
    
    <Directory /var/www/myproject/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

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

Теперь перейдем к установке PHP. В Ubuntu установка apache php выполняется одной командой:

bash
sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

Проверим версию PHP:

bash
php --version

Создаем тестовый PHP-файл

Создадим простой файл для проверки работы PHP:

bash
sudo mkdir -p /var/www/myproject/public
sudo nano /var/www/myproject/public/index.php

Добавь следующий код:

php
<?php
phpinfo();
?>

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

Теперь установим систему управления базами данных. Установка apache mysql php почти завершена:

bash
sudo apt install mysql-server -y
Внимание: После установки MySQL необходимо выполнить настройку безопасности!

Запустим скрипт безопасности:

bash
sudo mysql_secure_installation

Во время настройки тебе предложат:

  • Установить пароль для root
  • Удалить анонимных пользователей
  • Запретить удаленный root-доступ
  • Удалить тестовую базу данных
  • Перезагрузить привилегии

Создание базы данных и пользователя

Подключись к MySQL и создай базу данных для проекта:

bash
sudo mysql -u root -p

В консоли MySQL выполни:

sql
CREATE DATABASE myproject_db;
CREATE USER 'myproject_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myproject_db.* TO 'myproject_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Финальная настройка LAMP-стека

Активируем наш виртуальный хост и перезапустим Apache:

bash
sudo a2ensite myproject.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2

Добавим запись в hosts файл для локального доступа:

bash
sudo nano /etc/hosts

Добавь строку:

config
127.0.0.1    myproject.local

Проверка работы стека

Создадим тестовый скрипт, который проверит подключение к MySQL:

bash
sudo nano /var/www/myproject/public/test_db.php
php
<?php
$host = 'localhost';
$dbname = 'myproject_db';
$username = 'myproject_user';
$password = 'StrongPassword123!';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    echo "Подключение к MySQL успешно!<br>";
    echo "Версия MySQL: " . $pdo->getAttribute(PDO::ATTR_SERVER_VERSION);
} catch (PDOException $e) {
    echo "Ошибка подключения: " . $e->getMessage();
}
?>

Теперь открой в браузере http://myproject.local/test_db.php. Если все настроено правильно, ты увидишь сообщение об успешном подключении.

Оптимизация и безопасность

Компонент Рекомендация Команда/Настройка
Apache Включить mod_rewrite sudo a2enmod rewrite
PHP Настроить лимиты sudo nano /etc/php/8.x/apache2/php.ini
MySQL Резервное копирование mysqldump -u user db > backup.sql
Файрвол Открыть порты sudo ufw allow 'Apache Full'

Настройка PHP для продакшена

Отредактируем php.ini для улучшения безопасности:

config
; Безопасность
expose_php = Off
display_errors = Off
display_startup_errors = Off

; Производительность
max_execution_time = 30
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M

; Сессии
session.cookie_httponly = 1
session.use_strict_mode = 1

Часто задаваемые вопросы (FAQ)

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

Создай файл info.php с содержимым <?php phpinfo(); ?> в корневой директории сайта и открой его в браузере. Ты увидишь подробную информацию о конфигурации PHP.

Почему я получаю ошибку 403 Forbidden?

Проверь права доступа к директории с файлами: sudo chown -R www-data:www-data /var/www/myproject и sudo chmod -R 755 /var/www/myproject.

Как изменить порт Apache?

Отредактируй файл /etc/apache2/ports.conf и измени Listen 80 на нужный порт, затем обнови конфигурацию виртуальных хостов.

MySQL не подключается из PHP

Убедись, что установлено расширение php-mysql: sudo apt install php-mysql и перезапусти Apache: sudo systemctl restart apache2.

Полезные команды для управления

Apache

  • sudo systemctl restart apache2 — перезапуск
  • sudo systemctl status apache2 — статус
  • sudo tail -f /var/log/apache2/error.log — логи ошибок

MySQL

  • sudo systemctl restart mysql — перезапуск
  • mysql -u user -p — подключение
  • SHOW DATABASES; — список баз
Профессиональный совет: Для продакшн-среды рассмотри использование связки Nginx + PHP-FPM вместо Apache. Она показывает лучшую производительность при высокой нагрузке.

Заключение

Поздравляю! Ты только что завершил полную установку сервера apache mysql php на Ubuntu. Теперь у тебя есть полностью функциональный LAMP-стек, готовый к развертыванию веб-приложений. Помни, что это базовая настройка — для продакшн-среды необходимо дополнительно настроить безопасность, мониторинг и бэкапы.

Ключевые моменты, которые мы прошли:

  • Установка и настройка Apache 2
  • Интеграция PHP с Apache
  • Установка и защита MySQL
  • Создание виртуальных хостов
  • Базовая оптимизация для безопасности и производительности

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

Поделиться:
Сохранить гайд? В закладки браузера