관리 메뉴

IT창고

리눅스 WEB 설정 본문

서버운영/Linux

리눅스 WEB 설정

방구석여포 2017. 9. 28. 05:30

리눅스의 웹은 Web Service로 웹 브라우저를 이용해서 World Wide Web을 사용하는 클라이언트에게 미리 저장된 하이퍼텍스트를 제공하는 서버를 말합니다. 리눅스 서버에서 가장 많이 사용하는 Web Server는 HTTP를 통해 이루어지며 Web 브라우저로부터 웹 서버에 대해 요청을 보내면 요청을 받는 웹 서버는 그 요청을 처리하고 결과를 Web 브라우저에게 응답합니다.


웹 서버의 종류로 Micrisift사의 IIS, Apache Software Foundation의 Apache HTTP Server, Google의 GWS 등이 있습니다. 세계 웹서버 점유률을 2017년 기준으로 보면 아파치가 1위 마이크로가 2위입니다.


Apache 서버의 설정을 알아보겠습니다.

 yum -y install httpd 로 패키지를 설치하고 rpm -qa | grep httpd 를 입력해서 설치가 됬는지 확인하고 버전을 확인할수있습니다. ls /etc/httpd/는 설정파일이고 ls /var/www/는 웹페이지 파일이고 ls /var/log/httpd 로그파일 입니다.

vim /etc/httpd/conf/httpd.conf 파일은 주설정 파일이고 vim 편집기로 안에 내용을 수정합니다.

vim 으로 들어가서 :set number를 입력하면 각 라인당 번호가 생기는데 1009라인 정도 되는 큰 텍스트가 있습니다. 여기서 확인해야할 라인은 57, 136, 262, 276, 292, 402, 484, 526 라인입니다. 136라인의 Listen 192.168.1.23:80은 IP와 포트설정이고 276라인의 ServerName www.example.com:80는 주석을 해제하고 DNS서버가 설정되어있다면 도메인을 입력하고 없다면 IP를 입력하고 292라인의 DocumentRoot "/var/www/html"는 DocumentRoot 디렉토리입니다. 

DocumentRoot는 예를 들어 www.gsk.com 주소를 사용하면 가장먼저 클라이언트에게 출력되는 페이지를 index페이지라 하는데 www.gsk.com이러한 URL주소를 웹 클라이언트에서 사용하게되면 실제 화면에 보여지는 페이지는 index.html 혹은 index.php입니다.  즉 var/www/html/index.html <- 리눅스 디렉토리 경로 , www.gsk.com/index.html <- 도메인 주소 경로 입니다. 402라인은 DirectoryIndex index.html index.php로 바꿔줍니다. 526라인에 ustomLog logs/access_log combined 가있는데 combined는 497라인을 살펴보면 됩니다.


위의 설정이 끝났다면 서비스를 시작해봅니다.

service httpd start -> chkconfig httpd on 를 입력하고 httpd -v로 버전을 확인해볼수있습니다. 도메인을 설정했다면 lsof -i tcp:80 입력해서 상태를 확인할수있습니다. httpd.conf파일에 120번 라인을 확인하면 기본적으로 사용할 프로세스 조정가능하고 기본값은 8개 입니다.


init 5를 입력하여 X-Window환경으로 가거나 같은 네트워크 대역의 윈도우 환경으로 갑니다. yum -y install firefox를 입력하여 웹 브라우저를 설치하거나 다른 웹 브라우저를 켜서 웹서버를 설정한 도메인이나 ip를 입력합니다.

