You cannot see this page without javascript.

APM 소스설치 정리

CentOS 조회 수 4641 추천 수 0 2015.06.17 17:28:25

이 글은 Apache, PHP, Mariadb 의 각 소스 코드를 받아서 사용자가 변경한 디렉토리에 설치를 합니다. 그 이유는 웹서버를 통합적으로 한 디렉터리에서 관리 하기 쉽게 만들기 위해서 입니다. 이 글은 내용 설명 보다는 설치 위주이며 우선 이 설명을 따라 설치 해보시고 그 과정에서 이유를 생각하고 각자에게 발생한 trouble shooting을 하면서 배워 나갑니다.

 

Setup web server on centos 7

1. Installing Mariadb

2. Installing Apache

3. Installing PHP

 

구축 환경: CentOS7-x64bit

 

웹 서버 디렉토리 구조

/apm /apps /data    
    /docs /xe  
    /plugin /phpmyadmin  
  /server /apache /apr  
      /apr-iconf  
      /apr-util  
      /httpd  
    /conf    
    /mariadb    
    /php    
         

 

- 각 Application 개발자사이트 소개

 

*Mariadb
- 최신버전 : 10.1.21
- 웹사이트 http://mariadb.org - Select Platform 의 콤보박스에서 Source Code 를 선택하여 가장 마지막 항목을 다운로드 한다. (Generic Linux (Architecture Independent), Compressed TAR Archive)
- 다운로드 URL : http://ftp.kaist.ac.kr/mariadb/mariadb-10.1.21/source/mariadb-10.1.21.tar.gz

 

*MySQL
- 최신버전 : 5.7.14
- 웹사이트 http://www.mysql.com - Select Platform 의 콤보박스에서 Source Code 를 선택하여 가장 마지막 항목을 다운로드 한다. (Generic Linux (Architecture Independent), Compressed TAR Archive)
- 다운로드 URL : https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.17.zip

 

*Apache Portable Runtime
- 최신버전 : APR 1.5.2, APR-util 1.5.4, APR-iconv 1.2.1
- 웹사이트 : http://apache.org
- APR 다운로드 URL : http://mirror.apache-kr.org/apr/apr-1.5.2.tar.gz
- APR-iconv 다운로드 URL : http://mirror.apache-kr.org/apr/apr-iconv-1.2.1.tar.gz
- APR-util 다운로드 URL : http://mirror.apache-kr.org/apr/apr-util-1.5.4.tar.gz
 
*Apache HTTP Server
- 최신버전 : 2.4.25
- 웹사이트 : http://apache.org - mirror 에서 다운받는 경우 http 폴더로 들어가서 다운로드한다.
- 다운로드 URL : http://mirror.apache-kr.org/httpd/httpd-2.4.25.tar.gz

 

*PHP
- 최신버전 : 5.6.30, 7.0.16, 7.1.2
- 웹사이트 : http://php.net
- 다운로드 URL : http://kr1.php.net/distributions/php-7.1.2.tar.gz

 

*phpMyAdmin
- 최신버전 : 4.6.6
- 웹사이트 : http://phpmyadmin.net
- 다운로드 URL : http://nchc.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.tar.gz

 

*XE
- 최신버전 : 1.8.32
- 웹사이트 : https://www.xpressengine.com
- 다운로드 URL : http://download.xpressengine.com/download/18325662/22755785

 

위 링크들은 본 문서의 기록된 시점에서의 링크임으로 버전업이 있을 경우 링크주소가 변할 수도 있습니다.

링크가 다운로드되지 않을 경우 웹사이트를 방문하여 최신버전으로 다운로드 합니다.

 

Installing Mariadb

Step 1 >> 의존라이브러리 설치
[root@host ~]    yum -y update
[root@host ~]    yum -y groupinstall "Compatibility Libraries"
[root@host ~]    yum -y groupinstall "Development Tools"
[root@host ~]    yum install wget
[root@host ~]    yum install cmake
[root@host ~]    yum install ncurses-devel
[root@host ~]    yum install libtool-ltdl-devel
[root@host ~]    yum install expat-devel
[root@host ~]    yum install db4-devel
[root@host ~]    yum install pcre-devel
[root@host ~]    yum install openssl-devel
[root@host ~]    yum install libdb-devel

 

또는

 

[root@host ~]    yum -y update
[root@host ~]    yum -y groupinstall "Compatibility Libraries"
[root@host ~]    yum -y groupinstall "Development Tools"
[root@host ~]    yum -y install wget cmake ncurses-devel libtool-ltdl-devel expat-devel db4-devel pcre-devel openssl-devel libdb-devel

 

위의 두 명령은 같은 명령이나 아래 명령은 설치를 한번에 처리 하는 것이니 두가지 방법 중 하나를 선택해서 수행하면 된다.

 

* 프롬프트 : 위와 같이 [root@host ~] 로 표시된 부분을 프롬프트라 한다.

프롬프트의 형태는 설정에 의해 얼마든지 바꿀수는 있지만 bash쉘이 표준으로 자리잡고 있는 현재에는 이와 같은 표시방법을 사용하고 있다.

프롬프트가 표시되는 이런 상황은 시스템이 사용자로부터 명령을 받아들일 수 있는 준비 된 상태라는 의미이고, 이 프롬프트를 통하여 사용자는 쉘로 명령을 전달하게 된다.

상단의 표시 형식에 대하여 간단하게 설명 하자면 ["로그인된계정"@"호스트이름" "현재경로"]로 표시된다.

로그인된 계정이란 현재 시스템으로부터 사용자로서의 인증을 받은 계정이란 뜻이고, 호스트이름은 관리자에 의하여 부여받은 시스템의 명칭이 되겠다. 현재 경로는 현 사용자가 접근한 디랙토리의 경로상의 마지막 디렉토리 이름을 뜻한다.

여기서 "~"의 의미는 현재 상태의 사용자의 홈 디렉토리를 의미하는 것이며 이때는 디랙토리 명이 아닌 "~"로 표시하게 된다.

[root@host ~] 이와 같은 상황이면 root라는 계정으로 host라는 시스탬으로부터 인증받아 /root라는 디렉토리에 접근한 상태를 나타넨다.

* 추가로 현재 접속된 경로의 전체경로를 알고 싶다면 프롭ㅁ프트상에 "pwd"라는 명령을 입력하면 된다.

* yum : /etc/yum.repo.d/ 에 있는 repo파일에 기록된 페키지 저장소를 참조하는 명령어.

(RHEL계열에서 쓰는 레포지터리참조 명령어이다.)

 옵션 -y : 이후 시스템에서 질의하는 내용에 자동으로 y라고 답한다는 옵션

 옵션 update : 현제 시스템에 설치된 페키지와 참조한 페키지저장소의 페키지의 버전을 비교하여 최신버전으로 업데이트 하라는 명령어.

 옵션 groupinstall : 어떤 종류로 정의된 페키지들을 한번에 설치한다는 명령어.

 인자 "Development Tools" : Development Tools 종류로 정의된 페키지들의 집합.

(항상 " "로 지정한다.)

 옵션 install : 뒤에 명시된 인자를 페키지로 간주하고 저장소를 참조한다.

 

Step 2 >> DB 관리자 및 그룹 생성
[root@host ~] groupadd dba
[root@host ~] useradd -M -c "MySQL" -d /var/mysql -g dba -s /bin/nologin mysql

 

* groupadd : 새로운 그룹을 생성하는 명령어.

(위 명령은 dba라는 그룹을 생성하는 명령어이다.)

 

* useradd : 새로운 사용자를 생성하는 명령어.

 옵션 -M : 사용자 home디렉토리를 생성하지 않는다.

 옵션 -c : 사용자의 설명문이다.

 옵션 -d : home디렉토리 지정. home디렉토리를 생성 후 지정하려면 -m과 같이 사용한다.

 옵션 -g : 소속될 그룹을 지정한다.

 옵션 -s : 사용할 쉘을 지정한다.

(위 명령은 홈디렉토리는 새로 만들지 말고 /var/mysql디렉토리를 홈으로 사용하며 dba라는 그룹에 MySQL이라는 주석으로 mysql이라는 사용자를 생성하되, 사용하는 쉘이 없음으로 이계정으로 일반 사용자와 같이 로그인 할 수는 없다. 라는 명령어이다.)

 

Step 3 >> Mariadb 소스 다운로드 및 설치
[root@host ~] cd /usr/src
[root@host src] wget http://ftp.kaist.ac.kr/mariadb/mariadb-10.2.6/source/mariadb-10.2.6.tar.gz
[root@host src] tar zxvf mariadb-10.2.6.tar.gz
[root@host src] cd mariadb-10.2.6
[root@host mariadb-10.2.6] cmake \
-DCMAKE_INSTALL_PREFIX=/apm/server/mariadb \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/apm/apps/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/apm/server/mariadb/mysql.sock \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_ARIA_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_BOOST \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_ZLIB=system
[root@host mariadb-10.2.6] make; make install

 

* cd : 디랙토리 변경 명령어

* wget : 뒤에 명시되는 링크를 다운로드하는 프로그렘

* tar : 여러개의 파일을 단일파일로 묵거나, 묵어진 단일파일을 다시 분리시키는 프로그렘

단, tar만으로 압축을 하는것은 아니라는 것에 주의하자.

압축을 하는 것이 아니라는 말은 말 그대로 tar는 복수의 파일을 단수의 파일로 묵는 효과만 있을 뿐 데이터의 압축에 대하여는 아무로 연관이 없다.

tar형식을 유심히 보면 뒤에 bz2라든지 gz이라든지 따라붙는데, 이때 명시된 것이 bunzip 도는 gunzip으로 압축했다는 뜻이다.

정리하자면, ~.tar.gz라는 파일은 복수의 파일을 tar로 ~이라는 단일파일로 묵었고 gunzip을 통하여 압축했다는 뜻이다.

* 소스설치 : 리눅스 상에서 소스설치를 구분하여 보자면 일반적으로 3단계로 볼수 있을 것이다.

먼저 컴파일을 어떻게 할 것인지 정의 하는 configure

두번째로 정의한 규칙대로 바이너리화 시키는 컴파일

세번째로 컴파일된 목적파일을 정위치 시키는 install

* cmake : 소스를 컴파일 함에 있어 소스개발자의 환경에 맞추어 컴파일 환경을 만들고 컴파일을 수행하는 것이 통상이지만 사용자의 환경을 고려하여 개발환경과 다른 환경에서 컴파일을 하더라도 목적파일을 만드는것에 크게 지장이 없도록 어쩌면 사용자를 배려하는 입장이라고 볼 수 있는 개발자들도 있다.

이런상황을 일종의 크로스컴파일로 볼 수 있는데 MySQL이나 MariaDB는 이런 크로스컴파일 지원을 위하여 리눅스 자체의 gcc를 이용하지 않고 cmake라는 다른 컴파일러는 사용하여 컴파일 한다.

 

* configuer 옵션중 경로상의 몇가지만 알아보자.

prefix : 컴파일 후 설치할 경로

datadir : 저장될 DB파일들의 경로

unix_address : DB의 외부 연결 통로 파일인 socket파일이 생성될 경로

 

이외의 MySQL 설치 옵션은 아래 URL을 참고한다.
http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

 

Step 4 >> 데이터베이스가 저장되는 폴더 생성

“/apm/apps/data” 에 데이터베이스 파일들을 저장하기 위해서 “data” 폴더의 부모 폴더인 “/apm/apps” 폴더를 생성한다.
기본 데이터베이스 저장 폴더인 “/apm/server/mariadb/data” 에 저장하는 경우는 부모 폴더가 존재하기 때문에 폴더를 생성하지 않아도 된다.

[root@host mariadb-10.2.6] mkdir /apm/apps

 

Step 5 >> 환경 설정

위에서 mysql_install_db 를 실행하면 “/etc” 디렉토리에 my.cnf 파일이 생성된다.
이 파일을 설치시에 지정한 “/apm/server/conf” 디렉토리로 이동시켜서 환경 설정 파일을 수정한다.

[root@host mariadb-10.2.6] cd /apm/server/mariadb
[root@host mariadb] mkdir /apm/server/conf
[root@host mariadb] mv /etc/my.cnf /apm/server/conf/my.cnf
[root@host mariadb] mv /etc/my.cnf.d /apm/server/conf/my.cnf.d
[root@host mariadb] vi /apm/server/conf/my.cnf
[client]
port            = 3306
socket          = /apm/server/mariadb/mysql.sock

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#sql_mode=NO_ENGINE_SUBSTITUTION
datadir=/apm/apps/data
port            = 3306
socket          = /apm/server/mariadb/mysql.sock
back_log = 50
max_connections = 2000
max_connect_errors = 10
table_open_cache = 4096
max_allowed_packet = 32M
binlog_cache_size = 2M
max_heap_table_size = 1024M
read_buffer_size = 4M
read_rnd_buffer_size = 32M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 8
thread_concurrency = 8
query_cache_type = 0
query_cache_size = 1G
query_cache_limit = 1G
ft_min_word_len = 4
thread_stack = 480K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 1024M
log-bin=mysql-bin
binlog_format=mixed
slow_query_log
long_query_time = 2
server-id = 1
key_buffer_size = 64M
bulk_insert_buffer_size = 128M
myisam_sort_buffer_size = 256M
myisam_max_sort_file_size = 20G
myisam_repair_threads = 1
myisam_recover
#innodb_additional_mem_pool_size = 32M
innodb_buffer_pool_size = 8G
innodb_buffer_pool_instances = 4
innodb_data_file_path = ibdata1:10M:autoextend
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 1G
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_format = barracuda
innodb_doublewrite = 1
sync_binlog = 0

[mysqldump]
quick
max_allowed_packet = 32M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 1024M
sort_buffer_size = 1024M
read_buffer = 16M
write_buffer = 16M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
# include all files from the config directory
!includedir /apm/server/conf/my.cnf.d
open-files-limit = 8192

 

더 자세한 옵션은 아래 URL을 참고한다.
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html

 

Step 6 >> 파일 소유자, 소유 그룹 변경하기

[root@host mariadb] mkdir /var/log/mariadb
[root@host mariadb] mkdir /var/run/mariadb
[root@host mariadb] chown mysql:dba /var/log/mariadb
[root@host mariadb] chown mysql:dba /var/run/mariadb

 

Step 7 >> 기본 데이터베이스 생성 및 폴더 권한 변경

[root@host mariadb] ./scripts/mysql_install_db --user=mysql --datadir=/apm/apps/data  --defaults-file=/apm/server/conf/my.cnf
[root@host mariadb] chown -R mysql:dba /apm/server/mariadb

 

Step 8 >> 기본 데이터베이스 생성 및 폴더 권한 변경

DB디렉토리의 위치가 /apm/server/mariadb하위가 아닐경우 별도로 DB디렉토리의 권한도 변경한다.

[root@host mariadb] chown -R mysql:dba /apm/apps/data

 

Step 9 >> Mariadb의 중요 실행파일 심볼릭 링크 걸기

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

[root@host mariadb] ln -s /apm/server/mariadb/bin/mysql /usr/bin/mysql
[root@host mariadb] ln -s /apm/server/mariadb/bin/mysqldump /usr/sbin/mysqldump
[root@host mariadb] ln -s /apm/server/mariadb/bin/mysql_config /usr/sbin/mysql_config
[root@host mariadb] ln -s /apm/server/mariadb/bin/mysqladmin /usr/sbin/mysqladmin

 

Step 10 >> Mariadb service 등록
PID1이 init(System V Init)일 경우
[root@host mariadb] ln -s /apm/server/mariadb/support-files/mysql.server /etc/rc.d/init.d/mysql
[root@host mariadb] service mysql start
[root@host mariadb] service mysql stop
[root@host mariadb] chkconfig --add mysql
[root@host mariadb] chkconfig --level 24 mysql off
PID1이 systemd일 경우
[root@host mariadb] vi /etc/systemd/system/mysql.service
# It's not recommended to modify this file in-place, because it will be
# overwritten during package upgrades.  If you want to customize, the
# best way is to create a file "/etc/systemd/system/@DAEMON_NAME@.service",
# containing
#       .include /usr/lib/systemd/system/@DAEMON_NAME@.service
#       ...make your changes here...
# or create a file "/etc/systemd/system/@DAEMON_NAME@.service.d/foo.conf",
# which doesn't need to include ".include" call and which will be parsed
# after the file @DAEMON_NAME@.service itself is parsed.
#
# For more info about custom unit files, see systemd.unit(5) or
# http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F

# For example, if you want to increase mysql's open-files-limit to 10000,
# you need to increase systemd's LimitNOFILE setting, so create a file named
# "/etc/systemd/system/@DAEMON_NAME@.service.d/limits.conf" containing:
#       [Service]
#       LimitNOFILE=10000

# Note: /usr/lib/... is recommended in the .include line though /lib/...
# still works.
# Don't forget to reload systemd daemon after you change unit configuration:
# root> systemctl --system daemon-reload

[Unit]
Description=MariaDB database server
After=syslog.target
After=network.target

[Service]
Type=simple
User=mysql
Group=dba

#ExecStartPre=@libexecdir@/mysql-check-socket
#ExecStartPre=@libexecdir@/mysql-prepare-db-dir %n
# Note: we set --basedir to prevent probes that might trigger SELinux alarms,
# per bug #547485
ExecStart=/apm/server/mariadb/bin/mysqld --defaults-file=/apm/server/conf/my.cnf --datadir=/apm/apps/data --socket=/apm/server/mariadb/mysql.sock
#ExecStartPost=@libexecdir@/mysql-wait-ready $MAINPID
#ExecStartPost=@libexecdir@/mysql-check-upgrade
#ExecStopPost=@libexecdir@/mysql-wait-stop

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

