라즈베리파이 웹 서버 구축 완전 가이드: 단계별 설치부터 FTP/호스트네임 설정까지
라즈베리파이(Raspberry Pi)는 손바닥만 한 크기로 풀 리눅스 서버를 돌릴 수 있는 가성비 최강 SBC입니다. 홈랩, IoT 게이트웨이, 개인 블로그, 개발 테스트 베드 등 용도로 웹 서버(Apache + PHP + MySQL/MariaDB)를 올리는 것은 가장 대중적인 활용법입니다. 본 가이드는 라즈베리파이 4/Zero 2 W/5 등 전 모델에 적용 가능한 최신 라즈베리파이 OS(구 라즈비안) 기준 단계별 구축법을 다룹니다.
사전 준비 (Prerequisites)
- 라즈베리파이 보드 (4 Model B, Zero 2 W, 5 등)
- 마이크로 SD 카드 (최소 16GB, Class 10/A1 이상 권장)
- 전원 어댑터 (Pi 4/5: 5V/3A USB-C, Zero: 5V/2.5A microUSB)
- 랜선(유선) 또는 Wi-Fi 설정 완료된 상태
- 외부 PC (SSH/브라우저 접속용)
1단계: 터미널 접속 (Accessing Terminal)
라즈베리파이 OS 데스크톱 터미널 (Ctrl+Alt+T)
방법 A: 데스크톱 환경에서
- 데스크톱에서 Ctrl+Alt+T로 터미널 열기
방법 B: 헤드리스(Headless) SSH 원격 접속
PuTTY로 SSH 접속 화면
- 라즈베리파이 IP 확인 (라우터 관리 페이지 또는
arp -a)
- PuTTY(Windows) 또는 터미널(macOS/Linux)에서:
ssh pi@<라즈베리파이_IP>
- 기본 계정:
pi / 기본 비밀번호: raspberry (최신 OS는 최초 부팅 시 강제 변경)
- 보안 필수: 최초 로그인 즉시
passwd로 비밀번호 변경, sudo raspi-config → SSH 키 인증 설정, 방화벽(uFW) 활성화
2단계: 패키지 업데이트 (Update Packages)
sudo apt update && sudo apt full-upgrade -y
최신 보안 패치, 커널, 펌웨어 적용. 완료 후 재부팅 권장: sudo reboot
3단계: 아파치(Apache) 웹 서버 설치
sudo apt install apache2 -y
- 자동으로 시스템 서비스 등록 및 시작 (
systemctl status apache2로 확인)
- 기본 문서 루트:
/var/www/html/
- 기본 페이지 확인: 브라우저에서
https://<라즈베리파이_IP>/ 접속 → "Apache2 Debian Default Page" 표시
4단계: PHP 설치 (동적 웹 페이지용)
sudo apt install php libapache2-mod-php -y
- PHP 8.x (Bookworm 기준) 설치, 아파치 모듈 연동 자동
- 테스트:
echo '' | sudo tee /var/www/html/info.php → https:///info.php 접속 확인
- 보안: 확인 후
sudo rm /var/www/html/info.php 삭제 필수
5단계: MariaDB (MySQL 호환) 데이터베이스 설치
sudo apt install mariadb-server -y
- MySQL 오라클 라이선스 이슈로 라즈비안/데비안은 MariaDB 기본 채택 (완전 호환)
- 설치 중 root 비밀번호 프롬프트 없음 (unix_socket 인증 기본)
6단계: MariaDB 보안 설정 (Secure Installation)
sudo mysql_secure_installation
대화형 프롬프트 응답 가이드:
- Enter current password for root: 엔터 (unix_socket 인증이라 비밀번호 없음)
- Switch to unix_socket authentication? Y
- Change root password? Y → 강력한 비밀번호 설정 (기록 필수!)
- Remove anonymous users? Y
- Disallow root login remotely? Y (로컬만 허용)
- Remove test database? Y
- Reload privilege tables? Y
7단계: 아파치 재시작 (Restart Apache2)
sudo systemctl restart apache2
PHP-MariaDB 연동 모듈 로드 반영
8단계: 웹 서버 테스트 (Test Web Server)
아파치 기본 페이지: 정상 동작 확인
- 브라우저에서
https://<라즈베리파이_IP>/ 접속 → 기본 페이지 표시
- 외부 네트워크에서 접속 시: 공유기 포트 포워딩(80→라즈베리파이 IP:80) 설정 필요
- 도메인 연결: DNS A 레코드 → 공인 IP, 공유기 DDNS 설정
웹 콘텐츠 디렉토리 권한 설정 (소유자 pi로 변경)
sudo chown -R pi:www-data /var/www/html
sudo chmod -R 775 /var/www/html
sudo usermod -a -G www-data pi
이후 pi 계정으로 SFTP/파일 관리자에서 자유롭게 파일 업로드/수정 가능
호스트네임 변경 (Changing Hostname)
기본 호스트네임 raspberrypi → 중복 방지/식별 용이하게 변경
sudo raspi-config 실행
- 1 System Options → S4 Hostname 선택
- 새 호스트네임 입력 (예:
mywebserver, 소문자/숫자/하이픈만 허용)
- OK → Finish → 재부팅 여부 Yes
또는 GUI: Preferences → Raspberry Pi Configuration → System → Hostname
FTP/SFTP 서버 구파일 전송용)
코드 개발은 메인 PC에서 → SFTP로 라즈베리파이 배포가 최적 워크플로
SFTP 활성화 (별도 FTP 서버 불필요, SSH 내장 SFTP 사용)
sudo raspi-config → 3 Interface Options → I2 SSH → Enable (이미 활성화됨)
- 또는 GUI:
Preferences → Raspberry Pi Configuration → Interfaces → SSH: Enabled
파일 권한 조정 (쓰기 권한 부여)
sudo chown -R pi:www-data /var/www/html
sudo chmod -R 775 /var/www/html
PC에서 SFTP 클라이언트 접속
- Windows: FileZilla (무료, SFTP 지원), WinSCP
- macOS/Linux: 터미널
sftp pi@, 또는 Cyberduck, Transmit
- 프로토콜: SFTP (SSH File Transfer Protocol), 포트 22
- 로그인: 사용자
pi, 비밀번호 (변경한 것)
- 원격 디렉토리:
/var/www/html 로 이동 후 파일 드래그 앤 드롭
FileZilla SFTP 접속 화면
보안 강화 필수 체크리스트 (Production Hardening)
항목
조치 |
| SSH | 포트 변경(22→비표준), 키 인증만 허용, root 로그인 금지, Fail2Ban 설치 |
| 방화벽 | sudo ufw enable, sudo ufw allow 22/tcp (SSH), sudo ufw allow 80/tcp (HTTP), sudo ufw allow 443/tcp (HTTPS) |
| HTTPS/SSL | Let's Encrypt Certbot으로 무료 인증서 발급/자동 갱신: sudo apt install certbot python3-certbot-apache && sudo certbot --apache |
| 데이터베이스 | 애플리케이션별 전용 유저/DB 생성, root 원격 접속 차단 |
| PHP | display_errors=Off, expose_php=Off, open_basedir 제한 |
| 백업 | 일일 DB 덤프(mysqldump), 주간 전체 백업(rsync/tar), 원격 저장소 복제 |
| 모니터링 | Netdata, Prometheus+Grafana, Uptime Kuma 등으로 리소스/가동률 감시 |
결론
라즈베리파이로 LAMP 스택(Apache+MariaDB+PHP) 웹 서버를 구축하는 것은 10분 내외면 완료되는 검증된 프로세스입니다. 본 가이드의 8단계(터미널→업데이트→Apache→PHP→MariaDB→보안설정→재시작→테스트)와 호스트네임/FTP/보안 설정까지 마치면 즉시 운영 가능한 웹 서버가 준비됩니다. 홈랩 입문자부터 소규모 상용 서비스까지 커버 가능하며, 트래픽 증가 시 Nginx+PHP-FPM, Docker 컨테이너화, 로드밸런싱, 클러스터링으로 확장 가능합니다. 라즈베리파이 웹 서버 구축 관련 기술 문의 언제나 환영합니다.