★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
-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 |