49e094fab48466cb91821f3e105b485a0c3827ef
# Установка и настройка LEMP-стека (Nginx + PHP 8.3 + MariaDB)
## Назначение скрипта
Автоматическая установка и настройка LEMP-стека для Debian/Ubuntu систем:
- Nginx (прокси на Apache)
- PHP-FPM 8.3 с оптимизированными настройками
- MariaDB (база данных)
- Redis (кеширование)
- LibreOffice и Java (для дополнительных задач)
## Поддерживаемые системы
- Debian-based (Debian 10+, Ubuntu 20.04+)
## Особенности конфигурации
1. **Структура серверов**:
- Nginx → слушает порт `80`, проксирует запросы → Apache на порт `8080`
- Apache → обрабатывает PHP через PHP-FPM 8.3
2. **Безопасность**:
- Удаление анонимных пользователей и тестовой БД в MariaDB
- Пароль root-пользователя БД: `muJh9tNY8sg0`
3. **Оптимизации PHP**:
- `upload_max_filesize = 64M`
- `memory_limit = 256M`
- `max_execution_time = 300`
- Включен и настроен OPcache
4. **Веб-интерфейс**:
- Автоматически генерируется статус-страница по адресу `/index.php`
## Запуск скрипта
```bash
sudo chmod +x install.sh
sudo ./install.sh
Установленные компоненты
| Компонент | Версия/Настройка |
|---|---|
| Nginx | Основной веб-сервер (порт 80) |
| Apache | Обработчик PHP (порт 8080) |
| PHP-FPM | 8.3 + расширения (gd, opcache и др.) |
| MariaDB | Пароль root: muJh9tNY8sg0 |
| База данных | ALTCor (utf8mb4) |
| Redis | Сервер кеширования |
| LibreOffice | Для работы с документами |
| Java | JRE (default-jre) |
Проверка установки
- Откройте в браузере:
http://localhost/ http://ВАШ_IP_СЕРВЕРА/ - Статус-страница покажет:
- Версию PHP (должна быть 8.3+)
- Подключение к базе данных
- Состояние OPcache
- Список активных расширений PHP
- Информацию о Java и LibreOffice
Ручные действия после установки
- Смените пароль root MariaDB:
sudo mysql -u root -p'muJh9tNY8sg0' ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль'; - Обновите
db_config.php:nano /var/www/html/db_config.php
Возможные проблемы
-
Ошибка запуска:
ОШИБКА: Ваш дистрибутив '...' не поддерживаетсяРешение: Только Debian/Ubuntu.
-
Службы не стартовали:
sudo systemctl restart apache2 nginx php8.3-fpm mariadb sudo journalctl -xe # для просмотра логов -
PHP 8.3 не установился: Убедитесь, что система обновлена:
sudo apt update && sudo apt upgrade -y
Директории и файлы
| Путь | Назначение |
|---|---|
/var/www/html/ |
Корневая веб-директория |
/var/www/html/index.php |
Статус-страница |
/var/www/html/db_config.php |
Конфиг БД (логин/пароль) |
/etc/nginx/sites-available/default |
Конфиг Nginx (прокси на Apache) |
/etc/apache2/sites-available/000-default.conf |
Конфиг Apache |
Активные службы
systemctl status apache2 nginx php8.3-fpm mariadb redis-server
Схема работы
graph LR
A[Пользователь] --> B[Nginx:80]
B --> C[Apache:8080]
C --> D[PHP-FPM 8.3]
C --> E[Статические файлы]
D --> F[MariaDB]
D --> G[Redis]
Важно! После установки немедленно смените пароль БД в MariaDB и обновите
db_config.php
Description
Languages
Shell
100%