먼저, 라즈베리파이 접속을 위해 PuTTY라는 앱을 사용한다.
앱에서 내가 접속하고자 하는 주소와 포트를 입력하고 Open을 누르면 된다.
만약 자주 들어갈 주소라면, Saved Session에 이름을 지정하고 저장해 놓을 수도 있다.
접속할 때 PuTTY Security Alert 창이 뜰 수도 있는데, Accept 눌러주면 된다.
그러면 rasberrypi 창이 뜨고 로그인 화면이 나온다.
사용자 이름이랑 비밀번호를 입력하고 로그인하면 된다.
기본적으로 접속할 때 항상 한 번씩 확인하는 폴더 확인, sudo apt-get update
, sudo apt-get upgrade
를 확인해준다,
가장 대표적인 웹 서버로는 Apache와 Nginx가 있다.
두 서버는 굉장히 비슷하기 때문에 취향에 맞는 서버로 설치하면 된다.
나는 아파치를 설치하기로 결정했다.
아파치를 설치하기 위해서는 sudo apt-get install apache2
를 실행시키면 된다.
아파치를 설치했다면 이제 아파치를 시작시키기만 하면 된다.
sudo systemtcl start apache2
를 작성해주면 된다.
아파치 실행 명령어는 systemctl
, init.d
, service
등 여러가지가 있는데 각 명령어마다 문법이 조금씩 다르니 참고해서 사용하자.
systemctl
sudo systemctl start apache2.service
sudo systemctl stop apache2.service
sudo systemctl status apache2.service
service
sudo service apache2 start
sudo service apache2 stop
sudo service apache2 status
아파치를 제대로 작동 시켰다면, sudo systemctl status apache2.service
를 실행 시켰을 때 Active : active(running) 으로 나와야 한다.
하지만 Active : failed 로 나오고 있는 것을 볼 수 있다.
검색 결과, 어떤 경우는 SELinux 정책 문제일 수도 있고, 어떤 경우는 내가 사용하는 포트가 이미 사용중일 가능성이 있다고 한다.
내 경우에는 포트가 문제일 가능성이 더 높다고 생각해서 포트 상태를 확인해 보기로 했다.
보통 웹 서버는 80번 포트로 설치되기 때문에 80번 포트의 상태를 확인해준다. sudo losf -I :80
을 실행시켜주면 80번 포트를 사용하고 있는 프로세스를 확인할 수 있다.
여기서 엄청난 문제를 발견한다.
apache2가 실행중이라면, COMMAND 부분에 apache2
가 있어야 한다.
분명히 Apache를 설치했는데 Nginx가 80번 포트를 사용하고 있다.
즉, 내 우분투 서버에 이미 Nginx가 설치 되어 있었고, Apache를 추가로 설치할 필요가 없었던 것 --> Nginx 사용하기로 결정
마찬가지로 sudo systemctl status nginx
해주면 된다.
Active (running) 상태로 잘 되어 있다.
이제 웹 서버를 사용하기 위한 준비는 마쳤다.
/var/www/html/ 안에 내가 원하는 파일을 넣고 실행 시키면 되지만, 아무 파일을 넣지 않았어도 기본으로 있는 default page가 있다.
웹 브라우저를 키고 주소창에 내 ip 주소:포트번호 (ex 127.0.0.1:80) 로 접속해본다.
사이트에 연결할 수 없음
웹 브라우저에서 친절하게 확인해야 할 것을 알려준다.
1. 연결확인, 2. 방화벽 확인, 3. Windows 네트워크 확인
따라서 연결은 확인을 정확히 했으니, 방화벽을 확인해봐야 한다.
방화벽은 종류가 여러가지 있다. 기본적으로 리눅스 방화벽이라고 하면 iptables, ufw 등이 있다. 자신의 리눅스 운영체제에서 어떤 방화벽을 사용하고 있는지 파악하고 그 방화벽에 맞는 명령어를 사용해서 방화벽 상태를 확인하면 된다.
나의 경우에는 iptables를 사용하고 있기 때문에, sudo iptables -nL
을 실행시키면 방화벽 상태를 확인할 수 있다.
맨 윗부분에, Chain INPUT 부분에 현재는 아무 규칙도 없지만 규칙이 추가되어야 웹을 정상적으로 열 수 있다.
TCP로 80번 포트를 여는 규칙을 추가한다.
sudo iptables -I INPUT 1 -p tcp -dport 80 -j ACCEPT
다시 방화벽 상태를 확인해 보면
Chain INPUT 부분에 규칙이 추가된 것을 확인할 수 있다.
다른 방법으로는 sudo iptables -list-rules
를 실행시키면 간결히 확인 가능하다.
디폴트 페이지가 잘 나오는 것을 확인할 수 있다.
그런데 분명 nginx가 실행중이어서 nginx를 사용하려고 했는데 아파치가 나온다.... 일단 아파치를 사용하자
아파치는 var/www/html 에 내가 사용할 파일을 넣어주면 된다.
만약 넣고자 하는 폴더를 다르게 지정하고 싶다면, vim/etc/apache2/apache2.conf 파일을 열어서 디렉토리 변경을 해주면 된다.
WinSCP를 활용해서 파일을 옮겨준다. 폴더를 열어보면 디폴트 페이지인 index.html 파일이 있는 것을 확인할 수 있다.
여기 있는 index.html 을 지워주고 내가 원하는 파일을 옮겨놓으면 된다.
그럼 index.html 이 지워지지 않으면서 다음과 같은 경고 문구를 볼 수도 있다.
읽고 쓰기 권한 문제 이기 떄문에, 커맨드 창에서 chmod 777 -R /var/www/html
을 실행시켜 주자. 그 후 기존에 있던 index.html 을 삭제하고 원하는 파일을 옮기고 다시 실행시키면 된다.