본문 바로가기

Web Server(APM)

apache2 server의 home directory 변경(host file)

host 파일이란? host파일이란 DNS 서버 방식을 사용하기 전,  초창기 인터넷에서 domain name와 IP address를 mapping시키기 위해 사용하던 방식이다. 요즘은 domain name과 IP address의 mapping이 DNS서버를 통해 이루어진다. 운영체제에서는 가장 먼저 host 파일에 원하는 host name이 있는지 찾는다. 만약 host 파일에 host name에 mapping되는 IP주소가 있다면 DNS를 사용하지 않고 바로 그 IP로 접속하게 된다.

 

apache2 server를 설정하고 난 뒤, website에서 localhost/index.php을 server에 request했을때 server는 /var/www/html에 있는 index.php파일을 찾아 응답해주었다. 즉, localhost/index.phplocalhost는 server에게 (localhost=)root에 있는 index.php파일을 request하는 것이다. 이때 root는 linux server의 root(=/)가 아니고, web service의 directory를 setting할 때 default로 설정되어 있는 /var/www/html가 apache server의 root이다. (apache server ≠ linux root)

web server에서 default로 설정해둔 /var/www/html 의 파일은 root의 권한을 가져야만 수정가능하다. root는 모든 권한을 가지고 있기 때문에 항상 root의 권한을 가지고 작업하는 것은 위험한 일이다. 따라서 안전한 작업을 위해서는 root의 권한을 사용하는 시간을 최소화하여야 한다.

 

root의 권한이 없는 일반 계정에서 web service의 contents를 책임지게 해보자.

1. make homedirectory (일반 계정)

mkdir html : homedirectory로 사용할 directory 생성

2. document root  변경 (root 권한)

1) /etc/apache2/sites-available/000-default.conf의 파일의 DocumentRoot로 되어있는 부분에 web server의 root가 설정되어 있다. default로 설정된 root (/var/www/html)를 home/[user account id]/html로 바꿔주자. 이제  host/[user account id]/html가 apache2 server의 root로 설정되었다.

/etc/apache2/sites-available/000-default.conf file로 들어가기
000-default.conf 수정 전
000-default.conf 수정 후

2) 변경된 설정파일을 적용하기 위해 아파치 서버 재시작

service apache2 restart

3) you don't know permission to access / on this server 오류 발생 & 해결(권한 설정)

web은 보안상으로 치밀하게 짜여져야한다. apache는 허용 가능한 root만 연결해주고 다른 root는 막아야한다. 따라서 directory를 setting한 후 root로 사용하려는 directory대한 추가적인 권한 설정이 필요하다.

이 권한은 /etc/apache2/apache2.conf 기본 설정 파일에서 설정된다. 이 파일에 들어가보면 /var/www directory에 대해 require all granted의 root의 권한을 준다. /home/[user account id]/html의 directory에 대해서도 default root와 같은 권한을 주자. diretory를 /home/*/html로 설정하면 home에 어떤 user든 html이라는 directory를 만들면 다음과 같은 root 권한을 가짐을 의미한다.

 forbidden error
/etc/apache2/apache2.conf
apache2.conf 파일 수정 전
apache2.conf 수정 후

4) 변경된 설정파일을 적용하기 위해 아파치 서버 재시작 & 완료

service apache2 restart
root 변경 완료 후 localhost page

 

※참고 사이트

http://www.itpaper.co.kr/host-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%A0%95%ED%95%98%EC%97%AC-%EB%82%98%EB%A7%8C%EC%9D%98-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0/ (host 파일 설정하여 나만의 도메인 만들기 ) 
https://deois.tistory.com/42 (sudo 사용의 필요성) 
https://m.blog.naver.com/PostView.nhn?blogId=yexx&logNo=220720241912&proxyReferer=https%3A%2F%2Fwww.google.com%2F (apache2 웹서버 루트 디렉토리 변경방법) 
https://blog.xianchoi.kr/268 (apache2 기본 디렉토리 변경)