연결을 시도하고 성공했다면 위와 같은 화면이 나타납니다. 아파치  테스트 페이지인데 해당 페이지는 index.html이 아닌 /var/www/errors 디렉토리에 위치한 noindex.html페이지로 httpd.conf파일의 (221 Include conf.d/*.conf)설정으로 /etc/httpd/conf.d/디렉토리에 위치한 *.conf파일이 적용되어 welcome.conf 파일에 명시된 ErrorDocument 403 /error/noindex.html설정으로 보여지는 화면입니다.


기본적으로 설정된 테스트 페이지를 없애보겠습니다. 두 가지 방법이 있습니다.

cd /etc/httpd/conf.d/ 안에 vim welcome.conf파일로 들어가서 9번 라인에   ErrorDocument 403 /error/noindex.html 를 주석처리하고 service httpd restart 합니다. 다른방법은 cd /var/www/안에 chmod 700 ./html 를 입력하면됩니다. 다시 잡속하면 아래와 같이 Forbodden 403에러 메세지를 확인할수있습니다.

403에러메세지 발생이유는 아래와 같습니다.

1) Document root 디렉토리 접근시 index.html 파일이 없을 경우

2) Document root 디렉토리 및 특정 디렉토리에 권한이 없을 경우


이러한 웹 에러상태를 알아보기 위해 주요상태코드를 몇가지 알아보겠습니다.

200 - 오류없이 전송 성공

301 - Moved Permanently - 영구이동됩니다

403 - Forbidden 접근금지(권한없음)

404 - Not Found 요청한 페이지가 없습니다

500 - Internal Server Error 서버 내부 오류

503 - Service Unavailble 서비스 사용불가


아피치를 알아봤는데 이번에는 PHP에 대해서도 알아보겠습니다.

PHP(Hypertext Preprocesso)는 오픈 소스 스크립트언어로서 이식성이 좋고 다양한 운영체제와 환경에서 사용되며 특히 WEB개발 및 HTML에 사용됩니다.

yum -y install php php-pear 를 입력하여 패키지를 설치합니다. rpm -qa | grep php로 패키지설치를 확인합니다.

vim /var/www/html/index.php 파일안에 <?php phpinfo(); ?>로 입력합니다. vim /etc/php.ini 파일에는 아래와같이 수정합니다.

946번 라인에 주석처리가 되어있는데 주석해제하고 설정합니다. 설정이 끝났다면 service httpd restart 를 입력해서 변경사항을 적용합니다. init 5를 입력하여 X-Window환경에서 웹 브라우저에 도메인이나 IP를 입력해서 잘되는지 테스트합니다.

테스트환경으로 iptables를 비활성화했지만 활성화상태라면 iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT 를 입력하여 포트를 열어둡니다. 인증서까지 있다면 iptables -A INPUT -m state --state NEW,ESTABLISHED -p tcp --dport 443 -j ACCECPT 를 입력합니다.


Tip 

초기 HTML은 사용자들이 요구하는 동적인 데이터를 제공하지 못하기 때문에 PHP, Perl, Python과 같은 서버 사이드 스크립트를 이용하여 Web서버와 Web프로그래밍 언어가 통신하는 방법을 정의한것을 CGI(Common Gateway Interface)라고합니다.


Python을 사용해서 CGI테스트를 해보겠습니다.

yum -y install python 로 패키지를 설치하고 vim /etc/httpd/conf/httpd.conf 파일에서 아래와 같이 수정합니다.

그리고 추가로 794라인에 주석을 해제하고 AddHandler cgi-script .cgi .py 로 입력합니다. 혹은 apache 주설정 파일에 각각의 디렉토리에 개별적으로 옵션을 설정할수있습니다. 

ex) <Directory>[디렉토리경로]

 옵션1

 옵션2

</Directory>


마지막으로 service httpd restart를 입력해서 변경사항을 적용하고 vim /var/www/cgi-bin/test.py 파일에 아래와 같이 수정합니다.

이 파일에서 텍스트로 설정하면 됩니다. 크기, 출력할 글 등을 설정할수있습니다. test.py 파일의 설정이 끝났다면 이 파일에 chmod 705 /var/www/cgi-bin/test.py 를 입력하여 허가권을 주고 테스트를 합니다. 저는 자신의ip/cgi-bin/test.py 로 웹 브라우저에 입력해봅니다.

정상적으로 화면에 출력되고 Python 뿐만 아니라 Perl, Ruby 같은 프로그래밍 언어도 사용할수있습니다.


Tip

X-Windows 패키지 설치법

#yum groupinstall -y "X Window System" "Desktop" "Fonts" "Korean Support" 

X-Windows 및 관련 패키지 그룹 설치 명령어 입니다. 설치하시고 init 5를 입력하거나 inittab에 런레벨을 5로 수정하시면 GUI환경에서 작업할수있습니다.



'서버운영 > Linux' 카테고리의 다른 글

리눅스 WEB3 설정  (0) 2017.10.15
리눅스 WEB2 설정  (0) 2017.09.30
리눅스 Kickstart  (0) 2017.09.28
리눅스 PXE  (0) 2017.09.25
리눅스 Samba(삼바) 서버 설정  (0) 2017.09.23
Comments