}

블로그 소개


*여러분들의 따듯한 댓글은 5%, 팔로우는 10% 블로그 포스팅 속도와 퀄리티를 높여줍니다.*

프로필

팔로우 해주시면 포스트할 때 큰 힘이 됩니다!!! 사실 저도 이 팔로우가 무슨 기능이 있는지는 모르겠습니다만, 팔로우 수가 늘면 '날 응원해주는 사람들이 있구나' 생각이 들어서 큰 힘이 됩니다.

팔로어

다른 페이지로 이동


리눅스 독학 페이지 운영체제 독학 페이지 네트워크 독학 페이지 시스템 해킹 하드웨어 독학 페이지 프로그래밍 독학 페이지 보안 페이지

오스 페이지 다이어트 정보 페이지 게임 정보 페이지 인생 꿀팁


****사진을 클릭하시면 페이지로 이동할 수 있습니다!****

<===***===↓↓↓You can use translate using chrome ↓↓↓===***===>

2022년 7월 28일 목요일

리눅스 아파치 공부 매우 자세히!

안녕하세요 마무입니다. 오늘은 드디어 HTTP과 인터넷을 이용해 온라인 상에서 웹페이지(HTML)를 전송해주는 가장 중요한 서버! '리눅스 웹 서버 홈페이지", "리눅스 아파치 공부"에 대해서 다뤄보려고 합니다. 그리고 우리는 많은 웹 서버 프로그램들 중 가장 유명한 웹 프로그램이자, 지난 포스트들을 통해 설치한 '아파치 웹 서버'를 다룰 생각입니다.

당연히 서버 프로그램을 다루는 1급 범위이므로, 리눅스마스터 2급 범위(리눅스의 기본 명령어, vim, tar, 압축 등등)이나 네트워크 기초 개념들(인터넷이란, 서버, 클라이언트란, 프론트엔드 백엔드란, URL이란, 프로토콜 포트란)등등은 당연히 안다고 가정하고 설명할 것입니다.

그러므로 위에서 다룬 개념을 모른다면 반드시 꼭 보고 오시길 바랍니다.

리눅스마스터 독학 페이지

네트워크 독학 페이지

그리고 아파치, php, mysql은 이미 설치가 돼 있다 가정하고 설명합니다. 만약 안 깔려있으시면 '리눅스 독학 페이지 -> 리눅스 서버 프로그램 설치'에 정리해둔 포스트들을 보고 설치하시길 바랍니다.


-----목차-----

1. 아파치 웹 서버 기본 설정

i) ServerRoot

ii) Listen

iii) LoadModule

iv) <IfModule></IfModule>

v) User, Group

vi) ServerAdmin

vii) ServerName

viii) DocumentRoot

ix) <Directory></Directory>

x) DirectoryIndex

2. 정리

---------------

더 다양한 자료들은

리눅스마스터 독학 페이지

네트워크 독학 페이지

에서 찾아보세요!




1. 아파치 웹 서버 기본 설정


아파치 웹 서버 프로그램의 기본적인 설정을 위해 우리가 설치했던

"/usr/local/apache" 디렉토리 내부로 이동해줍니다.


/usr/local/apache/conf


보시면 아파치를 설치할 때 기본적으로 생성되는 디렉토리가 여러개가 있습니다.

각 디렉토리들에 대한 자세한 설명은 이후 '웹 아파치 디렉토리'만을 정리한 포스트에서 다뤄보겠습니다. 

지금 우리는 아파치의 기본 설정을 해줄 것이니, 설정(configuration)의 줄임말인 'conf' 디렉토리로 들어갑니다.


/usr/local/apache/conf/httpd.conf


들어가 보면 또 여러가지 파일이 보입니다만 사실 이번 포스트에서는 'httpd.conf'파일만 다룰 것입니다. 

다른 디렉토리나 파일들은 추후 다른 포스트들을 통해 웹 아파치 설정을 해가며 그때마다 제가 설명할 예정입니다.

초반부터 너무 이론만 배우면 흥미가 떨어지니까~~ 빨리 실전으로 넘어가자구요 ㅎㅎ

