Information Security
36-2 PHP(Hypertext Preprocessor) 본문
PHP(Hypertext Preprocessor)
-오픈 소스 스크립트언어로서 이식성이 좋아 다양한 운영체제와 환경에서 사용되며, 특히 웹 개발 및 HTML에 사용된다.
패키지 설치
php-pear (PHP Extension and Application Repository)
-PHP의 유용한 코드와 라이브러리를 배포하는 저장소 사용을 위하여 설치
php 테스트를 위해 index.php 파일에 php의 정보를 출력하는 함수를 작성하고 저장한다.
php 설정 파일을 열어서 시간대를 설정한다.
설정 적용을 위해서 데몬을 재시작한다.
firefox를 실행하여 URL(www.yyy.com/index.php)을 입력한다.
PHP와 아파치의 각종 파라미터와 설정 정보를 확인할 수 있다.
CGI(Common Gateway Interface)
정적 페이지와 동적 페이지
-많은 웹 서버들이 URL의 경로와 일치하는 파일을 읽어와 응답으로 전송하기 때문에 파일이 바뀌기 전까지 웹 서버는 항상 같은 내용을 웹 브라우저에 전송한다.
웹 브라우저는 파일이 변경되기 전까지 같은 응답 데이터를 받으므로 계속 동일한 화면을 출력한다.
이렇게 고정된 결과가 출력되어서 이들 URL에 해당하는 자원을 정적(static) 페이지라고 한다.
-시간이나 특정 조건에 따라 응답 데이터가 달라지는 자원을 동적(dynamic) 페이지라고 한다.
-웹 서버가 클라이언트에게 제공하는 데이터는 HTML로 작성되어 HTTP에 의해 클라이언트에게 전달된다.
-초기 HTML은 사용자들이 요구하는 동적 데이터를 제공하지 못하기 때문에 PHP, Perl, Python과 같은 Server Side Script를 이용해서 WEB 서버가 실행할 수 있는 프로그램을 작성하여 동적인 데이터를 제공한다.
-이때 웹 서버와 웹 프로그래밍 언어 간에 통신하는 환경을 만들어줘야 한다.
-웹 서버와 웹 프로그래밍 언어가 통신하는 방법을 정의한 것을 CGI(Common Gateway Interface)라고 한다.
파이썬을 사용하여 CGI 테스트
파이썬 설치
아파치 서버의 주 설정 파일을 수정한다.
지시어 ScriptAlias를 이용하여 URL상의 디렉터리 cgi-bin은 시스템상에서 /var/www/cgi/bin을 가리키도록 설정한다.
아파치 웹 서버에서는 디렉터리별로 접근 권한과 옵션을 다르게 설정할 수 있다.
<Directory "/var/www/cgi-bin">
적용할 디렉터리 경로
Options +ExecCGI
ExecCGI 옵션을 추가하여 아파치 서버가 해당 디렉터리에서 CGI 실행을 허용하도록 설정한다.
Order allow,deny
접근 권한 설정
-파일 확장자가 .cgi, .py(PYthon)인 파일을 CGI로 인식하도록 설정한다.
-변경 내용을 저장한 후 데몬을 재시작한다. (#service httpd restart)
파이썬으로 작성한 파일을 /var/www/cgi-bin에 저장한다.
클라이언트에서 파일을 읽고 실행할 수 있도록 허가권을 수정한다.
firefox를 실행하고 URL(www/yyy.com/cgi-bin/test.py)을 주소창에 입력한다.
-> test.py 파일이 출력된다.
Ruby, Perl을 사용하여 CGI 테스트
Ruby & Perl 설치
-주 설정 파일에서 파일의 확장자가 .rb, .pl인 파일을 CGI로 인식하도록 설정한다.
-변경 내용을 저장한 후 데몬을 재시작한다. (#service httpd restart)
Ruby, Perl 파일을 /var/www/cgi-bin에 저장한다.
클라이언트에서 파일을 읽고 실행할 수 있도록 허가권을 수정한다.
firefox를 실행하여 주소창에 URL을 입력한다. -> 테스트 페이지 동작
'Linux' 카테고리의 다른 글
37-2 APM(Apache + Php + Mysql) (0) | 2017.11.06 |
---|---|
37-1 Apache 인증 (0) | 2017.11.04 |
36-1 WEB (0) | 2017.11.03 |
35 KICKSTART (0) | 2017.11.02 |
34 KICKSTART (0) | 2017.11.01 |