1 아파치, HTTP, APM 소개 APM 설치하기 순천향대학교컴퓨터학부이상정 1 아파치, HTTP, APM 소개 순천향대학교컴퓨터학부이상정 2
소개 정식명칭 : Apache HTTP server 관련홈페이지 : www.apache.org GNU GPL 라이센스를통해무료로배포되는소프트웨어 현재 50% 이상의웹서버소프트웨어시장점유율 안정적으로동작 www.amazon.com이나 IBM 같은주요인터넷서비스회사에서도를사용 아파치서버프로그램전체는물론이고관련컴포넌트들의소스코드가무료로제공 유연성이좋기때문에여러응용분야에적용 비교적보안이잘유지되는것으로평가 순천향대학교컴퓨터학부이상정 3 HTTP 프로토콜소개 HTTP, HyperText Transfer Protocol 1989 년팀버너스리 (Tim Berners Lee) 에의하여처음설계 요청 / 응답 (request/response) 동작에기반하여서비스를제공 HTTP 의첫번째버전은인터넷을통하여가공되지않은단순데이터를전송하기위한단순한프로토콜로시작 현재 HTTP 버전 1.1 로 RFC2616 이라는문서에기록 ftp://ftp.isi.edu/in-notes/rfc2616.txt 헤더 (header) 로구성된메시지요청 / 응답메시지송수신 표준포트 : TCP 포트 80 번 비표준포트사용시 URL 뒤에포트번호를주면접속할수있음 예 : http://www.redhat.com:8080/ 아파치 HTTP 를서버형태로구현한소프트웨어 브라우저 HTTP 를클라이언트형태로구현한것 순천향대학교컴퓨터학부이상정 4
HTTP 를이용한브라우저와서버의연결 (1) 순천향대학교컴퓨터학부이상정 5 HTTP 를이용한브라우저와서버의연결 (2) 1. 브라우저는서버호스트에접속 URL 에명시된서버 ( 인터네트주소 : 포트번호 ) 에연결 default 포트번호 : 80 2. 브라우저는요청메시지 (request message) 를생성하여전송 3. 서버는브라우저의요청메시지에대한응답메시지 (response message) 를전송 응답헤더에는성공 / 실패여부, 전송될데이타타입 ( 텍스트, 이미지, 동영상등 ) 으로구성 응답헤더에이어실제데이타를전송 4. 서버는응답을보낸직후강제로접속종료 순천향대학교컴퓨터학부이상정 6
HTTP 메시지구성 메시지 스타트라인 (start line) request line status line 헤더 (header) 메시지바디 (message body) 순천향대학교컴퓨터학부이상정 7 메시지예 순천향대학교컴퓨터학부이상정 8
APM Apache + PHP + MySQL PHP 웹프로그래밍을위한스크립트언어 일반적으로다른언어와혼합사용 PHP(70%) + HTML(25%) + JavaScript(5%) 1994년 Rasmus Lerdorf에의해시작 PHP 특징 속도빠름 : Java 보다 5-20배빠름 공개소프트웨어 거의모든운영체제지원 마이크로소프트의 ASP(Active Server pages) 는윈도우만지원 많은데이터베이스와의연동지원 순천향대학교컴퓨터학부이상정 9 PHP 로구현하는웹프로그래밍의원리 (1) (2) Client (Web Browser) (4) Web Server (Apache) (3) PHP Parser (1) 사용자가브라우저를통해 PHP로만들어진스크립트문서를요청 (2) 웹서버는해당문서가 PHP 스크립트문서인것을확인하고이것을 PHP 파서에게로전송 (3) PHP 파서는 PHP 스크립트문서를번역 (Parsing) 하여브라우저에서볼수있는 HTML 문서를생성해내고이를웹서버에게전송 (4) 웹서버는 PHP Parser 로부터번역, 가공된 HTML 문서를다시사용자의브라우저에전송 순천향대학교컴퓨터학부이상정 10
MySQL 소개 SQL 데이터베이스에서사용되는표준구조적쿼리언어 (Structured Query Language: SQL) 데이터추출과출력, 데이터베이스구조정의등의데이터베이스관리를위한언어 MySQL SQL을지원하는공개데이터베이스소프트웨어 처리속도가빠름 순천향대학교컴퓨터학부이상정 11 APM 설치하기 순천향대학교컴퓨터학부이상정 12
APM 설치확인및설치 (1) <- APM 설치확인, 기존에이미설치 # rpm -qa grep httpd # rpm -qa grep php # rpm -qa grep mysql <- 패키지검색 # yum search httpd # yum search php # yum search mysql # yum search mysql-server <- MySQL 데이터베이스관리도구 # yum search php-mysql <- PHP 와 MySQL 간의자료공유패키지 # yum search system-config-httpd <- 웹서버그래픽환경설정도구 <- 패키지설치 # yum install httpd php mysql mysql-server php-mysql system-config-httpd 순천향대학교컴퓨터학부이상정 13 APM 설치확인및설치 (2) 순천향대학교컴퓨터학부이상정 14
웹서버데몬관리 (1) # /etc/rc.d/init.d/httpd start <= 데몬시작 # /etc/rc.d/init.d/httpd restart <= 설정변경후에는데몬재시작 # ps -ef grep httpd <= 데몬동작확인 # /sbin/chkconfig --list grep httpd <= 활성화여부확인 # /sbin/chkconfig httpd on <= 리눅스부팅후자동으로시작하기위해활성화 # /sbin/chkconfig --list grep httpd <= 활성화여부확인 순천향대학교컴퓨터학부이상정 15 웹서버데몬관리 (2) 순천향대학교컴퓨터학부이상정 16
웹서버주요파일 /usr/sbin/httpd 웹서버데몬 /etc/rc.d/init.d/httpd 웹서버데몬을제어하기위한스크립트 /etc/httpd/conf/httpd.conf 웹서버환경설정파일 /var/log/httpd 웹서버로그파일 /var/www/html 웹문서디렉토리 (document root) 순천향대학교컴퓨터학부이상정 17 방화벽설정 (1) # /sbin/iptables -L <= 방화벽설정내용확인 # /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT <= 80 번포트의접근허가설정 # /sbin/iptables -L <= 방화벽설정내용확인 # /etc/rc.d/init.d/iptables save <= 방화벽설정내용저장 순천향대학교컴퓨터학부이상정 18
방화벽설정 (2) 순천향대학교컴퓨터학부이상정 19 웹서버테스트 순천향대학교컴퓨터학부이상정 20
웹문서테스트 (1) test.html 작성 # cd /var/www/html # vi test.html <html> <head> <title> Test HTML file </title> </head> <body> <h1> This is a test file for Apache Server</h1> <hr> <p>computer Education, Soonchunhyang University </body> </html> # ls -l -rw-r--r-- 1 root root 190 4 월 12 15:14 test.html drwxr-xr-x 2 webalizer root 1024 4 월 2 04:02 usage 순천향대학교컴퓨터학부이상정 21 웹문서테스트 (2) 순천향대학교컴퓨터학부이상정 22
웹문서테스트 (3) 최상위홈페이지문서 /var/www/html 에 index.html 문서를작성하면 URL 만기술해도됨 # pwd /var/www/html #mv test.html index.html # ls index.html 순천향대학교컴퓨터학부이상정 23 MySQL 기본설정과테스트 (1) # /etc/rc.d/init.d/mysqld <= MySQL 데몬시작 # ps -ef grep mysqld <= 데몬동작확인 # mysqladmin -u root passsword 'gkrtod' <= MySQL 관리자패스워드지정 # mysql -u root -p <= MySQL 접속 Enter password: mysql> mysql> status <= 상태출력 mysql> show databases <= 데이터베이스확인 mysql> exit # /sbin/chkconfig --list grep mysqld <= 활성화여부확인 # /sbin/chkconfig mysqld on <= 리눅스부팅후자동으로시작하기위해활성화 # /sbin/chkconfig --list grep mysqld <= 활성화여부확인 순천향대학교컴퓨터학부이상정 24
MySQL 기본설정과테스트 (2) 순천향대학교컴퓨터학부이상정 25 MySQL 기본설정과테스트 (3) 순천향대학교컴퓨터학부이상정 26
MySQL 기본설정과테스트 (4) 순천향대학교컴퓨터학부이상정 27 PHP 설정과테스트 (1) <= 웹서버가 PHP 문서를서비스하기위해설정파일수정 # vi /etc/httpd/conf/httpd.conf DirectoryIndex index.php index.htm index.html index.html.var <= 390줄, php htm 인덱스파일추가 AddType application/x-tar.tgz AddType application/x-httpd-php.php.phtml.php3 AddType application/x-httpd-php-source.phps <= 752줄, php, php 소스파일 MIME 형식설정 # /etc/rc.d/init.d/httpd restart <= 설정변경후데몬재시작 순천향대학교컴퓨터학부이상정 28
PHP 설정과테스트 (2) <= 테스트 php 소스작성 # vi /var/www/html/test.php <? echo "Soonchuhyang University, Education Graduate School"; phpinfo();?> # 순천향대학교컴퓨터학부이상정 29 PHP 설정과테스트 (3) 순천향대학교컴퓨터학부이상정 30