'httpd.conf' 설정 파일을 열어야 하니, 백엔드에서 가장 많이 쓰이고, 글들을 다채롭게 보여주는 'vim'을 이용해 열어보겠습니다.


i) ServerRoot 


httpd.conf 파일을 열고, 조그만 밑으로 내려보시면


httpd.conf ServerRoot


어떻게 보면 가장 중요한? ServerRoot란 지시어와 그 값으로 "/usr/local/apache"라는 값이 있습니다.

이 지시어의 의미는 영어 그대로 'Server(서버의) Root(뿌리, 근본이 되는 위치, 즉 최상위  디렉토리)'를 말합니다. 

기본적으로 아파치 파일들이 들어있는 디렉토리의 절대 위치가 적혀있으며, 저와 같이 직접 컴파일로 '/usr/local/'에 아파치를 설치하신 분들은 모두 똑같이 '/usr/local/apache'라고 돼 있을 겁니다.

'아파치 디렉토리' 위치를 변경할 게 아니면 건들 필요가 없는 지시어입니다만, 그래도 기본이자 젤 중요한 지시어니 알고는 있어야죠 ㅎㅎ

좀 더 밑으로 내려보겠습니다.

참고로 '#'으로 시작하는 모든 파란 글자들은 프로그램에 영향이 하나도 없는 '주석'입니다.(파이썬의 주석과 같습니다)


ii) Listen 


httpd.conf Listen


자 좀 내려보면 주석이 제거된 지시어 'Listen'이 보입니다.

정말 중요한 지시어 중 하나로, 'Listen(요청을 듣겠다)'라는 의미대로 특정 IP와 특정 포트로 온 요청만 아파치 웹 서버가 처리하겠다 의미입니다.

그동안 네트워크 기초 개념에서 배웠듯이 우리가 사용하는 웹 서버는 HTTP(80), HTTPS(443)포트를 사용합니다.

그리고 보통 기본적으로 '모두'가 웹 사이트에 접속할 수 있죠. (우리가 구글을 검색해서 들어가는 것을 생각해봅시다. 누구나 이용할 수 있잖아요?)

그러므로 특정 IP를 제한하지 않고, 80포트로만 요청을 보내면 누구나 웹 서버에 접근할 수 있게 'Listen 80'이렇게 HTTP 80포트만 적는겁니다.

요즘은 https를 쓰는게 기본인데, 왜 443은 추가 안하나요?

당연히 https를 사용한다면 Listen 443도 추가해줘야 합니다만, 저희는 아직 HTTPS를 구축하지 않았기에 별 의미가 없기 안 적은겁니다.

그리고 밑에 'LoadModule ~~~'이란 지시어가 보이는데요

저와 같이 php와 mysql을 연동하셨던 분들이라면 미리 봤을 '동적 모듈을 사용하겠다'는 지시어입니다.


iii) LoadModule 


Load(아파치에 싣겠다)Module(모듈을)이란 뜻대로, 'so'로 끝나는 동적 모듈을 아파치에 장착하겠다는 의미죠.

기존에 사용중인 모듈을 사용하고 싶지 않을 땐 주석 '#'을 붙이고 아파치를 재시작을 하면 됩니다.

LoadModule 지시어가 끝날 때까지 좀 더 내려보죠~


iv) <IfModule></IfModule> 


<IfModule unixed_module>


첨 보는 형태가 나왔습니다.

<IfModule unixed_module>

User daemon

Group daemon

</IfModule>

이란 형태인데요. 

우선 이 <IfModule "모듈명"> </IfModule>이와 같이 <>와 </>를 같이 쓰는 지시어를 그 안에 무언가를 코드를 담고 있는 '컨테이너(container) 지시어'라고 합니다.

HTML <h1></h1>와 같은 원리라고 보시면 됩니다.

그리고 이 컨테이너 지시어 중 <IfModule>If(만약)Module(모듈) ~~~가 있으면 </IfModule> 사이에 있는 코드를 실행하란 뜻입니다.

여기선 <IfModule unixed_module>이니, 'unixied_module'이 사용되고(Load) 있으면

