Веб-сервер на Raspberry Pi: пошаговая настройка Apache, PHP, MySQL, FTP и смена hostname
Подготовка
- Raspberry Pi (любая модель: 4, 3B+, Zero 2 W, Zero W) с Raspberry Pi OS (32/64-bit), подключён к локальной сети
- Обновлённая система:
sudo apt update && sudo apt full-upgrade -y - Доступ: монитор/клавиатура или SSH (включите в
raspi-config → Interface Options → SSH)
Шаг 1: Доступ к терминалу
- Локально: Ctrl+Alt+T или терминал в меню
- SSH:
ssh pi@(логин:pi, пароль:raspberry— смените пароль!passwd)
Шаг 2: Обновление пакетов
sudo apt update
Шаг 3: Установка Apache2
sudo apt install apache2 -y
Проверка: в браузере https:// — должна открыться страница «Apache2 Debian Default Page».
Шаг 4: Установка PHP
sudo apt install php libapache2-mod-php -y
Тест: sudo echo "" > /var/www/html/info.php → откройте https://. После проверки удалите файл (sudo rm /var/www/html/info.php).
Шаг 5: Установка MariaDB (MySQL)
sudo apt install mariadb-server -y
sudo mysql_secure_installation
Настройка: задайте root-пароль, удалите анонимных пользователей, запретите удалённый root-вход, удалите test-БД, перезагрузите привилегии.
Шаг 6: PHP + MySQL (mysqli/PDO)
sudo apt install php-mysql -y
sudo systemctl restart apache2
Шаг 7: Перезапуск Apache
sudo systemctl restart apache2
Шаг 8: Тест веб-сервера
Создайте тестовый файл: echo ". Откройте в браузере по IP Pi.Hello from Raspberry Pi!
" | sudo tee /var/www/html/index.html
Веб-корень: /var/www/html/. Дайте права пользователю pi:
sudo chown -R pi:www-data /var/www/html
sudo chmod -R 775 /var/www/html
Смена hostname (имени хоста)
По умолчанию raspberrypi. Чтобы избежать конфликтов в сети:
sudo raspi-config→ System Options → Hostname → введите новое имя (только буквы, цифры, дефис) → OK → Finish → Reboot- Или:
sudo hostnamectl set-hostname myraspserver+ правьте/etc/hosts(заменитеraspberrypiна новое имя) → reboot
Настройка FTP (SFTP) для загрузки файлов
SFTP работает поверх SSH — отдельный сервер не нужен.
- Включите SSH (если выкл):
sudo raspi-config → Interface Options → SSH → Enable - Права на веб-папку (уже сделаны выше:
chown pi:www-data) - На ПК: FileZilla / WinSCP / Cyberduck → протокол SFTP, хост: IP Pi, порт 22, пользователь
pi, парольваш_пароль - Перетаскивайте файлы в
/var/www/html/
Не используйте классический FTP (порт 21) — пароли в открытом виде. Только SFTP/SCP/rsync.
Полезные дополнения
- HTTPS (SSL/TLS):
sudo apt install certbot python3-certbot-apache→sudo certbot --apache(нужен домен) - Node.js / Python / Docker: ставьте по необходимости
- Бэкапы: настройте rsync/borgbackup на внешний диск
- Файрвол:
sudo ufw allow 22/tcp && sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw enable
Заключение
Raspberry Pi — отличный маломощный веб-сервер для домашних проектов, IoT-шлюзов, тестовых стендов, личных блогов. LAMP стек (Linux, Apache, MariaDB, PHP) ставится за 10 минут. SFTP — безопасная закачка файлов. Смена hostname — порядок в сети. Вопросы по настройке, безопасности, производительности — обращайтесь!
Промышленные технологии
- Точный температурный профиль Raspberry Pi с Python, SQLite и LabVIEW
- ИК-датчик температуры TMP006 с Raspberry Pi: библиотека Python и руководство по настройке
- Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
- Удалённый мониторинг погоды на Raspberry Pi 3 с PubNub
- Интеграция TI SensorTag с Blynk через Node‑RED на Raspberry Pi Zero
- Управление светодиодом с PIR-датчиком движения на Raspberry Pi
- Чтение нажатий кнопки через GPIO на Raspberry Pi: пошаговое руководство
- Датчик занятости ванной комнаты на Raspberry Pi с голосовыми и SMS-уведомлениями через Twilio
- Мониторинг домашней температуры с панелью управления на Raspberry Pi
- Перехват команд ИК-пульта на Raspberry Pi без LIRC: подход через Python UART