*본 글은 ChatGPT와 Gemini를 활용해 작성하였습니다.
*라즈베리파이(Raspberry Pi)는 신용카드 크기의 초소형 단일 보드 컴퓨터로, 작은 크기와 낮은 전력 소모에도 불구하고 일반 PC와 유사한 기능을 수행할 수 있는 장치이다. 가격이 저렴하여 부담 없이 사용할 수 있으며, 리눅스 기반 운영체제를 지원해 프로그래밍 학습, 서버 구축, IoT 개발, 홈서버, 원격 데스크톱 환경 구성 등 다양한 용도로 활용된다. 여기서는 라즈베리파이를 웹서버 용도로 사용하는 방법에 대해 알아보자.
<준비물>
■ 라즈베리파이 본체 : 라즈베리파이 4B 4GB 와 쿨러 케이스

■ microSD 카드 : Sandisk Ultra 32GB
■ microSD 카드 리더기 : microSD를 PC의 USB에 연결할 목적으로 사용된다.

■ 전원 케이블 : C 타입 5V 3A 어댑터 (라즈베리파이 4B는 전력을 많이 소비하므로 5V 3A 이상 전력이 필요하다.)

<설치 과정>
(1) MicroSD 카드 리더기에서 MicroSD 카드를 넣고, PC의 USB에 연결한다.
(2) MIcroSD에 우분투 서버 버전을 설치하기 위해 PC에 Raspberry Pi Imager를 다운로드하여 설치한다.
위치 : https://www.raspberrypi.com/software/
(3) 라즈베리 파이 이미저를 실행하고 다음 과정으로 설치한다.
1) 라즈베리 파이 장치를 선택하세요 : 자신의 라즈베리 파이 장치를 선택한다.
2) 운영 체제 선택 : Other general-purpose OS > Ubuntu > Ubuntu Server 24.04.4 LTS (64-bit)
*우분투 서버 버전을 설치하여야 ssh가 자동으로 설치된다.
3) 저장소를 선택하세요 : 자신의 MicroSD 저장장치를 선택한다.
4) 사용자 지정 호스트 이름 선택 : ubuntu (임시로 지정)
5) 사용자 지정: 지역화 (다음과 같이 지정)

6) 사용자 지정: 사용자 이름 선택 : 자신의 계정을 만든다. ssh에 접속할 때 사용된다.
7) 사용자 지정 : Wi-Fi 선택 : 와이파이의 SSID와 비밀번호를 입력한다.
8) 사용자 지정 : SSH 인증 : 'SSH 사용'을 활성화한 후, 인증 방식을 '비밀번호 인증 사용' 옵션을 선택한다.
(4) '사용자 지정'을 완료했으므로 이미지를 저장 장치에 기록한다.
(5) 이미지가 저장된 microSD 카드를 라즈베리파이 장치에 연결한 다음 전원을 연결한 후 1~2분 기다린다. 그리고 웹브라우저에 192.168.0.1을 입력해 ipTIME 공유기에 로그인한 다음 'DHCP 서버 설정'에서 라즈베리파이의 무선랜 주소를 확인한다. 여기서는 호스트 이름이 ubuntu인 경우 192.168.0.32 임을 확인할 수 있다.

(6) PC에서 사용자 이름과 비밀번호를 입력해서 라즈베리파이의 ssh에 접속한다.
|
ssh <사용자 이름>@192.168.0.32
|
(7) 접속이 잘 되었으면 라즈베리파이의 서버를 최신 버전으로 업그레이드한다.
|
sudo apt update
sudo apt upgrade
|
(8) 가벼운 DE인 xfce4와 관련 유틸을 설치하고, 원격 접속을 위해 tigervnc를 설치한다.
|
sudo apt install xfce4 xfce4-goodies tigervnc-standalone-server tigervnc-common
|
(9) tigvervnc의 설정을 위해 xstartup 파일을 열고 수정한 후 권한 설정을 한다.
|
mkdir ~/.vnc
nano ~/.vnc/xstartup
chmod +x ~/.vnc/xstartup
|
(10) xstartup 파일에 다음과 같이 입력한 후 저장한다.
|
# 세션 초기화
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# 기본 설정 로드
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
# VNC 설정 도구 실행 (백그라운드)
vncconfig -iconic &
# XFCE4 실행 (가장 중요: 마지막 명령어는 & 없이 실행)
# 이렇게 해야 이 프로세스가 유지되는 동안 VNC 세션이 유지된다.
exec startxfce4
|
(11) 터미널에서 다음과 같이 입력해서 vncserver를 실행한 후, vnc 접속시 비밀번호를 설정한다. view-only password는 설정하지 않아도 되므로 n 을 입력한다. 비밀번호는 처음 한 번만 설정하면 된다.
* -localhost no 옵션은 외부 PC에서 직접 접속이 가능하게 한다.
|
vncserver -localhost no :1
|
(12) 쿠분투 PC에서 Discover를 열고 TigerVNC 뷰어를 설치한다. TigerVNC 전용 뷰어를 사용하면 창이 크기에 따라 해상도가 저절로 변경된다. 윈도우 환경에서는 UltraVNC Viewer를 사용하면 된다.