User daemon

Group daemon 

지시어를 실행하란 의미죠.


v) User, Group 


User와 Group 지시어프로그램을 실행할 때의 소유자와 그룹을 무엇을 할지를 지정하는 지시어입니다. 여기선 소유자와 그룹을 'daemon'으로 설정하란 의미죠.

'daemon'이란 리눅스 시스템에서 기본적으로 데몬(서버) 프로그램에 사용하라고 만들어 놓은 기본적인 유저와 그룹입니다.

왜 이런 것을 사용하냐면, 기본적으로 유닉스/리눅스는 프로그램을 실행할 때 반드시 소유자와 그룹을 가져야 하며, 보통 실행한 유저와 유저의 그룹으로 설정이 됩니다.

그치만 이건 사실 상당히 보안이 취약한 메커니즘입니다. 왜냐면 보통 서버를 여는 유저는 보통 '관리자(root)'며, 이 말은 즉슨 프로그램(웹 서버가)이 '관리자'의 권한으로 실행된다는 겁니다.  

그렇기에 옛날엔 아파치 웹 서버가 관리자의 권한으로 실행되고 있기에, 원격에서 접속하는 클라이언트가 관리자의 권한으로 서버에 악의적인 행동을 할 수 있었습니다.

그래서 이러한 보안 취약점을 막기 위해 도입한 것이 바로 'daemon'이란 유저와 그룹이라는 것이죠. 그리고 유닉스/리눅스의 가장 기본적인 보안 기능을 제공하는 모듈이 바로 'unixed_module'입니다.

이것도 사실 기본적으로 'daemon'으로 설정이 돼 있기에 우리가 건들 것이 없습니다만~ 보안이 중요한 리눅스마스터 1급이나 보안 관련 자격증 시험에 나올 수도 있으니 알아두면 좋다는 것이죠.

참고로 소스코드로 설정한 게 아닌 기본적으로 깔려있는 아파치 서버인 경우User와 Group 지시어 값으로 'apache'가 설정 돼 있습니다. 이것도 아파치용으로 사용하기 위해 만들어 놓은 유저와 그룹이구나~ 하면 됩니다.

자 좀 더 내려보죠!


vi) ServerAdmin 


httpd.conf ServerAdmin


ServerAdmin이란 지시어가 보이는데요, 이것도 Server(서버의)Admin(관리자)란 말 그대로 아파치 웹 서버가 실행되다 문제가 발생했을 때 알려줄 관리자의 이메일 주소를 쓰는 곳입니다.

아파치 웹 서버가 기본적으로 제공하는 페이지(error 문서들)에서 여기에 적은 어드민 메일 주소를 보여줍니다.

젤 중요한 웹 아파치 서버가 작동 중인데, 특정 행위를 하다가 에러가 뜰 경우 빨리 관리자에게 알려야 하지 않습니까? 그럴 때를 위해 존재하는 지시어라고 보면 됩니다.

현실감을 살리기 위해 자기 이메일 주소를 적는 것도 괜찮습니다만 안 적어도 돼요~


vii) ServerName 


그 밑에 ServerName 지시어란 아파치 웹 서버를 처음 실행할 때 젤 중요한 지시어로 Server(서버의)Name(도메인 이름 or IP)입니다.

저 같은 경우 제 가상머신이 사용 중인 사설 IP인 192.168.3.132를 적었습니다만, 자신의 IP를 모르면 그냥 자신의 컴퓨터 IP를 가르키는 '127.0.0.1'을 적어도 됩니다.

저희는 공부 중이니 사설 IP를 적었지만, 실제 웹 서버는 자기 회사가 가지고 있는 도메인 네임을 적습니다. 도메인이 없으면 공인 IP를 적고요

'ServerName' 지시어는 반드시 처음에 자기 IP를 적거나 127.0.0.1를 적어줘야 하는데요, 안 적을 시 아파치를 실행할 때 

"could not reliably determine the server's fully qualified domain name, suing localhost.localdomian."

이렇게 인식할 수 없는 도메인 네임이라며 아파치가 실행이 안 되거든요 그러니 반드시 적어줍니다.

그 외 더 중요한 지시어들이 있지만~~ 일단 웹 서버를 처음 실행할 땐 여기까지만 알면 됩니다!

일단 웹 서버를 한번 실행하고 나머지 지시어는 차차 기능들을 추가하며 알아가보죠~

vim으로 보고있는 httpd.conf를 :wq저장하고 나가줍니다.


/usr/local/apache/bin/apachectl

그리고 "cd ../bin"를 이용해 "/usr/local/apache/bin"으로 이동해 줍니다.

bin(binary) 디렉토리란 이름대로 컴파일 된(2진수) 아파치 프로그램용 명령어들이 모여있습니다.

보시면 수 많은 명령어들이 있을텐데요, 이 중 자주 사용하게 될 명령어와 그 세부 옵션들은 다음에 따로 다루도록 하고, 지금은 아파치 웹 서버 실행에 필요한 명령어만 알려드리겠습니다.

현재 bin디렉토리 내에서 "./apachectl start"를 쳐줍니다.


apachectl start

이 apachectl이란 이름 그대로 apache control를 하는 명령어라 'apachectl'이라 부르는 것이며, 시작할 것이기에 'start'를 인자로 준 겁니다.

참고로 이후 웹 서버 설정 파일을 변경하고 다시 적용할 땐 './apachectl restart'를 쳐줄겁니다.

왜 설정 파일을 변경한 후엔 재시작을 해야하냐 

라는 원시적인 궁금증이 생길분들도 있을 텐데요, 왜냐면 리눅스의 서버 프로그램이 시작될 땐 서버 프로그램의 설정 파일을 '읽어들여서' 프로그램을 시작하기 때문입니다.

그러니 설정 파일을 변경했고 적용하고 싶으면 당연히 '다시 시작' 해야하는 것이죠.

명령어를 쳤을 때 아무것도 없으면 성공적으로 실행이 된 겁니다.(누누히 말했듯 무소식은? 희소식이다~)

만약 에러가 떳다면 

아파치 웹 오류 모음들

을 들어가셔서 해결해보세요

그래도 사람이 어? 눈으로 확인해야하지 않겠냐! 싶으실 겁니다.

확인하는 방법은 크게 2가지가 있습니다.

a. 브라우저를 켜서 127.0.0.1을 친다

b. 'ps aux | grep apache' 또는 'ps aux | grep httpd' 와 같이 프로세스 확인 명령어를 쳐서 프로세스가 실행 중인 것을 확인한다

저는 눈으로 보여주기 위핸 'a'방법을 보여드릴거고, 다른 분들은 'b'까지도 해보셨으면 좋겠습니다.(우린 이제 리눅스마스터 1급 범위잖아요~)

브라우저 아무거나 켜서 

주소창에 127.0.0.1을 치면 둘 중 하나가 나올 겁니다.

저와 같이 직접 소스 코드를 컴파일 해 설치한 경우

apache It works!


이렇게 'It works!'란 글이 보일 것이고

기존에 깔려있는 아파치를 사용하신 분들은


apache Testing123..


이런 'Testing123..'이런 페이지가 나올 겁니다.

사실 둘의 차이는 소스 코드를 컴파일한 아파치는 기본적으로 'It works!'라 적혀있는 html파일이 있는 것이고, 기존에 설치돼 있던 아파치는 아무런 파일이 없기에 아파치 프로그램이 제공하는 'Testing123..'이란 페이지가 나오는 것이죠.

자 그럼 이 'It works!'란 html파일은 도대체 어디에 있을까요? 이것을 쉽게 찾는 방법은 바로 'httpd.conf' 설정 파일을 읽는 겁니다.

왜냐? 이 httpd.conf에 아파치 웹 서버가 어떤 디렉토리의 어떤 파일을 읽는지가 설정 돼 있거든요!

다시 "vim /usr/local/apache/conf/httpd.conf"를 쳐서 보고 'DocumentRoot'란 지시어가 나올 때까지 내려봅시다.


