Гид по технологиям

Как развернуть LAMP (Apache2, PHP, MySQL) на CentOS 5.x в Amazon Linux AMI (32/64‑бит)

• 6 min read • Серверы • Обновлено 28 Nov 2025
Установка LAMP на CentOS в Amazon Linux AMI
Установка LAMP на CentOS в Amazon Linux AMI

Кратко: создайте EC2‑инстанс с Amazon Linux AMI или CentOS 5.x, назначьте Elastic IP, импортируйте PEM‑ключ и подключитесь по SSH (Bitvise/Tunnelier или ssh). Установите стек LAMP командами yum, запустите и включите службы в автозагрузку, затем выполните базовую настройку безопасности MySQL.

Введение

Эта инструкция объясняет, как создать виртуальную машину на Amazon EC2 с образом Amazon Linux AMI или CentOS 5.x и как на ней установить LAMP‑стек (Linux, Apache, MySQL, PHP). Предполагается, что у вас уже есть аккаунт Amazon EC2 и базовые знания работы с SSH.

Краткое определение терминов:

  • EC2 — инфраструктура виртуальных машин Amazon.
  • AMI — образ виртуальной машины.
  • LAMP — набор ПО: веб‑сервер Apache, СУБД MySQL, язык PHP.

Важно: в Amazon разные образы и типы инстансов имеют свои ограничения (например, 64‑бит образы могут работать не на всех типах). Проверяйте требования в документации AWS для вашего региона.

Основные шаги (обзор)

  1. Запустить AMI‑инстанс в EC2.
  2. Создать/скачать PEM‑ключ и настроить группу безопасности (открыть порты 22, 80, 443 по необходимости).
  3. Назначить Elastic IP (рекомендуется для постоянного публичного адреса).
  4. Подключиться по SSH (Bitvise/Tunnelier для Windows или ssh для Linux/Mac).
  5. Установить и настроить Apache, PHP и MySQL.
  6. Проверить работу и включить автозапуск.

Создание инстанса AMI

  1. Откройте консоль EC2 и нажмите «Launch Instance» (Запустить инстанс).
  2. Выберите нужный AMI: Basic 32‑bit Amazon Linux AMI или 64‑bit версия в зависимости от архитектуры и задач.

Выбор AMI в консоли AWS

Обратите внимание, что 64‑бит версия может поддерживаться не на всех типах инстансов. Для тестирования можно выбрать micro (дешевле), для стабильной работы — small или больше.

  1. В настройках выберите:
  • Количество инстансов: 1.
  • Зона доступности: No Preference или ваша предпочитаемая зона.
  • Тип инстанса: small (или micro для теста).
  1. Нажмите Continue и используйте значения по умолчанию на следующих шагах, пока не дойдёте до выбора пары ключей.

  2. Если это первый инстанс — создайте новую пару ключей:

Create new key pair

Введите имя, например myKey, нажмите Create & Download your Key Pair — файл myKey.pem загрузится в браузер.

Важно: храните PEM‑файл в безопасном каталоге — он нужен для SSH‑доступа.

  1. На шаге Security Groups выберите или создайте группу безопасности с открытыми портами:
  • 22 (SSH) — обязательно для доступа.
  • 80 (HTTP) — если нужен веб‑доступ.
  • 443 (HTTPS) — при необходимости.

Назначение Elastic IP

  1. В панели EC2 выберите Elastic IPs и нажмите Allocate New Address.
  2. Подтвердите действие и выделите новый публичный IP.
  3. Выберите IP в списке и нажмите Associate; свяжите его с вашим инстансом (Instance ID).

Назначение Elastic IP

Теперь у инстанса будет постоянный публичный адрес, удобный для DNS и удалённого доступа.

Подключение с Windows с помощью Bitvise (Tunnelier)

Bitvise Tunnelier (теперь Bitvise SSH Client) удобен тем, что предоставляет SSH‑консоль и SFTP в одном окне.

Шаги подключения:

  1. Скачайте Bitvise SSH Client с bitvise.com и установите программу.
  2. Откройте Bitvise.
  3. В EC2 Console откройте Elastic IPs, выделите адрес и ассоциируйте его с инстансом (как описано выше).
  4. В Bitvise зайдите в User keypair manager и импортируйте myKey.pem (файл, который вы скачали).

Импорт ключа в Bitvise

Ключ добавлен в список

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

Обратите внимание на порядковый номер ключа в списке — он понадобится в настройках сессии.

  1. В поле Host укажите ваш Elastic IP, в поле Username — ec2‑user (для Amazon Linux) или centos/root, если вы используете CentOS образ и он требует другого пользователя.

  2. Настройте SFTP/console и нажмите Login.

Подключение через Bitvise

После успешного подключения вы получите консоль и SFTP‑панель:

Интерфейс Bitvise с консолью и SFTP

Подключение с Linux / macOS

Используйте стандартную команду SSH из терминала:

ssh -i myKey.pem ec2-user@myPublicIP

При необходимости замените пользователя на centos или root, в зависимости от AMI.

Установка LAMP на CentOS 5.x / Amazon Linux

После подключения выполните следующие команды от пользователя с правами root (через sudo):

  1. Обновите систему:
sudo yum update -y
  1. Установите Apache, PHP и MySQL server и модуль PHP для MySQL:
sudo yum install -y httpd php php-mysql mysql-server

Примечание: в некоторых Amazon Linux пакет mysql называется mariadb или mysql55‑server; в таком случае установите соответствующий пакет (например mysql55‑server или mariadb). Команды ниже учитывают стандартную SysV‑инициализацию CentOS 5.

  1. Запустите службы и включите их в автозагрузку:
sudo service httpd start
sudo chkconfig httpd on
sudo service mysqld start
sudo chkconfig mysqld on
  1. Выполните начальную безопасную настройку MySQL:
sudo mysql_secure_installation

Эта утилита позволяет задать root‑пароль MySQL, удалить тестовую базу, запретить удалённый вход root и удалить анонимных пользователей — рекомендую пройти все шаги.

  1. Проверьте работу Apache: создайте простой PHP‑файл:
echo "" | sudo tee /var/www/html/info.php

Откройте http://myPublicIP/info.php в браузере. Если вы видите страницу phpinfo(), то PHP и Apache работают корректно.

Настройка безопасности и рекомендации

  • Закройте все ненужные порты в группе безопасности. Оставьте 22 только для доверенных IP, 80/443 — если нужны внешние запросы.
  • После тестов удалите /var/www/html/info.php — она раскрывает информацию о версии PHP.
  • Регулярно обновляйте пакеты: sudo yum update.
  • Для производственных систем рассмотрите использование RDS для MySQL или настройку резервного копирования для данных.

Частые проблемы и способы их устранения

  • Ошибка доступа по SSH: проверьте права на myKey.pem (chmod 400 myKey.pem) и правильность пользователя (ec2‑user для Amazon Linux, centos для CentOS AMI).
  • Apache не стартует: проверьте /var/log/httpd/error_log и наличие конфликтующих служб на порту 80.
  • MySQL не запускается: смотрите /var/log/mysqld.log.

Альтернативные подходы

  • Использовать отдельные управляемые сервисы: Amazon RDS для MySQL и Amazon S3/CloudFront для статики.
  • Применить контейнеры (Docker) для изоляции приложений и более простой миграции.
  • Для современных проектов рассмотреть стек LEMP (Nginx вместо Apache) для лучшей производительности при высоких нагрузках.

Мини‑методология развёртывания (шаблон действий)

  1. Подготовка: выберите AMI и тип инстанса, запланируйте IP/домен.
  2. Сетевые настройки: настройте Security Group и назначьте Elastic IP.
  3. Доступ: создайте и скачайте PEM‑ключ, протестируйте SSH‑подключение.
  4. Установка ПО: обновление → установка httpd/php/mysql → запуск сервисов.
  5. Тестирование: phpinfo, простая страница HTML/PHP, проверка логов.
  6. Безопасность: mysql_secure_installation, закрытие портов, удаление отладочных страниц.
  7. Документирование: зафиксируйте IP, ключи, версии ПО.

Ролевая чек‑лист‑таблица

Администратор:

  • Создать AMI‑инстанс
  • Назначить Elastic IP
  • Настроить Security Group
  • Импортировать PEM‑ключ

Разработчик:

  • Установить зависимости PHP
  • Разместить тестовую страницу
  • Проверить подключение к базе данных

Оператор:

  • Настроить автозапуск служб
  • Настроить мониторинг и бэкапы

Критерии приёмки

  • SSH доступ по PEM‑ключу к инстансу возможен.
  • Apache возвращает страницу PHP (phpinfo отображается).
  • MySQL запущен, выполнены основные шаги mysql_secure_installation.
  • Порты 22 и 80 доступны только тем, кто должен иметь доступ.

Пример последовательности команд (сводка)

sudo yum update -y
sudo yum install -y httpd php php-mysql mysql-server
sudo service httpd start
sudo chkconfig httpd on
sudo service mysqld start
sudo chkconfig mysqld on
sudo mysql_secure_installation
echo "" | sudo tee /var/www/html/info.php

Диаграмма принятия решения (Mermaid)

flowchart TD
  A[Нужен LAMP на EC2?] --> B{AMI: Amazon Linux или CentOS?}
  B -->|Amazon Linux| C[Выбрать Amazon Linux AMI]
  B -->|CentOS 5.x| D[Выбрать CentOS 5.x AMI]
  C --> E[Создать инстанс, скачать PEM]
  D --> E
  E --> F{Нужен публичный IP?}
  F -->|Да| G[Назначить Elastic IP]
  F -->|Нет| H[Пропустить]
  G --> I[Настроить Security Group]
  H --> I
  I --> J[Подключиться по SSH]
  J --> K[Установить Apache, MySQL, PHP]
  K --> L[Тест и безопасность]

Краткое резюме

Вы создали инстанс в EC2, назначили Elastic IP, настроили доступ по SSH и установили LAMP‑стек. Проверьте работу сайта через браузер и выполните базовую настройку безопасности MySQL. Для продакшна рассмотрите отдельный управляемый сервис для БД и автоматизированные бэкапы.

Важно: удалите или ограничьте любые отладочные страницы и откройте SSH только для доверенных IP.

Заметки

  • Если вы используете образ с systemd (новее), команды управления службами будут отличаться (systemctl вместо service/chkconfig).
  • Для автоматизации развёртывания рассмотрите использование CloudInit или Ansible.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро