Centos 7 APM 설치 [펌] -1

CentOS에 APM (Apache,PHP,MySQL) 소스 설치

우선 필요한 Application 을 다운로드한다.

 

의존 라이브러리 설치

1
2
3
4
5
6
7
8
9
yum groupinstall "Development Tools"
yum install wget
yum install cmake
yum install ncurses-devel
yum install libtool-ltdl
yum install expat-devel
yum install db4-devel
yum install pcre-devel
yum install openssl-devel

 

MySQL 설치

- 관리 계정 생성

아래는 “dba” 그룹 계정과 “mysql” 계정으로 생성하였다.

1
2
[root@host ~] groupadd dba
[root@host ~] useradd -M -c "MySQL" -d /var/mysql -g dba -s /bin/nologin mysql
- 소스를 다운로드 받고 압축 해제
1
2
3
4
[root@host ~] mkdir downloads
[root@host ~] cd /root/downloads
[root@host downloads] wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz/from/http://cdn.mysql.com/
[root@host downloads] tar zxvf mysql-5.6.14.tar.gz
- 컴파일과 설치

5.5 미만 버전에서는 configure 로 makefile 파일을 만들었는데 5.5 이상 버전부터 cmake 를 이용하여 makefile 을 생성하고 컴파일하도록 변경되었다.

cmake 는 멀티플랫폼을 지원하는 make 대용 개발 도구로 플랫폼 별로 make 파일을 만들어주는 meta make 이다.

자세한 설명은 [wiki:CMake] 에서 확인한다.

cmake 를 이용해 설치 옵션과 함께 makefile 을 생성하고 컴파일 및 설치를 진행한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@host downloads] cd mysql-5.6.11
[root@host mysql-5.6.11] cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/mysql/data \
-DMYSQL_UNIX_ADDR=/var/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
 
[root@host mysql-5.6.11] gmake; gmake install

이외의 MySQL 설치 옵션은 아래 URL을 참고한다.

http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

- 데이터베이스가 저장되는 폴더 생성

“/var/mysql/data” 에 데이터베이스 파일들을 저장하기 위해서 “data” 폴더의 부모 폴더인 “/var/mysql” 폴더를 생성한다.

기본 데이터베이스 저장 폴더인 “/usr/local/mysql/data” 에 저장하는 경우는 부모 폴더가 존재하기 때문에 폴더를 생성하지 않아도 된다.

1
[root@host downloads] mkdir /var/mysql
- 기본 데이터베이스 생성 및 폴더 권한 변경
1
2
3
4
[root@host mysql-5.6.11] cd /usr/local/mysql
[root@host mysql] ./scripts/mysql_install_db --user=mysql --datadir=/var/mysql/data
[root@host mysql] chown -R mysql:dba /usr/local/mysql
[root@host mysql] chown -R mysql:dba /var/mysql
- 환경 설정

위에서 mysql_install_db 를 실행하면 “/usr/local/mysql/” 폴더에 my.cnf 파일이 생성된다.

이 파일을 설치시에 지정한 “/etc/” 폴더로 이동시켜서 환경 설정 파일을 수정한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@host mysql] mv ./my.cnf /etc/my.cnf
[root@host mysql] vi /etc/my.cnf
-----------------------------------------------------------------
 
[mysqld]
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

더 자세한 옵션은 아래 URL을 참고한다.

http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html

- PATH 추가 및 서비스 등록

MySQL 의 주요 실행 파일을 어떤 경로에서든지 실행할 수 있도록 PATH 환경 변수에 추가된 “/bin”, “/sbin” 폴더로 Symbolic Link 를 걸어둔다.

1
2
3
4
[root@host mysql] ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@host mysql] ln -s /usr/local/mysql/bin/mysqldump /usr/sbin/mysqldump
[root@host mysql] ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/mysql_config
[root@host mysql] ln -s /usr/local/mysql/bin/mysqladmin /usr/sbin/mysqladmin

MySQL 을 서비스에 등록하여 chkconfig 유틸리티로 관리할 수 있도록 한다.

MySQL 에서 제공하는 daemon 실행 스크립트의 링크를 생성하고 서비스에 등록하여 데몬을 시작한다.

아래는 3, 5 runlevel 에서만 동작하도록 2, 3 runlevel 에서는 동작하지 않도록 했다.

1
2
3
4
[root@host mysql] ln -s /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
[root@host mysql] chkconfig --add mysql
[root@host mysql] chkconfig --level 24 mysql off
[root@host mysql] service mysql start
- 관리자 비밀번호 설정

MySQL 의 관리자 계정인 “root” 의 암호를 설정한다.

암호를 설정한 뒤에는 MySQL 의 root 계정으로 접속 시에 설정한 암호를 요구하게 된다.

1
2
root@host mysql] mysqladmin -u root password "1234"
root@host mysql] mysqladmin -u root -p reload
- 공유 라이브러리 추가

MySQL 라이브러리를 다른 어플리케이션에서 쉽게 접근할 수 있도록 공유 라이브러리에 추가한다.

1
2
[root@host mysql] echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
[root@host mysql] ldconfig

 

Apache 설치

Apache 를 설치하기 위해서는 APR 이 설치되어 있어야 한다. 이전에 APR 은 Apache 프로젝트에 포함되었으나 별도 프로젝트로 분리되었다. Apache 에 포함된 bundle 를 사용해도 되지만 APR 을 별도로 설치하겠다.

- APR 설치
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# APR 다운로드 및 압축 해제
[root@host downloads] wget http://mirror.apache-kr.org//apr/apr-1.4.8.tar.gz
[root@host downloads] wget http://mirror.apache-kr.org//apr/apr-util-1.5.2.tar.gz
[root@host downloads] tar zxvf apr-1.4.8.tar.gz
[root@host downloads] tar zxvf apr-util-1.5.2.tar.gz
 
# APR 설치
[root@host downloads] cd apr-1.4.8
[root@host apr-1.4.8] ./configure --prefix=/usr/local/apr
[root@host apr-1.4.8] make; make install
 
# APR-util 설치
[root@host apr-iconv-1.2.1] cd ../apr-util-1.5.2
[root@host apr-util-1.5.2] ./configure --prefix=/usr/local/apr \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-crypto=/usr --with-openssl \
--with-dbm=db47 --with-gdbm --with-berkeley-db \
--with-mysql=/usr/local/mysql \
--with-sqlite3 \
--with-expat=/usr
[root@host apr-util-1.5.2] make; make install
- 소스를 다운로드 받고 압축 해제
1
2
3
[root@host ~] cd /root/downloads
[root@host downloads] wget http://mirror.apache-kr.org/httpd/httpd-2.4.6.tar.gz
[root@host downloads] tar zxvf http-2.4.6.tar.gz
- 컴파일과 설치
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@host downloads] cd http-2.4.6
[root@host httpd-2.4.6] ./configure --prefix=/usr/local/httpd --sysconfdir=/etc/httpd \
--with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config \
--with-pcre --with-libxml2 --with-ssl --with-z \
--with-mpm=worker \
--enable-modules=most --enable-mods-shared=most \
--enable-file-cache --enable-cache --enable-file-cache \
--enable-so \
--enable-mime-magic --enable-expires --enable-header \
--enable-proxy --enable-ssl \
--enable-mpms-shared=all \
--enable-vhosts-alias --enable-rewrite
[root@host httpd-2.4.6] make; make install

더 자세한 옵션은 아래 URL을 참고한다.

http://httpd.apache.org/docs/2.4/en/programs/configure.html