viii) DocumentRoot 


httpd.conf DocumentRoot


가장 중요한 지시어 중 하나인 'DocumentRoot'입니다. 이 지시어는 Document(문서의)Root(최상위, 뿌리)라는 뜻으로 웹 서버에서 제일 먼저 제공할 문서들(html등등 파일)이 들어있는 최상위 디렉토리(/)를 설정하는 지시어입니다.

여기서 '웹 서버에서 제일 먼저 제공할 문서(html파일)'라는 것은 어려운 거 없습니다. 바로 웹 서버에 접속했을 때 제일 먼저 보이는 '홈페이지'를 말합니다.

예를 들어 우리가 www.naver.com이라고 주소창에 적으면, 짜잔~하고 네이버 홈페이지가 나오죠? 사실 이건 네이버가 웹 서버의 설정 파일에서 DocumentRoot 지시어에 설정한 디렉토리에 들어있는 html 파일입니다.

물론 정확히 말해서 이 'DocumentRoot'이름 'Root'가 들어가는 만큼 실제 웹 사이트의 '/'를 말합니다.

무슨 말이냐? 

저희가 사용하는 수 많은 웹 사이트의 홈페이지 www.naver.com, www.google.com 등등은 사실 정확힌 "www.naver.com/", "www.google.com/"이라는 것이죠.

모든 브라우저(크롬, 웨일, 익스플로러, 파이어폭스, 사파리 등등)에서 F12키를 누르면 나오는 '개발자'모드에서 '네트워크'를 선택 후 네이버 웹 사이트를 새로고침 해보시면


www.naver.com/


저희 브라우저는 네이버에 '/'라는 경로로 요청(/경로에 맞는 파일을 보내줘)을 보내는 것을 볼 수 있습니다.

그치만~ 편의성을 위해 실제로 홈페이지에선 www.naver.com와 같이 '/'를 생략합니다. 물론 

주소 창에 www.naver.com/이라 쳐보면 같은 의미이기에 그대로 홈페이지가 나옵니다.


ix) <Directory></Directory> 


<Directory "디렉토리 절대 위치"></Directory>란 컨테이너 지시어는  "디렉토리 절대위치"를 아파치가 사용하겠고, 이 안에 쓴 지시어들을 적용하겠다란 뜻입니다.

여기서 <Directory "/usr/local/apache/htdocs"> </Directory>란 컨테이너 지시어는 '/usr/local/apache/htdocs'라는 디렉토리를 아파치가 인식하겠고 그 안에 있는 

Option Indexes FollowSymLinks 등등 지시어를 사용하겠다란 의미입니다.

이 'Option'과 같은 내부 지시어는 추후 보안과 관련된 포스트를 할 때 다루겠습니다.

이렇듯 <Directory "디렉토리 절대위치"> </Directory>는 서버에 있는 특정 디렉토리를 아파치가 인식하게 하기 위해 꼭 적어줘야 하는 컨테이너 지시어입니다.

기본적으로 디렉토리를 지정하면디렉토리 하위에 있는 파일들에게도 설정한 지시어들이 자동으로 적용됩니다.

비슷한 역할로 디렉토리 단위가 아닌 파일 단위로 지정할 때 쓰는 <Files "파일"></Files>서버에 없는 다른 위치 데이터도 지정할 수 있는 <Location "URL"></Location>도 있습니다.

httpd.conf 파일을 좀만 더 내려서 지시어 하나만 더 보겠습니다.

좀만 더 내려보시면


x) DirectoryIndex 


httpd.conf DirectoryIndex


아까 배운 <IfModule></IfModule> 컨테이너 지시어와 그 밑에 DirectoryIndex란 지시어가 보입니다. 

Directory(디렉토리)Index(색인)이란, 우리가 책을 폈을 때 제일 먼저 '색인'이 나오는 것처럼 웹 서버에 특정 디렉토리를 들어갔을 때 클라이언트가 가장 먼저 볼파일을 지정하는 지시어입니다.

정확히는 '디렉토리' 요청을 받았을 때 제일 먼저 보여줄 파일입니다.