(13) VNC 서버 주소와 포트 번호로 5901을 입력하고, 생성한 비밀번호를 입력하면 라즈베리파이로 원격 데스크톱 연결이 시작된다.

(14) 라즈베리파이의 xfce4 데스크톱에 연결한 화면은 다음과 같다.

(15) 접속이 되는 것을 확인했으면 vncserver를 .bashrc 파일에 넣어 터미널이 실행될 때마다 자동으로 실행되게 한다. systemd 서비스에 넣는 것은 번거로우므로 이런 방식이 좀 더 나은 것 같다.
|
nano ~/.bashrc
|
*다음의 내용을 .bashrc 파일의 맨 아래에 넣는다.
|
vncserver -localhost no :1
|
(16) 한글 입력기 설정을 위해 ibus-hangul과 나눔, 백묵, 은 폰트를 설치한다.
|
sudo apt install ibus-hangul *nanum* *baekmuk* *unfonts*
|
(17) Application > Settings > IBus Preferences 메뉴를 클릭하여 'Input Method' 탭에서 Korean - Hangul 을 추가한다. 상단 패널에 있는 'KO' 아이콘을 마우스로 클릭해서 태극 마크가 보이게 하면 제대로 설치가 된 것이다.

(18) 속도가 빠른 brave 웹브라우저를 설치한 후, 리부팅한다.
|
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
sudo curl -fsSLo /etc/apt/sources.list.d/brave-browser-release.sources https://brave-browser-apt-release.s3.brave.com/brave-browser.sources
sudo apt update
sudo apt install brave-browser
sudo reboot
|
(19) xfce4 자체 터미널은 기능이 많지 않으므로 konsole을 설치한다
|
sudo apt install konsole
|
(20) 외부 IP를 내부 IP를 가진 장치와 연결하려면 포트포워딩이 필요하다. 웹브라우저를 열고 192.168.0.1 을 입력해서 ipTIME 관리자 페이지를 연다. 'NAT/라우터 관리 > 포트포워드 설정'으로 이동한다.
(21) 웹서버를 설정해야 하므로, '규칙 이름'을 임의로 'HTTPS'라고 입력한 후, '규칙 종류'를 'HTTPS'로 설정한다. '외부/내부 포트'는 자동으로 지정된 값을 사용한다. 내부 IP 주소는 라즈베리파이의 IP 주소인 192.168.0.32를 사용한다.

*마찬가지 방식으로 HTTP 설정도 함께 해야 한다.
(22) 다음과 같이 명령어를 입력해 nginx를 설치한 후, 서비스를 시작한다.
|
sudo apt install nginx
sudo systemctl start nginx
|
(23) nginx 부팅될 때 자동 실행되게 하거나 자동 실행되지 않게 하려면 다음과 같이 입력한다.
|
sudo systemctl enable nginx : nginx 서비스가 부팅될 때 자동 실행한다
sudo systemctl disable nginx : nginx 서비스가 부팅될 때 실행되지 않게 한다.
|
(24) 다음 문서를 참고하여 무료 도메인을 등록한다.
참고 : https://blog.naver.com/swkoo981/224007356185
(25) HTTPS로 보안 연결을 하기 위해 등록된 도메인으로 Certbot을 이용한 무료 SSL 인증서인 Let's Encrypt 인증서를 발급한다. snap으로 설치하면 추가 설정 없이 인증서를 자동으로 갱신할 수 있다. 아래 명령어에서 등록된 무료 도메인으로 'example.com'을 수정한다. (인증서의 유효기간은 90일이다.)
|
sudo snap install --classic certbot
sudo certbot --nginx -d example.com
|
(26) snap certbot은 기본 위치가 다르므로 심볼릭 링크를 만든다.
|
sudo ln -s /snap/bin/certbot /usr/bin/certbot
|
(27) 자동 갱신 타이머가 작동하는지 확인하기 위해 다음과 같은 명령어를 입력한다. 녹색 글자로 'active (waiting)' 이라는 메시지가 보이면 정상적으로 작동하는 것이다.
|
systemctl status snap.certbot.renew.timer
|
(28) 다음(NEXT) 갱신 시간을 확인하려면 아래와 같이 명령어를 입력한다. (snap certbot은 하루에 2회 인증서를 갱신한다.)
|
systemctl list-timers snap.certbot.renew.timer
|
(29) 등록된 도메인을 입력하여 접속하면 https로 보안 연결이 가능한다.

(30) 다음 문서를 참고해서 방화벽과 워드프레스 설정을 한다.
참고 : https://blog.naver.com/swkoo981/224126074215
참고 : https://blog.naver.com/swkoo981/224142340759
'웹서버' 카테고리의 다른 글
| 라즈베리파이에 Nginx와 워드프레스 설정을 하자 (0) | 2026.04.30 |
|---|---|
| 라즈베리파이 4B를 오버클록하는 방법 (0) | 2026.03.12 |
| 라즈베리파이에 원격 접속하는 방법 (0) | 2026.03.12 |