Как развернуть LAMP (Apache2, PHP, MySQL) на CentOS 5.x в Amazon Linux AMI (32/64‑бит)
Кратко: создайте 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 для вашего региона.
Основные шаги (обзор)
- Запустить AMI‑инстанс в EC2.
- Создать/скачать PEM‑ключ и настроить группу безопасности (открыть порты 22, 80, 443 по необходимости).
- Назначить Elastic IP (рекомендуется для постоянного публичного адреса).
- Подключиться по SSH (Bitvise/Tunnelier для Windows или ssh для Linux/Mac).
- Установить и настроить Apache, PHP и MySQL.
- Проверить работу и включить автозапуск.
Создание инстанса AMI
- Откройте консоль EC2 и нажмите «Launch Instance» (Запустить инстанс).
- Выберите нужный AMI: Basic 32‑bit Amazon Linux AMI или 64‑bit версия в зависимости от архитектуры и задач.

Обратите внимание, что 64‑бит версия может поддерживаться не на всех типах инстансов. Для тестирования можно выбрать micro (дешевле), для стабильной работы — small или больше.
- В настройках выберите:
- Количество инстансов: 1.
- Зона доступности: No Preference или ваша предпочитаемая зона.
- Тип инстанса: small (или micro для теста).
Нажмите Continue и используйте значения по умолчанию на следующих шагах, пока не дойдёте до выбора пары ключей.
Если это первый инстанс — создайте новую пару ключей:
Create new key pairВведите имя, например myKey, нажмите Create & Download your Key Pair — файл myKey.pem загрузится в браузер.
Важно: храните PEM‑файл в безопасном каталоге — он нужен для SSH‑доступа.
- На шаге Security Groups выберите или создайте группу безопасности с открытыми портами:
- 22 (SSH) — обязательно для доступа.
- 80 (HTTP) — если нужен веб‑доступ.
- 443 (HTTPS) — при необходимости.
Назначение Elastic IP
- В панели EC2 выберите Elastic IPs и нажмите Allocate New Address.
- Подтвердите действие и выделите новый публичный IP.
- Выберите IP в списке и нажмите Associate; свяжите его с вашим инстансом (Instance ID).

Теперь у инстанса будет постоянный публичный адрес, удобный для DNS и удалённого доступа.
Подключение с Windows с помощью Bitvise (Tunnelier)
Bitvise Tunnelier (теперь Bitvise SSH Client) удобен тем, что предоставляет SSH‑консоль и SFTP в одном окне.
Шаги подключения:
- Скачайте Bitvise SSH Client с bitvise.com и установите программу.
- Откройте Bitvise.
- В EC2 Console откройте Elastic IPs, выделите адрес и ассоциируйте его с инстансом (как описано выше).
- В Bitvise зайдите в User keypair manager и импортируйте myKey.pem (файл, который вы скачали).



Обратите внимание на порядковый номер ключа в списке — он понадобится в настройках сессии.
В поле Host укажите ваш Elastic IP, в поле Username — ec2‑user (для Amazon Linux) или centos/root, если вы используете CentOS образ и он требует другого пользователя.
Настройте SFTP/console и нажмите Login.

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

Подключение с Linux / macOS
Используйте стандартную команду SSH из терминала:
ssh -i myKey.pem ec2-user@myPublicIPПри необходимости замените пользователя на centos или root, в зависимости от AMI.
Установка LAMP на CentOS 5.x / Amazon Linux
После подключения выполните следующие команды от пользователя с правами root (через sudo):
- Обновите систему:
sudo yum update -y- Установите 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.
- Запустите службы и включите их в автозагрузку:
sudo service httpd start
sudo chkconfig httpd on
sudo service mysqld start
sudo chkconfig mysqld on- Выполните начальную безопасную настройку MySQL:
sudo mysql_secure_installationЭта утилита позволяет задать root‑пароль MySQL, удалить тестовую базу, запретить удалённый вход root и удалить анонимных пользователей — рекомендую пройти все шаги.
- Проверьте работу 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) для лучшей производительности при высоких нагрузках.
Мини‑методология развёртывания (шаблон действий)
- Подготовка: выберите AMI и тип инстанса, запланируйте IP/домен.
- Сетевые настройки: настройте Security Group и назначьте Elastic IP.
- Доступ: создайте и скачайте PEM‑ключ, протестируйте SSH‑подключение.
- Установка ПО: обновление → установка httpd/php/mysql → запуск сервисов.
- Тестирование: phpinfo, простая страница HTML/PHP, проверка логов.
- Безопасность: mysql_secure_installation, закрытие портов, удаление отладочных страниц.
- Документирование: зафиксируйте 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.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента