공격헬기
아파치 소프트웨어 제단에서 만든 오픈소스 웹서버 소프트웨어 있다. 팀 버너스리가 만든 NCSA HTTPd를 기반으로 리눅스에서 작동하도록 만들었다고 한다. 모듈을 통해 Php나 다른 프로그램과 연결해서 사용하며 최근에는 APM이라 불리는 삼신기가 한몸처럼 취급받고 있다. NGINX라고 불리는 새로운 웹서버 프로그램의 등장했지만, 아직까지 점유율 측면에선 23%로 1위를 차지하고있다.
아파치를 설치했다면 작동법을 확인하는 방법이 몇가지 있는데
service apache2 restart
htop | grep apache2
다음과 같은 명령어들로 확인해도 되고, 혹은 loopback ip (127.0.0.1)을 이용하여 접속, apache2 index.html 이 잘 나오는지 확인해보면 된다.
아파치가 정상적으로 설치되고나면 /etc/apache2 라는 경로가 생기게된다. 그 경로안에 apache2.conf 라는 파일이 있는데
이런식으로 터미널을 통해 접근하고, nano 편집기로 열어준다. (혹은 vi로도 가능하다)
주목할만은 2부분인데
1.
디렉토리 부분이다. 이 부분은 최초에 Required all Denied라고 되어있는데 이를 granted라고 바꿔주면, 나중에 내 서버에 접속하면 최초페이지가 내가 지정한 경로의 index.html로 나올수 있도록 설정할 수있다. 최초설정은 아파치2의 설명페이지이다. (/var/www/html) 폴더에 있다.
맨 아랫줄은 원래 비어있는 줄인데, php를 설치했다면 해당 구절을 추가하여 phpmyadmin에 접속하고, mysql을 수정할 수 있는 phpadmin 접속을 만들어 낼 수 있다. (아직 사용할 일이 없어서 나중에 추후 설명하도록 하겠다)
모든 과정이 끝나고나면 저장하고 service apache2 restart를 통해 아파치를 다시 켜주면 된다
이제 terminal에서 ip a를 통해 자신의 내부 ip 주소를 알아내고 같은 네트워크상의 컴퓨터에서 해당 주소를 입력하면 내 웹 서버에 접속할 수 있게 된다.
같은 네트워크란 하나의 공유기안에 구성되어있는 네트워크를 말한다. 공유기 설정에 들어가보신 분들은 알겠지만, 우리는 IPv4를 공유기로 받고, 그 공유기가 해당 네트워크를 내부 사설 ip를 통해 (보통 192.168.xxx.xxx) 각 기기에 분배해주는것이다. 일단 이상태까지 설정이 되었다면 내부망에서는 웹서버에 접근할 수 있다. 약간 언럭키 인트라넷 느낌이다.
이를 외부망에서 사용하게 하려면 포트포워딩이나 DMZ설정을 통해 외부에서 들어오는 통신요청을 받아주는 포트를 열어야한다.
이와 관련해선 다른 글에서 정리하도록 하겠다.
위에서 설명한것처럼 index.html의 기본경로는 /var/www/html안에 있다. 물론 여기다가 계속 써도 되겠지만, 나중에 여러 도메인을 사용하거나 하면 폴더를 따로 파주고 관리하는것이 유리할것이다. 따라서 우리가 할일은 경로를 바꿔주는것이다. 우선 위에 1번사진 옆에 directory에 새로 지정해줄 폴더의 주소를 적어줘야한다고 한다. (안해도 작동하기는 한다.)
그리고 /etc/apache2/sites-available/ 안에 있는 000-default.conf 파일을 수정해야한다.
안에 doucmentroot옆에 주소를 내가 지정할 주소로 넣어주면 된다.
그렇게 바꿔주고 그 폴더 안에 index.html을 넣어주면 다음부터 접속할때는 그 주소로 연결되게 된다.
이로써 기본적인 웹서버가 완성되었다.
물론 아직 가야할길이 멀다. 포트포워딩도 해야하고, php 사용법도 익혀야하고 api도 써봐야하고 토큰도 써봐야하고 할일이 많다. 우선 시간이 되는데로 과거 과제물이나 JS학습의 부산물들을 올려보도록 해야겠다.