##############################################################

## 주제 : CentOS 5.8에서 최신 APM 자동화 설치 스크립트 짜기             ##

##                                                                             ##

## Written by K.S.W      V 0.1                                              ##

## boaniyagi@naver.com                                                      ##

## date : 2014.4.14                                                             ##

##############################################################


# 1. 리눅스 설치 

# Package install 부분에서 아래 2개의 패키지를 체크하고 설치한다.

# Development Tools

# Development Libraries 


# 2. APM 설치 체크 (있으면 삭제)

# rpm -qa | grep mysql

# rpm -qa | grep php

# rpm -qa | grep http

# rpm -qa | grep apache


# 3. APM 설치할때 필요한 라이브러리 파일 체크 (없으면 설치)

# rpm -q ncurses-devel

# rpm -q zlib-devel


# 4. 설치에 관한 스크립트를 짜기위한 준비과정

# - !!! 한치의 오차도 있으면 안된다!!!

# cd APM2

# unalias ls

# ls

# apr-1.5.0.tar.gz       httpd-2.4.9.tar.gz     pcre-8.35.tar.bz2

# apr-util-1.5.3.tar.gz  mysql-5.6.17.tar.gz    php-5.5.11.tar.gz

# cmake-2.8.12.1.tar.gz  openssl-1.0.1g.tar.gz



# 5. 설치 스크립트 작성


# -- 순서 --

# 1. cmake 설치하기

# 2. mysql 설치하기

# 3. apr 설치 

# 4. apr-util 설치

# 5. openssl 설치

# 6. pcre 설치

# 7. 공유라이브러리 설정

# 8. 아파치 설치

# 9. php 설치 

# -- 순서 --


# cat > ~/.vimrc

# set nu

# set ai

# set bg=dark

# set ci

Ctrl + D

# alias vi=vim

# echo 'alias vi=vim' >> ~/.bashrc 

# LANG=C

# install /dev/null autoapmsetup.sh



# vi autoapmsetup.sh


-- autoapmsetup.sh -- 아래 부터 복사 붙여 넣기


#!/bin/sh



#######################

## 1. cmake 설치하기 ##

#######################


tar xzf cmake-2.8.12.1.tar.gz

cd cmake-2.8.12.1

./configure

make

make install

cd ..


#######################

## 2. mysql 설치하기 ##

#######################


tar xzf mysql-5.6.17.tar.gz

cd mysql-5.6.17

cmake \

-DCMAKE_INSTALL=/usr/local/mysql \

-DWITH_EXTRA_CHARSETS=all \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DSYSCONFDIR=/etc \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DMYSQL_TCP_PORT=3306

make 

make install


cd support-files

cp my-default.cnf /etc/my.cnf

ln -s /etc/my.cnf /etc/mysql.conf

install -m 700 mysql.server /etc/init.d/mysqld

chkconfig --add mysqld

useradd -M -u 27 -d /usr/local/mysql/data -s /bin/false mysql

ln -sf /usr/local/mysql/bin/* /usr/bin

/usr/local/mysql/scripts/mysql_install_db \

--user=mysql \

--basedir=/usr/local/mysql \

--datadir=/usr/local/mysql/data

chown -R mysql.mysql /usr/local/mysql/data 

/etc/init.d/mysqld start


cd ..

cd ..


#################

## 3. apr 설치 ##

#################

tar xzf apr-1.5.0.tar.gz 

cd apr-1.5.0

./configure && make && make install

cd ..


######################

## 4. apr-util 설치 ##

######################

tar xzf apr-util-1.5.3.tar.gz  

cd apr-util-1.5.3

./configure --with-apr=/usr/local/apr && make && make install

cd ..


#####################

## 5. openssl 설치 ##

#####################

tar xzf openssl-1.0.1g.tar.gz 

cd openssl-1.0.1g

./config \

--prefix=/usr/local/openssl \

--openssldir=/usr/local/openssl \

threads  zlib  shared 

make  && make test && make install

cd ..


##################

## 6. pcre 설치 ##

##################

### pcre와 pcre-devel 을 rpm 패키지로 설치했더니 에러가 발생해서 소스로 설치함.

tar xjf pcre-8.35.tar.bz2

cd pcre-8.35

./configure && make && make install

cd ..


############################

## 7. 공유라이브러리 설정 ##

############################


echo /usr/local/lib          >> /etc/ld.so.conf

echo /usr/local/apr/lib      >> /etc/ld.so.conf

echo /usr/local/openssl/lib  >> /etc/ld.so.conf

ldconfig 


####################

## 8. 아파치 설치 ##

####################

tar xzf httpd-2.4.9.tar.gz

cd httpd-2.4.9

./configure \

--prefix=/usr/local/apache \

--enable-mods-shared=all \

--enable-module=ssl \

--enable-module=so \

--with-mpm=prefork \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr

make &&  make install

cd ..


ln -s /usr/local/apache/conf/httpd.conf /etc  

ln -s /usr/local/apache/bin/* /usr/bin


#################

## 9. php 설치 ##

#################

tar xzf php-5.5.11.tar.gz 

cd php-5.5.11

./configure \

--prefix=/usr/local/php \

--with-mysql=/usr/local/mysql \

--with-apxs2=/usr/local/apache/bin/apxs


make 

# make test는 생략이 가능하다.

# make test  

make install


# php 설정파일을 복사한다.

cp php.ini-production /usr/local/php/lib/php.ini

ln -s /usr/local/php/lib/php.ini /etc/php.conf 


cat << APACHE_CONFIG

-- edit /usr/local/apache/conf/httpd.conf -- 

# vi /usr/local/apache/conf/httpd.conf 


  <IfModule dir_module>

    DirectoryIndex index.html index.php index.php3 index.htm  

  </IfModule>


  AddType application/x-gzip .gz .tgz   

  AddType application/x-httpd-php .php .php3 .html .htm  

  AddType application/x-httpd-php-source .phps          


# /usr/local/apache/bin/apachectl start


APACHE_CONFIG



-- autoapmsetup.sh -- 여기까지 복사



# setup   <--  방화벽/SELINUX 중지 (향후 실무에서는 방화벽은 실제 적용되어야 하지만 여기서는 내리는걸로 한다. )


# ./autoapmsetup.sh  <-- 실행하면 최신 APM이 자동으로 설치한다. 



# - 여기부터 수동으로 처리한다. 

# - 자동으로 처리해도 되지만 수동으로 처리하는걸로 한다.


# vi /usr/local/apache/conf/httpd.conf

-- /usr/local/apache/conf/httpd.conf --

  : 

  :

  <IfModule dir_module>

    DirectoryIndex index.html index.php index.php3 index.htm   <-- index.php index.php3 index.htm 추가

  </IfModule>

    :

    :

  AddType application/x-gzip .gz .tgz   

  AddType application/x-httpd-php .php .php3 .html .htm    <-- 추가 

  AddType application/x-httpd-php-source .phps             <-- 추가 (향후에는 보안상 주석처리 해준다.)


-- /usr/local/apache/conf/httpd.conf --




# /usr/local/apache/bin/apachectl start


# echo '<?php phpinfo(); ?>' > /usr/local/apache/htdocs/abcd.html



http://자신의IP/abcd.html   <-- 접근시 PHP 화면이 나오면 최신 APM 설치 성공!!!



-- 끝 --