RHCE : HTTP/HTTPS – 기본 CGI 애플리케이션 배포

RHCE 주제입니다. CertDepot 사이트를 번역 및 내용 추가하였으며, 컨텐츠 관련 모든 권리는 CertDepot에 있습니다.

사전 준비사항

CGI-elinks-test-1

설정하기(/var/www/cgi-bin가 아닌 다른 디렉토리 사용하기)

1. /webapp 디렉토리를 생성한다.
[root@server2 ~]# mkdir /webapp
[root@server2 ~]# 
2. 이전 방법에서 생성한 hello.pl 파일을 생성한 디렉토리로 이동한다.
[root@server2 ~]# mv /var/www/cgi-bin/hello.pl /webapp
[root@server2 ~]# 
3. /webapp 디렉토리에 SELinux 설정을 한다.
[root@server2 ~]# yum install -y setroubleshoot-server
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Package setroubleshoot-server-3.2.17-2.el7.x86_64 already installed and latest version
Nothing to do
[root@server2 ~]# semanage fcontext -a -t httpd_sys_script_exec_t "/webapp(/.*)?"
[root@server2 ~]# restorecon -R /webapp
[root@server2 ~]# 
4. /etc/httpd/conf/httpd.conf파일을 열어, ScriptAlias 옵션을 다음과 같이 수정한다.
    # Example:
    # Alias /webpath /full/filesystem/path
    #
    # If you include a trailing / on /webpath then the server will
    # require it to be present in the URL.  You will also likely
    # need to provide a <Directory> section to allow access to
    # the filesystem path.

    #
    # ScriptAlias: This controls which directories contain server scripts. 
    # ScriptAliases are essentially the same as Aliases, except that
    # documents in the target directory are treated as applications and
    # run by the server when requested rather than as documents sent to the
    # client.  The same rules about trailing "/" apply to ScriptAlias
    # directives as to Alias.
    #
    #ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
    ScriptAlias /cgi-bin/ "/webapp/"
</IfModule>

-- 끼워넣기 --                                                248,37        67%

4. 같은 파일에서 다음과 같이 웹사이트 관련 줄들을 추가한다.
<Directory "/webapp">
AllowOverride None
Options None
Require all granted
</Directory>
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
-- 끼워넣기 --                                                364,1        바닥
5. 선택적으로 다음 줄들을 추가해줄 수 있다(필수는 아님)
Options ExecCGI
AddHandler cgi-script .pl
6. 설정 파일을 점검한다.
[root@server2 ~]# apachectl configtest
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using server2.example.com. Set the 'ServerName' directive globally to suppress this message
Syntax OK
[root@server2 ~]# 
7. httpd 서비스를 재시작한다.
[root@server2 ~]# systemctl restart httpd
[root@server2 ~]# 

테스트하기

elinks를 통해 확인한다.
[root@server2 ~]# yum install -y elinks
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Package elinks-0.12-0.36.pre6.el7.x86_64 already installed and latest version
Nothing to do
[root@server2 ~]# elinks http://server2.4am.kr/cgi-bin/hello.pl

CGI-elinks-test-1

at4am의 프로필 이미지

at4am

2016년 05월 04일

글쓴이의 더 많은 글 읽어보기