# Place temp files in a secure directory, not /tmp
PrivateTmp=true

[Install]
WantedBy=multi-user.target
[root@host mariadb] systemctl start mysql.service
[root@host mariadb] systemctl stop mysql.service
[root@host mariadb] systemctl status mysql.service
[root@host mariadb] systemctl enable mysql.service
[root@host mariadb] systemctl disable mysql.service

 

Step 11 >> Administration Password
MySQL 의 관리자 계정인 “root” 의 암호를 설정한다.
암호를 설정한 뒤에는 MySQL 의 root 계정으로 접속 시에 설정한 암호를 요구하게 된다.
[root@host mariadb] mysqladmin -u root password
New password: ********
Confirm new password: ********
[root@host mariadb] mysqladmin -u root -p reload
Enter password: ********

 

Step 12 >> 공유 라이브러리 추가
MySQL 라이브러리를 다른 어플리케이션에서 쉽게 접근할 수 있도록 공유 라이브러리에 추가한다.
[root@host mariadb] echo "/apm/server/mariadb/lib" >> /etc/ld.so.conf
[root@host mariadb] ldconfig

 

Installing Apache

Step 1 >> APR 다운로드 및 압축 해제
[root@host mariadb] cd /usr/src
[root@host src] wget http://mirror.apache-kr.org/apr/apr-1.6.2.tar.gz
[root@host src] wget http://mirror.apache-kr.org/apr/apr-iconv-1.2.1.tar.gz
[root@host src] wget http://mirror.apache-kr.org/apr/apr-util-1.6.0.tar.gz
[root@host src] tar zxvf apr-1.6.2.tar.gz
[root@host src] tar zxvf apr-iconv-1.2.1.tar.gz
[root@host src] tar zxvf apr-util-1.6.0.tar.gz

 

Step 2 >> APR 설치
[root@host src] cd apr-1.6.2
[root@host apr-1.6.2] ./configure --prefix=/apm/server/apache/apr
[root@host apr-1.6.2] make; make install

 

Step 3 >> APR-iconv 설치
[root@host apr-1.6.2] cd ../apr-iconv-1.2.1
[root@host apr-iconv-1.2.1] ./configure \
--prefix=/apm/server/apache/apr-iconv \
--with-apr=/apm/server/apache/apr/bin/apr-1-config
[root@host apr-iconv-1.2.1] make; make install

 

Step 4 >> APR-util 설치
[root@host apr-iconv-1.2.1] cd ../apr-util-1.6.0
[root@host apr-util-1.6.0] ./configure \
--prefix=/apm/server/apache/apr-util \
--with-apr=/apm/server/apache/apr/bin/apr-1-config \
--with-apr-iconv=/apm/server/apache/apr-iconv/apriconv \
--with-crypto=/usr \
--with-openssl \
--with-dbm=db47 \
--with-gdbm \
--with-berkeley-db \
--with-mysql=/apm/server/mariadb \
--with-sqlite3 \
--with-expat=/usr
[root@host apr-util-1.6.0] make; make install

 

Step 5 >> http2 설치
[root@host apr-util-1.6.0] cd /usr/src
[root@host src] git clone https://github.com/nghttp2/nghttp2
[root@host src] cd nghttp2
[root@host nghttp2] autoreconf -i
[root@host nghttp2] automake
[root@host nghttp2] autoconf
[root@host nghttp2] ./configure --prefix=/apm/server/apache/nghttp2
[root@host nghttp2] make
[root@host nghttp2] make install
[root@host nghttp2] ldconfig

 

Step 6 >> 소스를 다운로드 받고 압축 해제

[root@host nghttp2] cd /usr/src
[root@host src] wget http://mirror.apache-kr.org/httpd/httpd-2.4.25.tar.gz
[root@host src] tar zxvf httpd-2.4.25.tar.gz

 

Step 7 >> 컴파일과 설치

[root@host src] cd httpd-2.4.25
[root@host httpd-2.4.25] ./configure \
--prefix=/apm/server/apache/httpd \
--sysconfdir=/apm/server/conf \
--with-apr=/apm/server/apache/apr/bin/apr-1-config \
--with-apr-iconv=/apm/server/apache/apr-iconv/apriconv \
--with-apr-util=/apm/server/apache/apr-util/bin/apu-1-config \
--with-libxml2 \
--with-mpm=prefork \
--with-nghttp2=/apm/server/apache/nghttp2 \
--with-pcre \
--with-ssl \
--with-z \
--enable-authn-socache=no \
--enable-authnz-ldap=no \
--enable-cache \
--enable-cgid=no \
--enable-deflate \
--enable-dav \
--enable-dav-fs=no \
--enable-dav-lock=no \
--enable-ext-filter=no \
--enable-expires \
--enable-file-cache \
--enable-headers \
--enable-http2 \
--enable-isapi=no \
--enable-lbmethod-bybusyness=no \
--enable-lbmethod-byrequests=no \
--enable-lbmethod-bytraffic=no \
--enable-lbmethod-heartbeat=no \
--enable-ldap=no \
--enable-mime-magic \
--enable-mods-shared=most \
--enable-modules=most \
--enable-mpms-shared=all \
--enable-nghttp2-staticlib-deps \
--enable-proxy \
--enable-proxy-ajp \
--enable-proxy-balancer=no \
--enable-proxy-connect=no \
--enable-proxy-express=no \
--enable-proxy-fcgi=no \
--enable-proxy-fdpass=no \
--enable-proxy-ftp=no \
--enable-proxy-http=no \
--enable-proxy-scgi=no \
--enable-rewrite \
--enable-so \
--enable-socache-dbm=no \
--enable-socache-shmcb \
--enable-ssl \
--enable-vhosts-alias
[root@host httpd-2.4.25] make; make install

[root@host httpd-2.4.25] cd /apm/server/conf
[root@host conf] vi httpd.conf

ServerRoot "/apm/server/apache/httpd"
Listen 80
# 사용할 모듈의 주석을 제거하여 활성화한다
LoadModule deflate_module modules/mod_deflate.so
LoadModule expires_module modules/mod_expires.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule http2_module modules/mod_http2.so
LoadModule dav_module modules/mod_dav.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule rewrite_module modules/mod_rewrite.so
...
</IfModule>
# 관리자 이메일
ServerAdmin admin@my.domain
# 서버 이름
#ServerName www.my.domain:80
ServerName 127.0.0.1
# 루트 디렉토리
<Directory />
    AllowOverride none
    Require all denied
</Directory>
# 도큐먼트 루트 디렉토리
DocumentRoot "/apm/apps/docs"
<Directory "/apm/apps/docs">
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
# 폴더로 접근할 때 실행하는 인덱스 파일 설정
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php index.php3
</IfModule>
# CGI 설정
<IfModule mime_module>
   AddHandler cgi-script .cgi
</IfModule>
# 개발 환경 설정 참조
<Files ".ht*">
    Require all denied
</Files>
# 설정 파일 import
# Server-pool management (MPM specific)
Include /apm/server/conf/extra/httpd-mpm.conf
# Language settings
Include /apm/server/conf/extra/httpd-languages.conf
# User home directories
Include /apm/server/conf/extra/httpd-userdir.conf
# Various default settings
Include /apm/server/conf/extra/httpd-default.conf
# Various deflate settings
Include /apm/server/conf/extra/httpd-deflate.conf

 

Step 8 >> 웹 문서 디렉터리 생성 및 추가 환경설정 수정
[root@host conf] mkdir /apm/apps/docs
[root@host conf] vi extra/httpd-mpm.conf
PidFile "/apm/server/apache/httpd/logs/httpd.pid"
[root@host conf] vi extra/httpd-languages.conf
DefaultLanguage ko
[root@host conf] vi extra/httpd-userdir.conf
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
[root@host conf] vi extra/httpd-deflate.conf
   AddType text/html .html .htm
   AddType text/css  .css
   AddType application/xml .xml
   AddType application/javascript  .js
   AddType application/x-httpd-php .php .php3 .html .htm .phtml .inc
   AddType application/x-httpd-php-source .phps

   AddOutputFilterByType DEFLATE text/plain text/html text/xml
   AddOutputFilterByType DEFLATE application/xhtml+xml application/xml application/rss+xml
   AddOutputFilterByType DEFLATE text/css application/javascript application/x-javascript
   AddOutputFilterByType DEFLATE application/json
   AddOutputFilterByType DEFLATE image/svg+xml
   AddOutputFilterByType DEFLATE text/xml
   AddOutputFilterByType DEFLATE text/php
   AddOutputFilterByType DEFLATE application/x-httpd-php
   AddOutputFilterByType DEFLATE application/x-httpd-fastphp
   AddOutputFilterByType DEFLATE audio/midi

   DeflateCompressionLevel 9

   BrowserMatch ^Mozilla/4 gzip-only-text/html
   BrowserMatch ^Mozilla/4\.0[678] no-gzip
   BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

   SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv|swf|exe|pdf|doc|xsl|hwp|java|c|t?gz|bz2|7z)$ no-gzip dont-vary
   Header append Vary User-Agent env=!dont-vary
<IfModule mod_expires.c>
   ExpiresActive On

   ExpiresByType application/x-javascript "access plus 1 month"
   ExpiresByType text/css "access plus 1 month"
   ExpiresByType image/jpeg "access plus 1 month"
   ExpiresByType image/gif "access plus 1 month"
   ExpiresByType image/png "access plus 1 month"
   ExpiresByType image/bmp "access plus 1 month"
   ExpiresByType image/cgm "access plus 1 month"
   ExpiresByType image/tiff "access plus 1 month"
   ExpiresByType video/mpeg "access plus 1 month"
   ExpiresByType video/quicktime "access plus 1 month"
   ExpiresByType video/x-msvideo "access plus 1 month"
   ExpiresByType audio/basic "access plus 1 month"
   ExpiresByType audio/midi "access plus 1 month"
   ExpiresByType audio/mpeg "access plus 1 month"
   ExpiresByType audio/x-aiff "access plus 1 month"
   ExpiresByType audio/x-mpegurl "access plus 1 month"
   ExpiresByType audio/x-pn-realaudio "access plus 1 month"
   ExpiresByType audio/x-wav  "access plus 1 month"
   ExpiresByType application/x-shockwave-flash  "access plus 1 month"
</IfModule>

 

Step 9 >> selinux 비활성화
[root@host conf] vi /etc/selinux/config
SELINUX=disabled
[root@host conf] reboot

 

Step 10 >> firewalld 방화벽 허용
[root@host ~] vi /etc/firewalld/zones/public.xml
#프로토콜명으로 허용시
  <service name="ssh"/>
#포트번호로 허용시
  <port protocol="tcp" port="80"/>
firewalld 방화벽 재시작
[root@host ~] systemctl restart firewalld

 

Step 11 >> apachectl 스크립트 수정
[root@host ~] vi /apm/server/apache/httpd/bin/apachectl
#!/bin/sh
#
# Apache This starts and stops Apache.
#
# chkconfig: 35 20 80
# description: Apache Web Service
#
# Licensed to the Apache Software Foundation
...

 

Step 12 >> Apache service 등록
PID1이 init(System V Init)일 경우
[root@host ~] ln -s /apm/server/apache/httpd/bin/apachectl /etc/rc.d/init.d/apache
[root@host ~] service apache start
[root@host ~] service apache stop
[root@host ~] chkconfig --add apache
[root@host ~] chkconfig --level 24 apache off
PID1이 systemd일 경우
[root@host ~] vi /etc/systemd/system/apache.service
[Unit]
Description=Apache Web Server.
After=network.target

[Service]
Type=simple
ExecStart=/apm/server/apache/httpd/bin/httpd $OPTIONS -DFOREGROUND
ExecStop=/apm/server/apache/httpd/bin/httpd $OPTIONS -k graceful-stop
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
[root@host ~] systemctl start apache.service
[root@host ~] systemctl stop apache.service
[root@host ~] systemctl status apache.service
[root@host ~] systemctl enable apache.service
[root@host ~] systemctl disable apache.service

 

Step 13 >> Apache 테스트

실제 브라우저를 이용하여 확인

[root@host ~] echo "apache TEST" > /apm/apps/docs/index.html
[root@host ~] chmod 755 /apm/apps/docs/index.html

 

Step 14 >> 공유 라이브러리 추가
[root@host ~] echo "/apm/server/apache/httpd/module" >> /etc/ld.so.conf
[root@host ~] ldconfig

 

Installing PHP

 

Step 1 >> 의존 라이브러리 설치
[root@host ~] yum install libxml2-devel
[root@host ~] yum install bzip2-devel
[root@host ~] yum install libcurl-devel
[root@host ~] yum install gdbm-devel
[root@host ~] yum install libvpx libvpx-devel
[root@host ~] yum install libjpeg-turbo-devel
[root@host ~] yum install libpng-devel
[root@host ~] yum install libXpm libXpm-devel
[root@host ~] yum install freetype-devel
[root@host ~] yum install t1lib t1lib-devel
[root@host ~] yum install gmp-devel
[root@host ~] yum install libc-client libc-client-devel
[root@host ~] yum install pam-devel
[root@host ~] yum install libicu libicu-devel
[root@host ~] yum install openldap-devel
[root@host ~] yum install readline-devel
[root@host ~] yum install libedit-devel
[root@host ~] yum install libtidy libtidy-devel
[root@host ~] yum install libxslt libxslt-devel

 

또는

 

[root@host ~] yum -y install libxml2-devel bzip2-devel libcurl-devel gdbm-devel libvpx libvpx-devel libjpeg-turbo-devel libpng-devel libXpm libXpm-devel freetype-devel t1lib t1lib-devel gmp-devel libc-client libc-client-devel pam-devel libicu libicu-devel openldap-devel readline-devel libedit-devel libtidy libtidy-devel libxslt libxslt-devel

 

