관련 페키지 설치
// pkg install -y wget cmake ncurses libtool expat pcre openssl openssl-devel flex gcc patch gettext automake bison autoconf binutils patchutils byacc diffstat cvs rcs subversion ctags cscope fuse lzma doxygen intltool git swig pkgconf rsync gawk mawk gnulib
pkg_add wget gcc cmake bison libtool openssl automake autoconf gettext cscope fuse doxygen intltool git swig gawk mawk glib
bzr ccache colordiff cvsps darcs dejagnu expect ghc haskell-platform imake lua mercurial nasm ocaml perltidy qgit sbcl trac openssl098e
libiconv gettext libidn libunistring libpsl pcre
gcc-libs gmp mpfr libmpc
nghttp2 curl jsoncpp bzip2 xz lzo2 libarchive
libsigsegv m4
metaauto gpatch
apr db apr-util serf cyrus-sasl
png libxml libffi libelf python glib2 libogg flac libaudiofile libgpg-error libgcrypt libspectrum libao
p5-XML-Parser gettext-tools p5-Error cvsps rsync
p5-Term-ReadKey mariadb-client p5-FreezeThaw p5-MLDBM p5-Params-Util p5-Math-Base-Convert p5-Clone p5-Module-Runtime p5-SQL-Statement p5-Net-Daemon p5-PlRPC p5-DBI p5-DBD-mysql
계정 생성
groupadd dba
useradd -m -c "MySQL" -d /var/mysql -g dba -s /bin/nologin mysql
컴파일러 버전변경
mv /usr/bin/gcc /usr/bin/gcc-old
ln -s /usr/local/bin/x86_64-unknown-openbsd5.9-gcc-4.9.3 /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-old
ln -s /usr/local/bin/x86_64-unknown-openbsd5.9-gcc-4.9.3 /usr/bin/g++
mv /usr/bin/cc /usr/bin/cc-old
ln -s /usr/local/bin/x86_64-unknown-openbsd5.9-gcc-4.9.3 /usr/bin/CC
mv /usr/bin/cpp /usr/bin/cpp-old
ln -s /usr/local/bin/x86_64-unknown-openbsd5.9-gcc-4.9.3 /usr/bin/cpp
ln -s /usr/local/bin/x86_64-unknown-openbsd5.9-gcc-4.9.3 /usr/bin/cc
mv /usr/bin/c++ /usr/bin/c++-old
ln -s /usr/local/bin/x86_64-unknown-openbsd5.9-gcc-4.9.3 /usr/bin/c++
mv /usr/bin/CC /usr/bin/CC-old
ln -s /usr/local/bin/x86_64-unknown-openbsd5.9-gcc-4.9.3 /usr/bin/CXX
라이브러리 링크
ln -s /usr/local/lib /usr/lib
소스 다운로드 및 설치
cd /usr/src
wget http://ftp.kaist.ac.kr/mariadb/mariadb-10.1.14/source/mariadb-10.1.14.tar.gz
tar zxvf mariadb-10.1.14.tar.gz
chmod -R 777 mariadb-10.1.14
cd mariadb-10.1.14
cmake \
-DCMAKE_INSTALL_PREFIX=/apm/server/mariadb \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_DATADIR=/apm/apps/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/apm/server/mariadb/mysql.sock \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_ARIA_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_ZLIB=system \
-DWITHOUT_TOKUDB=1
make
make install
디렉토리 생성 및 환경 설정
mkdir /apm/apps
cd /apm/server/mariadb
mkdir /apm/server/conf
mv /etc/my.cnf /apm/server/conf/my.cnf
vi /apm/server/conf/my.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir=/apm/apps/data
socket=/apm/server/mariadb/mysql.sock
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
# Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
# include all files from the config directory
# !includedir /etc/my.cnf.d
디렉토리 생성 및 권한 설정
mkdir /var/log/mariadb
mkdir /var/run/mariadb
chown mysql:dba /var/log/mariadb
chown mysql:dba /var/run/mariadb
./scripts/mysql_install_db --user=mysql --datadir=/apm/apps/data --defaults-file=/apm/server/conf/my.cnf
chown -R mysql:dba /apm/server/mariadb
chown -R mysql:dba /apm/apps/data
ln -s /apm/server/mariadb/bin/mysql /usr/bin/mysql
ln -s /apm/server/mariadb/bin/mysqldump /usr/sbin/mysqldump
ln -s /apm/server/mariadb/bin/mysql_config /usr/sbin/mysql_config
ln -s /apm/server/mariadb/bin/mysqladmin /usr/sbin/mysqladmin
ln -s /apm/server/mariadb/support-files/mysql.server /etc/rc.d/mysql
service mysql start
ln -s /apm/server/mariadb/support-files/mysql.server /usr/local/etc/rc.d/mysql.server.sh
root 비밀번호 설정
mysqladmin -u root password
mysqladmin -u root -p reload
DB 접속 테스트
mysql -u root -p
Apache 다운로드 및 설치
cd /usr/src
wget http://mirror.apache-kr.org/httpd/httpd-2.4.20.tar.gz
tar zxvf httpd-2.4.20.tar.gz
cd httpd-2.4.20
./configure \
--prefix=/apm/server/apache/httpd \
--sysconfdir=/apm/server/conf \
--with-apr=/usr/local/bin/apr-1-config \
--with-apr-util=/usr/local/bin/apu-1-config \
--with-libxml2 \
--with-mpm=worker \
--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-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-proxy \
--enable-proxy-ajp=no \
--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
make
make install
Apache 환경설정
cd /apm/server/conf
vi httpd.conf
ServerRoot "/apm/server/apache/httpd"
Listen 80
# 사용할 모듈의 주석을 제거하여 활성화한다
LoadModule slotmem_shm_module modules/mod_slotmem_shm.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 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>
# 개발 환경 설정 참조
<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
mkdir /apm/apps/docs
vi extra/httpd-languages.conf
DefaultLanguage ko
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
...
ln -s /apm/server/apache/httpd/bin/apachectl /etc/rc.d/apache
kldload accf_data
kldload accf_http
service apache start
ln -s /apm/server/apache/httpd/bin/apachectl /usr/local/etc/rc.d/apache.sh
echo "/apm/server/apache/httpd/module" >> /etc/ld.so.conf
ldconfig
echo 'accf_data_load="YES"' >> /boot/loader.conf
echo 'accf_http_load="YES"' >> /boot/loader.conf
Apache 테스트
실제 브라우저를 이용하여 확인
echo "apache TEST" > /apm/apps/docs/index.html
chmod 755 /apm/apps/docs/index.html
php install
pkg install libvpx icu openldap-sasl-client mcrypt libxslt cclient
cd /usr/src
wget http://kr1.php.net/distributions/php-5.6.23.tar.gz
tar zxvf php-5.6.23.tar.gz
cd php-5.6.23
./configure \
--prefix=/apm/server/php \
--program-prefix= \
--with-layout=GNU \
--localstatedir=/var \
--with-config-file-path=/apm/server/conf \
--with-config-file-scan-dir=/apm/server/conf \
--disable-all \
--disable-cli \
--disable-cgi \
--with-apxs2=/apm/server/apache/httpd/bin/apxs \
--with-bz2 \
--with-curl \
--with-freetype-dir=/usr/local \
--with-gd \
--with-gdbm \
--with-gettext \
--with-gmp \
--with-iconv-dir=/usr/lib/ \
--with-icu-dir=/usr/local \
--with-imap \
--with-imap-ssl \
--with-jpeg-dir=/usr/local \
--with-kerberos \
--with-ldap \
--with-ldap-sasl \
--with-libdir=lib \
--with-libedit \
--with-libexpat-dir=/usr/local \
--with-libmbfl \
--with-libxml-dir=/usr/local \
--with-mcrypt \
--with-mhash \
--with-mysql-sock=/apm/server/mariadb/mysql.sock \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-onig \
--with-openssl \
--with-openssl-dir=/usr/local \
--with-pcre-dir=/usr/local \
--with-pcre-regex=/usr/local \
--with-pdo-mysql=mysqlnd \
--with-pear \
--with-pic \
--with-png-dir=/usr/local \
--with-readline \
--with-regex=php \
--with-t1lib=/usr/local \
--with-vpx-dir=/usr/local \
--with-xmlrpc \
--with-xpm-dir=/usr/local \
--with-xsl \
--with-zend-vm=CALL \
--with-zlib \
--with-zlib-dir=/usr \
--enable-bcmath \
--enable-calendar \
--enable-dba=shared \
--enable-dom \
--enable-exif \
--enable-ftp \
--enable-gd-jis-conv \
--enable-gd-native-ttf \
--enable-inline-optimization \
--enable-intl \
--enable-json \
--enable-libxml \
--enable-maintainer-zts \
--enable-mbregex \
--enable-mbstring \
--enable-mod-charset \
--enable-mysqlnd \
--enable-opcache \
--enable-pcntl \
--enable-pdo \
--enable-session \
--enable-shmop \
--enable-sigchild \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-xml \
--enable-zip
make
make install
환경 설정
cp php.ini-production /apm/server/conf/php.ini
vi /apm/server/conf/php.ini
short_open_tag = On
asp_tags = On
date.timezone = "Asia/Seoul"
vi /apm/server/conf/httpd.conf
# PHP 모듈이 정상적으로 추가되었는지 확인
LoadModule php5_module modules/libphp5.so
<IfModule mime_module>
... 중략 ...
AddType application/x-httpd-php .php .html
AddType application/x-httpd-php-source .phps
</IfModule>
service apache stop
service apache start
ln -s /apm/server/php/bin/php /bin/php
ln -s /apm/server/php/bin/php-config /usr/local/bin/php-config
ln -s /apm/server/php/bin/phpize /usr/local/bin/phpize
echo "<?php phpinfo() ?>" > /apm/apps/docs/phpinfo.php
cd /apm/apps/docs
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.2/phpMyAdmin-4.6.2-all-languages.tar.gz
tar zxvf phpMyAdmin-4.6.2-all-languages.tar.gz
mv phpMyAdmin-4.6.2-all-languages phpmyadmin