★WEB Service

-WEB 브라우저를 이용하여 World Wide Web을 사용하는 클라이언트에게 미리 저장된 하이퍼 텍스트를 제공하는

서버를 지칭한다.

-리눅스 서버에서 가장 인기 있는 WEB server는 HTTP(HyperText Transfer Protocol)을 통해 이루어지며, WEB 브라우저로부터

WEB 서버에 대해 요청을 보내면 요청을 받는 WEB서버는 그요청을 처리하고 결과를 WEB브라우저(Client)에게 응답한다.

 

★WEB 브라우저의 종류

Microsoft - Edge, Internet Explore

Google - Chrome

Mozila - Firefox

Apple - Safari

Opera Software - Opera

 

★WEB서버의 종류

Microsoft

-IIS(Internet Information Server)

Aoache Software Foundation

-Apache HTTP server

Google

-GWS(google web server)

Nnginx

-Nginx

Sun Micro Systems

-Sun Java System Web Server

 

★Apache

-웹 서버

-웹 서비스를 제공하는 서버

-웹 상에 있는 서버이므로 인터넷에만 연결되어 있는 어느곳에서든 웹서버에 방문가능

-HTML,PHP 및 JSP 페이지가 실행 될 수 있는 환경을 제공하는 웹서버 프로그램

-server,client 

 

★PHP

-PHP(Hyppertext Preprocessor)   -웹문서 형식 전처리기

-서버에서 해석되는 html에 내장되어 동작하는 스크립트 언어

-c, java 등 많은 문자 형식을 차용

 