Step 2 >> 의존 라이브러리 설치를 위한 레포지터리 추가
[root@host ~] vi /etc/yum.repos.d/public-yum-el5.repo
[el5_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/latest/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=1

[el5_ga_base]
name=Oracle Linux $releasever GA installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/0/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[el5_u1_base]
name=Enterprise Linux $releasever Update 1 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/1/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[el5_u2_base]
name=Enterprise Linux $releasever Update 2 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/2/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[el5_u3_base]
name=Enterprise Linux $releasever Update 3 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/3/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[el5_u4_base]
name=Enterprise Linux $releasever Update 4 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/4/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[el5_u5_base]
name=Enterprise Linux $releasever Update 5 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/5/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[ol5_u5_base]
name=Oracle Linux $releasever Update 5 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/5/base/x86_64/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[ol5_u6_base]
name=Oracle Linux $releasever Update 6 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/6/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[ol5_u7_base]
name=Oracle Linux $releasever Update 7 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/7/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[ol5_u8_base]
name=Oracle Linux $releasever Update 8 installation media copy ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/8/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[el5_addons]
name=Enterprise Linux $releasever Add ons ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/addons/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[el5_oracle_addons]
name=Oracle Software addons for Enterprise Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/oracle_addons/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[ol5_UEK_latest]
name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/UEK/latest/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[ol5_UEK_base]
name=Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/UEK/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0

[el5_unsupported]
name=Productivity Applications for Enterprise Linux $releasever ($basearch)
baseurl=http://public-yum.oracle.com/repo/EnterpriseLinux/EL5/unsupported/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=0
[root@host ~] yum -y install libc-client libc-client-devel

 

Step 3 >> libmcrypt 설치
[root@host ~] cd /usr/src
[root@host src] wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/7/x86_64/l/libc-client-2007f-4.el7.1.x86_64.rpm
[root@host src] wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/7/x86_64/u/uw-imap-devel-2007f-4.el7.1.x86_64.rpm
[root@host src] rpm -ivh libc-client-2007f-4.el7.1.x86_64.rpm
[root@host src] rpm -ivh uw-imap-devel-2007f-4.el7.1.x86_64.rpm
[root@host src] wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
[root@host src] tar zxvf libmcrypt-2.5.8.tar.gz
[root@host src] cd libmcrypt-2.5.8
[root@host libmcrypt-2.5.8] ./configure
[root@host libmcrypt-2.5.8] make; make install
[root@host libmcrypt-2.5.8] ln -s /usr/local/lib/libmcrypt.so.4 /usr/local/lib64/libmcrypt.so.4

 

Step 4 >> 의존 라이브러리 설치후 레포지터리 업데이트 오류가 발생할 확율이 있음으로 el5 레포지터리를 삭제한다.
- MySQL 라이브러리 참조
[root@host libmcrypt-2.5.8] rm /etc/yum.repos.d/public-yum-el5.repo
[root@host libmcrypt-2.5.8] ln -s /apm/server/mariadb/lib /apm/server/mariadb/lib64

 

Step 5 >> 소스를 다운로드 받고 압축 해제
[root@host ~] cd /usr/src
[root@host src] wget http://kr1.php.net/distributions/php-7.1.6.tar.gz
[root@host src] tar zxvf php-7.1.6.tar.gz
[root@host src] cd php-7.1.6
[root@host php-7.1.6] ./configure \
--prefix=/apm/server/php \
--with-apxs2=/apm/server/apache/httpd/bin/apxs \
--with-bz2 \
--with-config-file-path=/apm/server/conf \
--with-curl \
--with-db4=/usr \
--with-freetype-dir=/usr \
--with-gd \
--with-gdbm \
--with-gettext \
--with-gmp \
--with-iconv \
--with-icu-dir=/usr \
--with-imap=/usr/local/imap-2007 \
--with-imap-ssl \
--with-jpeg-dir=/usr \
--with-kerberos \
--with-ldap \
--with-ldap-sasl \
--with-libdir=lib64 \
--with-libedit \
--with-libexpat-dir=/usr \
--with-libmbfl \
--with-libxml-dir=/usr \
--with-mcrypt \
--with-mhash \
--with-mysql=mysqlnd \
--with-mysql-sock=/apm/server/mariadb/mysql.sock \
--with-mysqli=mysqlnd \
--with-onig \
--with-openssl \
--with-openssl-dir=/usr \
--with-pcre-dir=/usr \
--with-pcre-regex \
--with-pdo-mysql=mysqlnd \
--with-pear \
--with-pic \
--with-png-dir=/usr \
--with-readline \
--with-regex=php \
--with-t1lib=/usr \
--with-vpx-dir=/usr \
--with-xmlrpc \
--with-xpm-dir=/usr \
--with-xsl \
--with-zlib \
--with-zlib-dir=/usr \
--enable-bcmath \
--enable-calendar \
--enable-dba=shared \
--enable-dom \
--enable-exif \
--enable-fpm \
--enable-ftp \
--enable-gd-jis-conv \
--enable-gd-native-ttf \
--enable-inline-optimization \
--enable-intl \
--enable-maintainer-zts \
--enable-mbregex \
--enable-mbstring \
--enable-mod-charset \
--enable-mysqlnd \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-sigchild \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-zip
[root@host php-7.1.6] make; make install
[root@host php-7.1.6] cd /usr/src
[root@host src] wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
[root@host src] tar -zxvf ioncube_loaders_lin_x86-64.tar.gz
[root@host src] cp /usr/src/ioncube/ioncube_loader_lin_7.0_ts.so /apm/server/php/lib/php/extensions/no-debug-zts-20160303/

 

Step 6 >> 환경 설정
[root@host php-7.1.2] cp php.ini-production /apm/server/conf/php.ini
[root@host php-7.1.2] vi /apm/server/conf/php.ini
engine = On
short_open_tag = On
asp_tags = On
disable_functions = system,exec,passthru,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
memory_limit = 1024M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
post_max_size = 1023M
default_charset = "UTF-8"
file_uploads = On
upload_tmp_dir = /tmp
upload_max_filesize = 1022M
max_file_uploads = 20
allow_url_fopen = Off
zend_extension=/apm/server/php/lib/php/extensions/no-debug-zts-20160303/ioncube_loader_lin_7.0_ts.so
zend_extension=/apm/server/php/lib/php/extensions/no-debug-zts-20160303/opcache.so
date.timezone = "Asia/Seoul"
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1

 

Step 7 >> Apache 설정
[root@host php-7.1.2] vi /apm/server/conf/httpd.conf
# PHP 모듈이 정상적으로 추가되었는지 확인
LoadModule php7_module modules/libphp7.so
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php index.php3 index.cgi index.jsp
</IfModule>
<IfModule mime_module>
    ... 중략 ...
    AddType application/x-httpd-php .htm .html .php .ph php3 .php4 .phtml .inc
    AddType application/x-httpd-php-source .phps
</IfModule>

 

Step 8 >> PATH 추가 및 PHP 설치 확인
[root@host php-7.1.2] systemctl restart apache
[root@host php-7.1.2] ln -s /apm/server/php/bin/php /bin/php
[root@host php-7.1.2] ln -s /apm/server/php/bin/php-config /usr/local/bin/php-config
[root@host php-7.1.2] ln -s /apm/server/php/bin/phpize /usr/local/bin/phpize
[root@host php-7.1.2] echo "<?php phpinfo() ?>" > /apm/apps/docs/phpinfo.php

 

 

 

 

 

 

 

 

 

 

 

 

[root@host php-7.1.2] mkdir /apm/apps/plugin

[root@host php-7.1.2] cd /apm/apps/plugin

[root@host plugin] wget https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.tar.gz

[root@host plugin] tar zxvf phpMyAdmin-4.6.6-all-languages.tar.gz

[root@host plugin] mv phpMyAdmin-4.6.6-all-languages phpmyadmin
[root@host plugin] rm -rf phpMyAdmin-4.6.6-all-languages.tar.gz

 

[root@host plugin] vi /apm/server/conf/httpd.conf

 

# Alias directory settings
Include /apm/server/conf/extra/httpd-alias.conf

 

[root@host plugin] vi /apm/server/conf/extra/httpd-alias.conf

 

#
# Alias settings
#

<IfModule alias_module>

# PHPMyAdmin
Alias /phpmyadmin "/apm/apps/plugin/phpmyadmin"
<Directory "/apm/apps/plugin/phpmyadmin">
 Options FollowSymLinks
 AllowOverride FileInfo
 Require all granted
</Directory>

</IfModule>

 

[root@host plugin] systemctl restart apache.service

 

 

 

 

 

 

설치 OS 환경 : CentOS 7.3.1611
설치 PHP 버전 : PHP 7.1.2

위와 같은 환경에서 imap 옵션 등을 주어 설치를 진행하는 중 다음과 같은 에러 메세지를 만날 경우

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.

보통 libc-client-devel 를 설치하면 된다고 검색 결과를 얻을 수 있다.   하지만,  CentOS 7 버전에는 libc-client-devel 패키지가 포함되지 않는다.  

따라서 다음과 같이 EPEL 저장소를 이용하기 위해 몇 가지 설치 과정을 거쳐야 관련 라이브러리를 설치할 수 있다.

1. epel-release-7-*.noarch.rpm 설치

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

yum install epel-release-7-5.noarch.rpm

2. remi-release-7.rpm 설치

wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 

yum install remi-release-7.rpm 

3. yum 패키지 업데이트

yum -y update

4. imap 관련 라이브러리 4개 설치 

libc-client-2007f-4.el7.1.x86_64.rpm
uw-imap-devel-2007f-4.el7.1.x86_64.rpm
uw-imap-2007f-4.el7.1.x86_64.rpm
uw-imap-static-2007f-4.el7.1.x86_64.rpm

yum install libc-client-2007f
yum install uw-imap-devel-2007f
yum install uw-imap-2007f
yum install uw-imap-static-2007f

5. imap 라이브러리 심볼릭 링크 

ln -s /usr/lib64/libc-client.a /usr/lib/libc-client.a

 

 

 

# mysqladmin 이용
mysqladmin -u root password 새비밀번호
# update문 이용
mysql -u root mysql
----
mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root';
mysql> FLUSH PRIVILEGES;
# Set Password 이용
mysql> SET PASSWORD FOR root=password('새비밀번호');

 

 

 

 

 

 

 

 

 

 

 

 

 

[mysqld]
datadir = /home/mysql/mysql-5.6.31/data/
basedir = /home/mysql/mysql-5.6.31
user = mysql
port = 3306
socket = /home/mysql/mysql-5.6.31/conf/mysql.sock
pid-file = /home/mysql/mysql-5.6.31/conf/mysqld.pid
#default-time-zone = 'UTC' # mysql start 이후 재설정
back_log = 300
skip_external_locking

# Query Cache
query_cache_limit = 0
query_cache_size = 0
query_cache_type = 0

## Logging
log_error=/home/mysql/mysql-5.6.31/log/glog/error.log
log-warnings = 1
log-bin=/home/mysql/mysql-5.6.31/log/blog/mysql-bin
log-output = FILE
general_log = 0
general_log_file = /home/mysql/mysql-5.6.31/log/glog/query.log
slow_query_log = 0
slow_query_log_file = /home/mysql/mysql-5.6.31/log/glog/slowquery.log
#log_queries_not_using_indexes
long_query_time = 10
max_binlog_size = 1G
expire_logs_days = 7
## Replication
#binlog_format = MIXED
#server-id = 1
## Per-Thread Buffers * (max_connections) = total per-thread mem usage
thread_stack = 512K
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
join_buffer_size = 2M
binlog_cache_size = 128K
## total per-thread buffer memory usage: 17664000K = 17.250GB
## Connections
max_connections = 2000
max_connect_errors = 100
max_allowed_packet = 32M
## Default Table Settings
# sql_mode =
## Table and TMP settings
max_heap_table_size = 1G
bulk_insert_buffer_size = 1G
tmp_table_size = 1G
tmpdir = /home/mysql/mysql-5.6.31/tmpdir
## Table cache settings
table_open_cache = 2000
## Thread settings
thread_concurrency = 16
thread_cache_size = 100
## InnoDB
innodb_adaptive_hash_index = 1 #####
innodb_additional_mem_pool_size = 8M
innodb_buffer_pool_size = 32G
innodb_data_home_dir = /home/mysql/mysql-5.6.31/data
#innodb_data_file_path = ibdata1:128M;ibdata2:10M:autoextend # Check !!!!!!
innodb_doublewrite = 1
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 1
innodb_io_capacity = 400
innodb_lock_wait_timeout = 50
innodb_log_buffer_size = 128M
innodb_log_file_size = 768M
innodb_log_files_in_group = 4
innodb_log_group_home_dir = /home/mysql/mysql-5.6.31/log/blog
innodb_read_io_threads = 16
innodb_thread_concurrency = 16
innodb_write_io_threads = 16
## MyISAM Engine
key_buffer_size = 8M
## Binlog sync settings
sync_binlog = 0
## Time out
wait_timeout = 1800
interactive_timeout = 1800
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
## Per-Thread Buffer memory utilization equation:
#(read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size + binlog_cache_size) * max_connections
# = 17.250G
## Global Buffer memory utilization equation:
# innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + key_buffer_size + query_cache_size
# = 32912M = 32.14G

[mysqldump]
#quick
#max_allowed_packet = 128M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cmake \

-DCMAKE_INSTALL_PREFIX=/apm/server/mariadb \

-DINSTALL_SYSCONFDIR=/apm/server/config \

-DINSTALL_SYSCONF2DIR=/apm/server/config/my.cnf.d \

-DMYSQL_DATADIR=/apm/apps/data \

-DTMPDIR=/apm/server/mariadb/tmp \

-DMYSQL_UNIX_ADDR=/apm/server/mariadb/mysql.sock \

-DPID_FILE_DIR=/apm/server/mariadb/mariadb.pid \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_ARIA_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_BOOST=1 \

-DWITH_EXTRA_CHARSETS=all \

-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_JEMALLOC=0 \

-DWITH_LOCALES=0 \

-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_QUERY_CACHE_INFO=0 \

-DWITH_QUERY_RESPONSE_TIME=0 \

-DWITH_READLINE=1 \

-DWITH_SAFEMALLOC=AUTO \

-DWITH_SSL=system \

-DWITH_XTRADB_STORAGE_ENGINE=1 \

-DWITH_ZLIB=system \

-DUSE_ARIA_FOR_TMP_TABLES=0

 

 

 

 

 

 

 

 

 

 

 

-DINSTALL_DOCDIR=share/doc/mariadb-10.0.14 \

-DINSTALL_DOCREADMEDIR=share/doc/mariadb-10.0.14 \

-DINSTALL_INCLUDEDIR=include/mysql \

-DINSTALL_INFODIR=share/info \

-DINSTALL_LIBDIR=lib64/mysql \

-DINSTALL_MANDIR=share/man \

-DINSTALL_MYSQLSHAREDIR=share/mariadb \

-DINSTALL_MYSQLTESTDIR=share/mysql-test \

-DINSTALL_PLUGINDIR=lib64/mysql/plugin \

-DINSTALL_SBINDIR=libexec \

-DINSTALL_SCRIPTDIR=bin \

-DINSTALL_SQLBENCHDIR=share \

-DINSTALL_SUPPORTFILESDIR=support-files \

-DDAEMON_NAME=mariadb \

List of Articles
번호 제목 글쓴이 날짜 조회 수

XE Login