디렉토리 요청? 

아아 당황하지 마세요!

간단하게 생각해서 디렉토리란 여러가지 파일을 가지고 있는 파일이잖아요? 그런 막연한 디렉토리 요청을 받으면, 당연히 갖고 있는 많은 파일들 중 어떤 파일을 보낼지 정해야할 것 아닙니까? 

아까 위에서 홈페이지 www.naver.com은 실제로는 'www.naver.com/'이라고 했던 것 기억이 나십니까?

이 말은 즉 www.naver.com에 '/'란 최상위 디렉토리 정보를 클라이언트가 서버에 요청을 한 것이고, 네이버 웹 서버는 'DocumentRoot'로 지정한 디렉토리 내에 있는 DirectoryIndex 지시어에 설정된 파일을 클라에게 보내준 겁니다. 

만약 우리가 웹 서버를 지금 설정으로 열고, 다른 누군가가 우리 웹 사이트에 접속하면 우리는 DocumentRoot로 설정한 /usr/local/apache/htdocs 디렉토리 안에서 DirectoryIndex로 설정한 index.html을 제일 먼저 보낸다는 거죠

즉 클라가 우리 웹 사이트에 접속했을 때 보는 홈페이지는 바로 '/usr/local/apache/htdocs/index.html'이라는 겁니다.

자 확실한 이해 및 정리를 위해 클라이언트가 네이버 웹 사이트에 접속하는 과정을 보여드리겠습니다.

클라이언트가 www.naver.com이란 주소를 브라우저에 침 --> 

브라우저는 www.naver.com을 자동으로 www.naver.com/으로 처리 --> 

네이버 웹 서버는 'DocumentRoot인 '/'요청을 받은거라 계산 --> 

네이버 웹 서버는 DocumentRoot 지시어에 지정된 디렉토리 내부로 들어감 --> 

네이버 웹 서버는 DocumentRoot 디렉토리 안에서 DirectoryIndex 지시어로 지정된 파일을 선택하고 클라에게 보냄 -->

클라에게 전송된 파일들을 브라우저가 해석해서 클라에게 홈페이지로 보여줌

이러한 일련의 과정이 있다는 것이죠.

(물론 네이버가 현재는 어떤 웹 서버를 사용하는지는 잘 모르겠으나 어떤 웹 서버 프로그램이든 그 원리든 거의 비슷합니다.)

자! 이렇게 웹 서버가 홈페이지를 보내는 원리를 알았으니 이제 직접 'It works!'글을 보여주는 우리 웹 서버의 홈페이지를 찾으러 가봅시다.

배운대로 DocumentRoot에 지정된 "/usr/local/apache/htdocs(http documents)"로 이동해보겠습니다.


/usr/local/apache/htdocs/index.html

이야 이동해보니 정확하게 'DirectoryIndex'에 지정된 이름인 'index.html'이 보입니다!

vim으로 index.html을 열어보겠습니다!


apache index.html

아마 대략 이런 비슷한 'It works!'란 문자열을 출력하는 HTML이 작성돼 있을겁니다.(저는 index.html을 변경했어서 기존에 어떻게 작성돼 있었는지 정확히 기억이 안납니다 ㅠㅠ)

지금은 단순히 문자열만 출력하는 내용이라 '이딴게 홈페이지라고?'

하실 수 있겠지만, 이 파일에 이제 더 많은 HTML을 적고, 또 CSS와 자바스크립트까지 같이 사용한다면 훌륭한 홈페이지가 됩니다.

https://httpd.apache.org/

자 한번 이 아파치 공인 웹 서버 들어가신 다음 


웹 사이트 소스코드 복사하기


위 사진처럼 F12 -> 요소(Elements)를 눌러 홈페이지의 소스코드를 복사해보세요

그리고 아까 우리 웹 서버의 'index.html' 내용물을 모두 지우고, 복사해둔 아파치 공식 웹 사이트의 소스를 붙여넣기를 해봅니다.

복사한 웹사이트 소스코드 붙여넣기


