태그 글목록: centos7 nodejs 설치

[CentOS 7] step3-3. 웹서버 설치 2014-08-12

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]