라즈베리파이 웹서버 구축 방법: Apache + vsftpd + 사용자 홈 디렉토리 설정 가이드

라즈베리파이로 웹서버를 만들고 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 구성은 물론 정확한 디렉토리 권한 설정이 핵심입니다. 위 과정을 차례대로 따라 하셨다면, 이제 여러분만의 완전한 라즈베리파이 웹 호스팅 환경이 완성되었을 것입니다.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *