CentOS7 설치후 기본설정 #5(apache 웹서버 설치)

1. 기존 설치된 패키지 제거

> OS에 포함되어 있거나 기존에 쓰던 서버를 활용하는 것이라면 버전 호환성을 위해 제거 후 다시 설치

?
001
002
003
004
005
yum -y remove \
       httpd \
       nginx \
       java*jdk-devel \
       php
>>>>>> description
– 설치여부 및 버전 확인 : yum list installed httpd* nginx* php* java*jdk-devel

2. APACHE OR NGINX

>>> 설치
?
001
002
003
004
005
006
## apache
yum -y install --enablerepo=remi,remi-php56 \
       httpd httpd-devel
## nginx
yum -y install --enablerepo=remi,remi-php56 \
       nginx nginx-devel
>>>>>> description
– remi repository를 사용
>>> 시스템 시작시 자동실행설정
?
001
002
003
004
## apache
systemctl enable httpd
## nginx
systemctl enable nginx
>>>>>> description
– 서비스는 설정파일 수정 후 시작함. (step5. 서비스 설정)

3. JDK & TOMCAT

>>> jdk 설치 가능여부 확인
?
001
yum list --enablerepo=remi java*jdk-devel
>>>>>> description
– 설치가능여부를 확인하고 필요한 버전의 패키지(1.7 or 1.8)를 설치
>>> jdk 설치
?
001
002
yum -y install --enablerepo=remi \
       java-1.8.0-openjdk-devel.x86_64
>>>>>> description
– 의존성 있는 기타 패키지가 함께 설치됨
>>> jdk 설치 확인
?
001
java -version
>>>>>> description
– 버전정보가 확인된다면 정상설치된 것임
>>> tomcat7 설치 : yum 설치시 apache-common-collections 버전 충돌로 설치 되지 않는다. 직접 다운받아 설치하도록 한다.
?
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
## yum 설치 : 현재기준[2014-09-14] 의존성 에러발생
yum -y install --nogpgcheck \
       tomcat7 tomcat7-admin-webapps tomcat7-webapps
## 다운로드
cd /usr/local/src
wget http://server.opendocs.co.kr/apache-tomcat-8.0.21.tar.gz
## 압축해제
tar xvf apache-tomcat-8.0.21.tar.gz
## 폴더이동
mv apache-tomcat-8.0.21 ../
## 시작 / 종료 / 재시작 스크립트 작성
vi /etc/init.d/tomcat
## 실행권한 변경
chmod 755 /etc/init.d/tomcat
## 시작시 자동실행
chkconfig --add tomcat
chkconfig --level 234 tomcat on
## 서비스 시작
service tomcat start
?
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
## /etc/init.d/tomcat
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
 
# 환경변수 등록
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/local/apache-tomcat-8.0.21
 
case $1 in
start)
# 시작
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
# 종료
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
# 재시작
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
>>>>>> description
– 단순압축 해제만으로 설치가능
– 운영을 위하여 시작/종료/재시작의 스크립트를 작성

4. PHP

>>> 설치
?
001
002
yum -y install --enablerepo=remi,remi-php56 \
       php php-devel php-pear
>>>>>> description
– remi repository를 사용
– PEAR : 재사용할 수 있는 PHP 컴포넌트를 관리해주는 시스템
– PECL : PHP 확장라이브러리 설치 및 업그레이드 기능을 제공하며 PEAR와 함께 설치됨
>>> 확장라이브러리 설치
?
001
002
003
004
yum -y install --enablerepo=remi,remi-php56 \
       php-gd php-mbstring php-mhash \
       php-mcrypt php-bcmath \
       php-mysql php-mysqli
>>>>>> description
– remi repository를 사용
– PHP로 각종 라이브러리를 사용할 수 있도록 설치
>>> PECL을 통한 확장라이브러리 설치 및 충돌해결
?
001
002
003
004
005
006
007
## 충돌해결
pecl upgrade igbinary
pecl upgrade memcached redis
## 설치
yum -y install --enablerepo=remi,remi-php56 \
       php-pecl-memcached php-pecl-redis \
       php-pecl-zendopcache php-pecl-xdebug
?
001
002
003
004
## 설치시 충돌발생
PHP Warning: PHP Startup: igbinary: Unable to initialize module
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' - /usr/lib64/php/modules/redis.so: undefined symbol: igbinary_unserialize in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so: undefined symbol: igbinary_unserialize in Unknown on line 0
>>>>>> description
충돌내용
– 설치된 php컴파일 버전과 라이브러리의 컴파일 버전이 일치하지않음
– PECL로 라이브러리의 컴파일버전을 업그레이드 해야함
>>> yum으로 제공되지 않는 확장라이브러리 설치
?
001
002
003
004
005
006
007
008
## mongoDB 라이브러리 설치
pecl install mongo
vi /etc/php.d/mongo.ini
extension=mongo.so
## svn 라이브러리 설치
pecl install svn
vi /etc/php.d/svn.ini
extension=svn.so
>>>>>> description
– redis, memcached등은 자동으로 ini에 추가되나 mongo, svn의 경우 수동으로 추가해주어야 함
– 다음명령으로 PECL 설치내역 및 버전 확인
pecl list

5. NodeJS

>>> 설치
?
001
002
003
004
# 패키지 설치
yum -y install --enablerepo=remi npm nodejs
# 패키지 관리자 업데이트
npm -g update
>>>>>> description
– remi repository를 사용
– NPM(Node Package Manager) : nodejs와 함께 자동 설치됨
>>> 서비스 운영을 위한 패키지 설치
?
001
npm -g install supervisor forever
>>>>>> description
– ‘-g’ : 글로벌 옵션을 주어 설치
– supervisor : js 파일 수정시 자동으로 재시작 해줌
– forever : 예외 발생시 데몬이 죽어도 자동으로 재시작(무한 또는 횟수 지정) 해줌
※ 상세 활용법은 별도 문서 작성 [forever][supervisor]

[참고]
http://myblog.opendocs.co.kr/archives/117