이 글은 Apache, PHP, Mariadb 의 각 소스 코드를 받아서 사용자가 변경한 디렉토리에 설치를 합니다. 그 이유는 웹서버를 통합적으로 한 디렉터리에서 관리 하기 쉽게 만들기 위해서 입니다. 이 글은 내용 설명 보다는 설치 위주이며 우선 이 설명을 따라 설치 해보시고 그 과정에서 이유를 생각하고 각자에게 발생한 trouble shooting을 하면서 배워 나갑니다.
Setup web server on centos 7
구축 환경: 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
[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 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 : 뒤에 명시된 인자를 페키지로 간주하고 저장소를 참조한다.
[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이라는 사용자를 생성하되, 사용하는 쉘이 없음으로 이계정으로 일반 사용자와 같이 로그인 할 수는 없다. 라는 명령어이다.)
[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] 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
[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
MySQL 의 주요 실행 파일을 어떤 경로에서든지 실행할 수 있도록 PATH 환경 변수에 추가된 “/bin”, “/sbin” 디렉토리로 Symbolic Link 를 걸어둔다.
[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
[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
# 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 stop mysql.service
[root@host mariadb] systemctl status mysql.service
[root@host mariadb] systemctl enable mysql.service
[root@host mariadb] systemctl disable mysql.service
MySQL 의 관리자 계정인 “root” 의 암호를 설정한다.
암호를 설정한 뒤에는 MySQL 의 root 계정으로 접속 시에 설정한 암호를 요구하게 된다.
New password: ********
Confirm new password: ********
[root@host mariadb] mysqladmin -u root -p reload
Enter password: ********
MySQL 라이브러리를 다른 어플리케이션에서 쉽게 접근할 수 있도록 공유 라이브러리에 추가한다.
[root@host mariadb] ldconfig
Installing Apache
[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
[root@host apr-1.6.2] ./configure --prefix=/apm/server/apache/apr
[root@host apr-1.6.2] make; make install
[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
[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
[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
[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
[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
[root@host conf] vi extra/httpd-mpm.conf
PidFile "/apm/server/apache/httpd/logs/httpd.pid"
DefaultLanguage ko
Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
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>
SELINUX=disabled
#프로토콜명으로 허용시 <service name="ssh"/> #포트번호로 허용시 <port protocol="tcp" port="80"/>
#!/bin/sh # # Apache This starts and stops Apache. # # chkconfig: 35 20 80 # description: Apache Web Service # # Licensed to the Apache Software Foundation ...
[root@host ~] service apache start
[root@host ~] service apache stop
[root@host ~] chkconfig --add apache
[root@host ~] chkconfig --level 24 apache off
[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 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 ~] chmod 755 /apm/apps/docs/index.html
[root@host ~] ldconfig
Installing PHP
[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
또는
[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 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
- MySQL 라이브러리 참조
[root@host libmcrypt-2.5.8] ln -s /apm/server/mariadb/lib /apm/server/mariadb/lib64
[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/
[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
# 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>
[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 \