★HTTP와 HTTPS 차이점?(http://thrillfighter.tistory.com/417)

 

★Apache 서버 설치와 기본 설정

 

<Server-A>

yum -y install httpd    //Apache 패키지 설치    

rpm -qa | grep httpd

ls /etc/httpd   //apache 서버의 설정 파일이 위치한 디렉토리를 확인

ls /var/www   //brower상에서 인식할 데이터가 저장될 디렉토리를 확인

ls /var/log/httpd   //로그파일이 저장된 디렉토리를 확인

vi /etc/httpd/conf/httpd.conf   //서버가 사용하는 설정파일을 수정

 

57 ServerRoot "/etc/httpd"

// Apache 서버가 사용할 설정 파일들이 저장될 디렉토리를 지정한다.

 

136 Listen 100.100.100.110:80

// 네트워크 인터페이스가 여러개 있는 경우 클라이언트가 접속할 IP를 지정하여 설정한다. 포트만 입력하는 경우 모든 주소를 사용한다는 의미가 된다.

 

262 ServerAdmin admin@donghyun.com

// 문제가 발생하는 경우 Apache 서버가 보낼 E-mail 주소를 입력한다.

 

276 ServerName www.donghyun.com:80

// Apache 서버가 사용할 이름과 포트를 설정한다. DNS에서 설정된 이름을 사용하고 없을 경우 IP주소를 대신 사용할 수 있다.

 

292 DocumentRoot "/var/www/html"

// Apache 서버가 인식할 데이터들이 저장될 디렉토리를 지정한다.

 

402 DirectoryIndex index.html index.php

// 클라이언트가 WEB 서버 접속 시 초기화면으로 보여줄 파일명을 지정한다. 기본이 index.html 이며 해당 파일이 없을 경우 index.php 파일을 찾게된다.

 

484 ErrorLog logs/error_log

// Apache 서버에서 에러가 발생한 경우 기록할 로그 파일을 지정한다. logs는 /etc/httpd/logs를 의미하며, 해당 디렉토리는 /var/log/httpd에 링크로 연결되어 있다.

 

526 CustomLog logs/access_log combined

// Apache 서버에 접속하는 일반적인 접속 정보를 기록할 로그파일을 지정한다.

 

★Apache 서버 서비스 시작과 접속

 

service httpd start

service httpd status

chkconfig httpd on  //부팅이후 자동 시작

chkconfig --list httpd  //자동으로 시작되는 run level 확인

httpd -v    //데몬 이름에 -v옵션을 사용하여 Apache서버의 버전 정보를 확인

lsof -i tcp:80   //사용중인 파일과 프로세스의 정보를 출력하는 lsof명령어를 이용해 tcp80번을 사용하는

httpd 데몬이 http 서비스를 제공하고 있음을 알 수 있다.

 

★Apache 서버 서비스 시작과 PHP사용

1.firefox를 실행시켜 자신의 도메인 혹은 ip를 주소창에 입력하여 연결을 시도

2.Apache test page를 확인

3.해당 페이지는 index.html이 아닌, /var/www/errors 디렉토리에 위치한 noindex.html 페이지이다. http.conf 파일의 (221 Include conf.d/*.conf) 설정으로 /etc/httpd/conf.d/ 디렉토리에 위치한 *.conf 파일이 적용되어 welcome.conf 파일에 명시된 ErrorDocument 403 /error/noindex.html 설정으로 보여지는 화면이다.

 

cd /etc/httpd/conf.d    //httpd.conf파일에 설정한(221 include conf.d/*.conf)추가 설정 파일이 있는

/etc/httpd/conf.d디렉토리로 이동

ls   //ls명령어를 입력하여 welcome.conf파일확인

vi welcome.conf  //9번째 라인에 주석처리하여 403에러가 발생시 /var/www/error/noindex.html 파일을 실행

할수 없도록 설정

주석처리후 httpd 데몬 재시작

 

 

Forbidden 403 에러메시지를 확인할수 있다.

 

cp /var/www/error/noindex.html /var/www/html/index.html

// noindex.html 파일의 이름을 index.html으로 변경하여 /var/www/html 디렉토리로 복사

정상적으로 사이트가 나온거 확인

 

cd /var/www     //DocumentRoot 디렉토리의 상위 디렉토리인 /var/www로 이동

ll   //html 디렉토리의 권한 확인

chmod 700 ./html  //html 디렉토리의 권한을 700로 변경

 

에러 403 확인 후 복구

 


PHP (Hypertext Preprocessor) 

- 오픈 소스 스크립트 언어로서 이식성이 좋아 다양한 운영체제와 환경에서 사용되며, 특히 WEB 개발 및 HTML에 사용된다.

- php-pear는  PHP Extension and Application Repository 의 약자로 PHP의 유용한 코드와 라이브러리를 배포하는 저장소 사용을 위해 보통 함께 설치한다.


PHP 사용

yum -y install php php-pear         // yum 을 사용해 PHP 패키지를 설치

rpm -qa | grep php             // php 테스트를 위해 index.php 파일을 생성하여 내용을 입력

vi /var/www/html/index.php         // php의 정보를 출력하는 함수를 작성하고 저장

 

vi /etc/php.ini        //php설정 파일을 열어 현재 시간대를 설정

 

ll /etc/httpd/conf.d/php.conf   //php에 관련된 설정을 정의하는 파일이며, Apache에 사용하기 위해 필요한

모듈이 설정

ll /etc/httpd/modules/libphp*  //사용되는 모듈의 위치 및 파일을 확인

service httpd restart   //적용을 위해 httpd 데몬을 재시작

 

100.100.100.110:80/index.php   //php와 Apache의 각종 파라미터와 설정 정보를 확인

 

grep http /etc/services     // /etc/services 파일을 확인하여 http 서비스가 사용하는 포트 80번과 https

포트 443번을 확인

 

Python을 사용하여 CGI 테스트

CGI (Common Gateway interface) - 웹 서버와 웹 프로그래밍 언어가 통신하는 방법을 정의

 

yum -y install python

vi /etc/httpd/conf/httpd.conf   //Apache 서버의 주 설정 파일을 수정한다

 

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" // 지시어  ScriptAlias 통해 URL 상에서의 디렉토리 cgi-bin은

시스템상에서 /var/www/cgi-bin을 가리키도록 설정

<Directory "/var/www/cgi-bin"> // CGI 데이터를 실행할 디렉토리를 정의

Options +execCGI // ExecCGI 옵션을 추가해 Apache 서버가 해당 디렉토리에서

CGI 실행을 허용하도록 설정

 AddHandler cgi-script .cgi .py // 파일의 확장자가 .cgi .py로 끝나는 파일을 CGI로 인식 하도록 설정

service httpd restart

vi /var/www/cgi-bin/test.py

 

 

vmware -> Firefox -> 100.100.100.110/cgi-bin/test.py

★Ruby와 Perl사용실습

 

yum -y install ruby perl perl-CGI

vi /etc/httpd/conf/httpd.conf

 

service httpd restart

vi /var/www/cgi-bin/test.rb

vi /var/www/cgi-bin/test.pl

 

 

vmware -> firefox -> 100.100.100.110/cgi-bin/test.rb

vmware -> firefox -> 100.100.100.110/cgi-bin/test.pl

★Apache 인증

-Apache 인증 기법은 특정 디렉토리 접근시 ID와 PASSWORD를 요구하도록 설정하는 방법을 의미

-가장 많이 Basic과 Digest를 이용

 

★Basic 인증 (HTTP Basic Authentication)

-클라이언트가 WEB서버로 보내는 인증은 암호화 되지 않은 Base64로 인코딩 되어, 평문으로 전달되는

안전한 인증 방법이 아니다.

 

vi /etc/httpd/conf.d/auth_basic.conf

mkdir /var/www/html/basic

vi /var/www/html/basic/index.html

 

vi /var/www/html/basic/index.html

 

 

★Digest 인증 (HTTP Digest Authentication)

- Basic 인증보다 보안이 강화된 인증방법

- 사용자명, 패스워드 등을 조합하여 생성한 MD5값으로 인증에 사용

vi /etc/httpd/conf.d/auth_digest.conf

apachectl configtest //문법검사

 

 

★가상 호스트 (Virtual Host)

-한 서버에서 여러 WEB사이트를 서비스하는 Apache 서버의 기능을 의미

 

host -a 100.100.100.110 //IP 주소 정보 확인

 

vi /etc/httpd/conf/httpd.conf

vi /etc/httpd/conf.d/vhost.conf

 

mkdir -p /vhost/phz55/{logs,www}   //가상 호스트 설정에서 정의한 데이터와 로그 파일  

저장을 위한 디렉토리를 생성

chmod -R 755 /vhost/

service httpd restart

httpd -s    //가상 호스트 설정 정보를 확인하기 위해 httpd 에 S 옵션을 사용하여 주도메인과

가상 호스트 정보를 확인할 수 있다. 

 

vi /vhost/phz55/www/index.html

 

vi /etc/hosts

100.100.100.110

 

★Client-Linux

yum -y install elinks    //test웹브라우저 elinks설치

elinks www.naver.com

 

명령어를 사용하는 방법(일시적)

 

사용하지 않는 인터페이스 비활성화

 

 ★APM 이란?

-WEB 서비스에 필요한 가장 기본적인 프로그램들

-웹 서버를 제공하는 Apache WEB Server

웹 프로그래밍 언어인 PHP,

데이터 베이스 관리를 위한 Mysql,MariaDB

-이 세가지가 잘 연동되어 운영되도록 만든 환경이 APM이다

★APM 설치

yum -y install httpd mysql mysql-server php php-mysql

rpm -qa httpd php mysql

service httpd restart

service mysqld start

mysqladmin -u root password '123' 

-mysql 관리자 등록을 위해 mysqladmin 명령어를 이용해 계정과 암호 등록

mysql -u root -p    //생성한 root 계정으로 접속

mysql>show databases;   //동작 테스트를 위해 database를 출력

 

php -r 'echo"Linux\n";'     //동작 테스트

php -v    //php 버전 정보 출력 명령어

chkconfig httpd on ; chkconfig mysqld on   //부팅시 자동으로 시작되도록 chkconfig 명령어를 이용하여

httpd 와 mysqld데몬을 등록

cd /var/www/html

vi linux.php    //vi를 이용하여 php 연동 테스트를 위한 페이지 작성

 

 

yum -y install elinks    //텍스트 웹 브라우저 elinks

elinks

 

 

결과 확인

ESC키 File->q 종료

 

vi linux_error.php   //오타가 있는 에러페이지 작성 세미쿼터 안닫음

 

elinks   //linux_error.php 페이지 접속

100.100.100.110/linux_error.php

500 응답 코드 에러 확인

 

cp /etc/php.ini /etc/php.ini.original   //php 설정 파일 원본 백업

 

vi /etc/php.ini     //vi을 이용해 설정파일 수정

530 display_errors=On   //에러 메시지 출력을 위해 on 으로 변경

 

service httpd restart     //변경 사항 적용을 위해 httpd 데몬 재시작

 

elinks    //라인에 오타있는거 발견

 

★XE(Xpress Engin)

-XpressEngin 은 오픈소스 라이언스인 GNU LGPL을 채택하고 있으며 누구나 쉽고 편하고 자유롭게 콘텐츠를

발행 할수 있도록 하기 위한 CMS(Content Management System)이다.

-게시판/자료실/블로그/카페/회원관리등 다양한 분야에 사용되며 제로보드의 확장된 버전으로 많은 개발자가

새로운 기능을 추가하여 업로드하고 있으며 대부분 무료로 사용이 가능하다

 

mysql(Linux-APM에서 mysql설정)

 

mysql -u root -p    //mysql 명령어를 이용하여 root 계정으로 DB에 접근

mysql> create database xe;    //새로운 DB를 생성하며 명령어가 정상적으로 실행

mysql> show databases;      //생성된 DB를 확인

mysql> flush privileges;    //변경 사항을 적용하기 위해 flush privileges 명령어를 사용

mysql> exit

 

yum -y install wget     //xe 패키지를 받기 위해 wget설치

cd /var/www/html

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/xe-core/xe.1.7.3.6.ko.tar.gz
-공유 폴더 XE링크 파일에서 URL을 복사하여 XE를 다운

tar xvfz xe.1.7.3.6.ko.tar.gz    //tar 명령어를 이용해 아카이브와 압축을 해제

 

chmod 707 xe      //권한을 수정하여 모든 사용자가 접근이 가능하도록 변경

yum -y install gd php-gd     //XE 사용에 필요한 패키지를 추가 설치

 

vi /etc/httpd/conf/httpd.conf    //httpd 설정 파일을 수정

338 AllowOverride All    //DocumentRoot 디렉토리에 모든 접근을 허용 

 

service httpd restart

mysql -u root -p     //root계정으로 DB접근

mysql> GRANT ALL PRIVILEGES ON xeDB.* TO xeUser@localhost IDENTIFIED BY "1234";

-새로운 사용자 xeUser 와 해당 사용자가 사용할 DB와 암호를 지정

mysql> CREATE DATABASE xeDB;   //새로운 데이터베이스 xeDB를 생성

mysql> SHOW DATABASES;   //생성한 데이터베이스를 확인하기 위해 모든 DB를 확인

mysql> exit

 

firefox를 실행해 URL입력 100.100.100.110/xe/admin

 

 

 

 

 

 

 

설치 완료

- 사이트 설정 변경 클릭

 

사이트 디자인 설정 -> 레이아웃 -> 상세설정 클릭

 

제목, 헤더 스크립트 사진이미지 등록

 

레이아웃 일괄 적용 체크 후 저장

 

호스트 주소 클릭 후 메인 홈페이지 보기

왼쪽 하단 쉬운 설치 클릭후 XE Core 업데이트 클릭(파일 저장)

 

cd /root/다운로드

mv xe.zip/var/www/html

cd /var/www/html

unzip xe.zip

A

 

설치된 모듈에서 모두 업데이트

 

사이트 메뉴 편집-> 게시판

 

메뉴  이름 및 아이디 입력

 

생성된 게시판 확인 클릭

 

쓰기 클릭

 

'Server > Linux' 카테고리의 다른 글

xshell/ IPTABLE  (0) 2017.05.29
xshell/ 쉘 스크립트  (0) 2017.05.25
xshell/ PXE & KICKSTART  (0) 2017.05.15
xshell/ NFS  (0) 2017.05.14
xshell/ SAMBA  (0) 2017.05.14

+ Recent posts