라즈베리파이로 웹서버를 만들고 FTP 파일 업로드까지 가능하게 설정하는 완벽한 방법을 찾고 계신가요? 이 글에서는
test1
이라는 사용자 홈 디렉토리를 웹 루트로 사용하는 구조를 중심으로, Apache 웹서버와 vsftpd FTP 서버를 연동하여 웹개발 환경을 구축하는 과정을 상세히 안내합니다.
이 글에서 다루는 내용
- 라즈베리파이에 Apache 웹서버 설치 및 설정
- 사용자 홈 디렉토리를 웹 루트로 사용하는 방법
- FTP 서버(vsftpd) 설정과 FTP 파일 업로드 오류 해결
- 권한 문제 해결 및 보안 설정 팁
1. 라즈베리파이에 Apache와 vsftpd 설치
sudo apt update
sudo apt install apache2 vsftpd
2. 사용자 계정 생성 및 웹 루트 폴더 만들기
sudo adduser test1
mkdir -p /home/test1/www/html
이 경로(/home/test1/www/html
)를 웹 루트로 설정하여 Apache가 이 위치의 파일을 서비스하게 할 것입니다.
3. Apache 웹 루트 변경 및 접근 권한 설정
DocumentRoot 설정
sudo nano /etc/apache2/sites-available/000-default.conf
수정:
DocumentRoot /home/test1/www/html
디렉토리 접근 권한 추가
sudo nano /etc/apache2/apache2.conf
추가:
<Directory /home/test1/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Apache 재시작
sudo systemctl restart apache2
4. FTP 서버 vsftpd 설정 (파일 업로드 오류 해결 포함)
sudo nano /etc/vsftpd.conf
필수 설정값:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
# (옵션) FTP 파일 루트 설정
# local_root=/home/test1/www/html
# (옵션) 패시브 모드 설정
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100
pasv_address=라즈베리파이_IP
저장 후 FTP 서버 재시작:
sudo systemctl restart vsftpd
❗ FTP 파일 업로드가 안 되는 오류의 주된 원인은 chroot 설정과 홈 디렉토리 권한 문제입니다. 아래 권한 설정을 꼭 확인하세요.
5. FTP 업로드를 위한 권한 설정
사용자 그룹 설정
sudo usermod -aG www-data test1
디렉토리 권한 설정
sudo chown -R test1:www-data /home/test1/www/html
sudo chmod -R 775 /home/test1/www/html
sudo chmod 711 /home/test1
이 설정을 통해 Apache와 FTP 서버 모두 디렉토리에 접근할 수 있으며, 파일 업로드 오류도 방지할 수 있습니다.
6. FTP 파일 업로드 테스트
- FileZilla 또는 WinSCP로 접속:
- 호스트: 라즈베리파이 IP
- 사용자명: test1
- 비밀번호: 설정한 비밀번호
- 포트: 21
/home/test1/www/html
디렉토리에 파일 업로드 시도
또는 직접 확인:
echo "FTP 업로드 테스트" > /home/test1/www/html/index.html
웹브라우저에서 접속:
http://라즈베리파이_IP/
FTP 보안 설정 및 포트포워딩
- FTP는 암호화되지 않으므로, 외부 사용 시 SFTP 사용을 고려하세요.
- 공유기를 사용할 경우 다음 포트를 포워딩하세요:
- 21 (FTP)
- 10000~10100 (패시브 모드)
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 10000:10100/tcp
마무리 : 라즈베리파이 웹서버 + FTP 구성 체크리스트
항목 | 완료 여부 |
---|---|
Apache 설치 및 DocumentRoot 설정 | ✅ |
vsftpd 설치 및 설정 (write_enable , chroot 등) | ✅ |
사용자 계정 test1 권한 설정 | ✅ |
/home/test1/www/html 권한 설정 | ✅ |
FTP 파일 업로드 테스트 완료 | 🔄 테스트 필요 |
자주 검색되는 질문 (FAQ)
Q. FTP 업로드가 안 됩니다. 왜 그럴까요?
- 홈 디렉토리에 쓰기 권한이 있어서
vsftpd
가 차단하는 경우 →allow_writeable_chroot=YES
추가 필요 - 업로드 폴더의 권한 부족 →
chmod 775
로 해결
Q. 왜 사용자 홈 디렉토리를 웹 루트로 쓰나요?
- 개인 개발환경에서 FTP와 웹을 함께 쓰기 편리함
- Apache 설정만 조금 바꾸면 유연하게 운영 가능
결론
라즈베리파이를 웹서버로 구성하고 FTP 업로드까지 원활하게 진행하려면, Apache 설정과 vsftpd 구성은 물론 정확한 디렉토리 권한 설정이 핵심입니다. 위 과정을 차례대로 따라 하셨다면, 이제 여러분만의 완전한 라즈베리파이 웹 호스팅 환경이 완성되었을 것입니다.
Leave a Reply