복잡해도 상관 없습니다. 여기서 그냥 ':wq'를 이용해 저장하고 나가고, 다시 브라우저에 주소창에 "127.0.0.1"를 적어봅니다.

그럴싸한 복사한 페이지

짜잔~~ 아까보단 훨씬 그럴싸한 홈페이지가 나옵니다~

???
이게 어딜봐서 홈페이지입니까? 완전 다르구만!

흠흠... 

자자 왜 이렇게 됐냐면 바로 아파치 공식 웹 사이트에서 홈페이지를 만들 때 사용하는 css파일과 자바스크립트 파일등 여러 소스들이 우린 없기 때문에 그렇습니다.

그래서 순수하게 HTML으로만 홈페이지가 구성됐기에 이렇게 좀 이상하게 된거죠 하하..




2. 정리


별거 없어보이지만 오늘 이 포스트에선 정말 웹 서버를 운영할 때 가장 중요한 지시어들홈웹 서버가 페이지를 보여주는 원리를 배웠습니다.

사실 오늘 배운 것에 HTML을 좀만 아신다면 바로 그럴싸한 여러분만의 웹 페이지를 만들 수가 있습니다.

다음 포스트에선 오늘 배운 지식들을 활용해 좀 더 그럴싸한 여러 페이지를 만들어 볼겁니다.  

그럼 오늘 배운 정보들을 정리하고 마치도록 하겠습니다!


a) 가장 기본적인 아파치 웹 서버의 설정 파일은 httpd.conf다.

b) 아파치를 시작하는 명령어는 "/usr/local/apache/bin/apachectl start"이다.

c) ServerRoot 지시어는 아파치 프로그램의 있는 디렉토리를 가리키는 지시어다.

d) httpd.conf 내 #으로 시작하는 건 모두 주석이다.

e) Listen 지시어는 어떤 IP에 어떤 포트로 들어온 요청만 받아들일지 정하는 지시어다.

f) LoadModule 지시어는 'so'로 끝나는 동적 모듈을 아파치에 장착하겠다란 지시어다.

g) <IfModule "모듈"></IfModule> 컨테이너 지시어는 If(만약)Module(모듈) ~~~가 있으면 </IfModule> 사이에 있는 코드를 실행하란 뜻

h) User와 Group 지시어는 프로그램을 실행할 때의 소유자와 그룹을 무엇을 할지를 지정

i) ServerAdmin 지시어는 아파치 웹 서버가 실행되다 문제가 발생했을 때 알려줄 관리자의 이메일 주소를 쓰는 곳

j) ServerName지시어는 웹 서버의 도메인 이름이나 IP를 적는 곳, 첨 설치 때 바꾸지 않을 시 아파치 실행이 안됨

k) DocumentRoot 지시어는 웹 서버의 '/', 즉 홈페이지가 있는 디렉토리를 지정하는 지시어다.

l) <Directory "디렉토리 절대 위치"></Directory>란 컨테이너 지시어는 "디렉토리 절대위치"를 아파치가 인식하게 만들고, 이 안에 쓴 지시어들을 적용하겠다란 뜻

m) DirectoryIndex 지시어는 디렉토리 요청이 있을 때 Index(색인)처럼 가장 먼저 보낼 파일을 지정하는 지시어




꽤나 긴 글 읽느라 고생하셨습니다~ 도움이 됐다면 따뜻한 댓글 및 팔로우 클릭은 저에게 큰 힘이 돼 포스트 퀄리티 향상에 도움을 줍니다!

그럼 다음에 더 좋은 퀄리티 포스트로 찾아뵙겠습니다!




댓글 없음:

댓글 쓰기

#1 여러분들이 소중한 시간을 투자해 달아주시는 따뜻한 댓글들은 저에게 정말 큰 힘이 됩니다!

#2 저의 각 포스트들은 엄청난 노력과 시간 투자를 통해 만들어진 포스트들로, 무단 복제나 모방하는 것을 금지합니다.

#3 저의 포스트에도 틀린 정보가 있을 수도 있습니다. 그럴 경우 친절한 말투로 근거와 함께 댓글로 달아주시면 정말 감사하겠습니다!