树莓派搭建 Web 服务器全流程指南:从零到上线的 8 步实战
树莓派凭借低功耗、Linux 完整生态、GPIO 硬件接口,是家庭实验室、边缘网关、IoT 数据可视化、个人博客的理想 Web 服务器平台。本教程基于 Raspberry Pi OS (Bookworm/Bullseye),覆盖全模型 (Pi 4/5/Zero 2 W/Zero W),详述 LAMP/LNMP 部署、安全加固、域名绑定、FTP/SFTP 部署、服务监控全流程。
前置条件
- 树莓派已烧录 Raspberry Pi OS (64-bit 推荐) 并能联网;
- 已完成基础配置:修改默认密码、启用 SSH、设置静态 IP 或 DHCP 预留;
- 建议外接散热片/风扇,长期运行更稳定。
步骤 1:访问终端
两种方式:
- 桌面环境:Ctrl+Alt+T 打开终端;
- 远程 SSH:
ssh pi@<IP地址>,默认用户pi,密码raspberry(首次登录强制修改)。
步骤 2:更新软件源与系统包
sudo apt update && sudo apt full-upgrade -y
确保内核、固件、库文件均为最新,修复已知 CVE 漏洞。
步骤 3:安装 Web 服务器 — Apache / Nginx 二选一
方案 A:Apache (兼容性最强、.htaccess 支持)
sudo apt install apache2 -y
sudo systemctl enable --now apache2
方案 B:Nginx (高并发、低内存、反向代理首选)
sudo apt install nginx -y
sudo systemctl enable --now nginx
验证:浏览器访问 https://<Pi_IP>,出现默认欢迎页即成功。
步骤 4:安装 PHP (动态脚本引擎)
# Apache 搭配
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
sudo systemctl restart apache2
# Nginx 搭配 (PHP-FPM)
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
sudo systemctl enable --now php8.3-fpm # 版本号随发行版调整
# 修改 Nginx site-conf 添加 fastcgi_pass unix:/run/php/php8.3-fpm.sock;
sudo systemctl restart nginx
步骤 5:部署数据库 — MariaDB (MySQL 替代)
sudo apt install mariadb-server -y
sudo mysql_secure_installation
交互式向导:设置 root 密码、移除匿名用户、禁止 root 远程登录、删除 test 库、刷新权限。务必记录强密码。
步骤 6:数据库安全初始化 (已含步骤 5)
mysql_secure_installation 即完成上述安全加固,无需额外步骤。
步骤 7:重启 Web 服务验证
sudo systemctl restart apache2 # 或 nginx
sudo systemctl status apache2 # 检查 active (running)
步骤 8:测试 Web 服务与部署站点
浏览器访问 https://<Pi_IP>/ 看到默认页 → 成功。
站点根目录:
- Apache:
/var/www/html/ - Nginx:
/var/www/html/(默认同 Apache)
权限授予开发用户:
sudo chown -R pi:www-data /var/www/html
sudo chmod -R 775 /var/www/html
sudo usermod -a -G www-data pi
随后即可通过 SFTP/VS Code Remote 上传 PHP/HTML/前端构建产物。
修改主机名 (避免局域网冲突)
sudo raspi-config→ System Options → Hostname → 输入新名 (如myraspserver);- 或图形界面:Preferences → Raspberry Pi Configuration → Network → Hostname;
- 重启生效:
sudo reboot。
配置 FTP/SFTP 实现远程部署
- 开启 SSH (已含 SFTP):
sudo raspi-config → Interface Options → SSH → Enable; - 目录写权限:
sudo chown pi /var/www/html(已在步骤 8 完成); - 客户端推荐:
— Windows: FileZilla (协议选 SFTP) / WinSCP;
— macOS/Linux: 原生sftp pi@<IP>或 Cyberduck; - 登录凭据:用户
pi,密码为系统登录密码 (非默认); - 可选:vsftpd 若需显式 FTP (不推荐,明文传输)。
进阶生产级加固清单 (Checklist)
| 项目 | 建议配置 |
|---|---|
| HTTPS | Certbot 自动申请 Let's Encrypt 证书:sudo apt install certbot python3-certbot-apache/nginx → sudo certbot --apache/nginx |
| 防火墙 | sudo ufw allow 22/tcp; sudo ufw allow 80,443/tcp; sudo ufw enable |
| Fail2Ban | sudo apt install fail2ban 防暴力破解 SSH/Web 登录 |
| 数据库外网隔离 | bind-address = 127.0.0.1 (仅本地访问) |
| 日志轮转 | logrotate 已默认启用,检查 /etc/logrotate.d/apache2/nginx |
| 监控告警 | Netdata / Prometheus+Grafana / Uptime Kuma 监控 CPU/内存/磁盘/服务状态 |
| 自动备份 | cron + rsync/rclone 备份 /var/www/html 与数据库到 NAS/云存储 |
| 电源保护 | UPS (如 UPS HAT) + apcupsd 优雅关机 |
结语
树莓派 Web 服务器搭建并非终点,而是边缘计算、家庭自动化、个人数据主权的起点。掌握 “LAMP/LNMP 部署 → 安全加固 → 域名/HTTPS → 自动化运维” 全链路,即可构建稳定可控的 7×24 小时在线服务。如需 Docker 容器化部署 (Portainer/Home Assistant/Nextcloud)、ARM64 镜像优化、集群负载均衡或工业级可靠性设计,欢迎联系我们工程团队获取深度方案。
工业技术
- 树莓派温度画像:Python+SQLite+LabVIEW实战
- 树莓派配合 TMP006 红外温度传感器:Python 库与安装指南
- 树莓派与 Python 构建远程温度传感器:分步实战指南
- 树莓派 3 配合 PubNub 实现远程气象监测
- 树莓派 Zero 配合 Node‑RED 融合 TI SensorTag 与 Blynk 物联网平台
- 树莓派 PIR 运动传感器控制 LED 实战指南
- 树莓派 GPIO 读取按键:分步实战指南
- 基于树莓派的卫生间占用传感器:通过 Twilio 实现语音与短信提醒
- 树莓派家庭温度监测仪表盘:实时图表展示
- 树莓派无需 LIRC 捕获红外遥控指令:Python UART 方案
- 树莓派用 MCP3008 ADC 读取模拟传感器:LDR 与 TMP36 实例
- 将 Acconeer A111 脉冲雷达与树莓派集成:实用指南