본문 바로가기

System engineer

USERDIR에서 CGI 사용_python 테스트

 

사용자에게 웹사이트를 제공하기 위해 필요한 지시어는 UserDir 이고, mod_userdir 모듈이 제공하는데 이 모듈은 httpd 패키지를 설치하면 사용 가능합니다. CGI 테스트를 위해 python으로 테스트 하겠습니다.

 

우선 apache 서버에서 사용자에게 웹사이트를 제공하기 위한 디렉토리 관련 설정을 해줘야 합니다.


명령어

1 #vim /etc/httpd/conf.d/userdir.conf

--설명 : 소수의 사용자에게 UserDir을 허용하는 경우 설정

2        UserDir disabled

3        UserDir enabled jhuser


--설명 : 대부분의 사용자에게 UserDir을 허용하고 일부만 거부하는 경우

4        UserDir enabled

5        UserDir disabled root jhuser


--설명 : 모든 사용자에게 UserDir을 허용하는 경우

6        #UserDir disabled

7        UserDir pubic_html


8    <Directory "/home/*/public_html">

9        Options +ExecCGI

10       AllowOverride None

11       Require method GET POST OPTIONS

12    </Directroy>

13 #systemctl restart httpd


명령어 설명

1 vim 으로 UserDir 설정 파일을 열어 줍니다.

2~3 jhuser에게 UserDir 을 허용하는 설정입니다.

4~5 root jhuser 을 제외한 사용자에게 UserDir을 허용하는 설정입니다.

6~12 모든 사용자에게 UserDir을 허용하는 설정입니다. 9번은 일반 사용자의 웹사이트에서도 CGI 사용을 허가하는 설정이고, 11번은 디렉토리 접근 제어를 위해 사용하는 파일 .htaccess를 읽어 들일지를 결정하는 지시어인데, 옵션이 None 인 경우 그 파일이 있어도 무시하라는 뜻 입니다.

13 설정을 적용하기 위해 apache를 재시작 해줍니다.


이제 사용자의 홈 디렉토리에서 웹사이트를 생성하기 위한 준비를 해야합니다. 테스트를 위해서 사용자 jhuser의 홈 디렉토리를 사용하겠습니다.


명령어

1 #chmod 755 /home/jhuser

2 #mkdir public_html

3 #chmod 755 public_html/ ; cd public_html

4 #vim index.py

5    #!/usr/bin/env python

6    print "Content-type: text/html\n\n"

7    print "<html>\n<body>"

8    print "<div style=\"width: 100%; font-size: 80px; font-weight: bold; text-align: center;\">"

9    print "CGI Test page for jhuser in www.test.com/~jhuser/"

10   print "</div>\n</body>\n</html>"


명령어 설명

1 jhuser의 홈 디렉토리 접근을 위해 권한을 변경해줍니다.

2 웹 사이트에 제공할 디렉토리를 생성해줍니다.

3 웹에서 CGI 파일에 접근할 수 있도록 권한을 조정해주고 디렉토리로 이동합니다.

4 테스트를 위해 파이썬 파일을 생성해줍니다.

5~10 클라이언트에게 보여줄 페이지를 작성해줍니다.


 이제 브라우저에서 url www.test.com/~jhuser/index.py 로 접근하면 "CGI Test page for jhuser in ww.test.com/~jhuser/" 을 볼 수 있고, UserDir과 CGI 테스트가 정상적으로 작동하는 것을 확인 할 수 있습니다.