WindyHana's Solanara: SAMP

목차

개요

요구 라이브러리 설치

  1. OpenSSL

    Apache와 MySQL에 SSL라이브러리를 넣어 같이 컴파일 한다. 필요없다면 SSL설치를 생략하고 Apache, MySQL 의 configure 시 ssl 옵션을 뺀다. OpenSSL의 설치는 윈디하나의 솔라나라: OpenSSL을 참고한다.
  2. The GNU Readline Library

    공식 홈페이지
    root@wl ~ # wget ftp://ftp.cwru.edu/pub/bash/readline-6.1.tar.gz 1)
    root@wl ~ # tar xvfz readline-6.1.tar.gz
    root@wl ~ # cd readline-6.1
    root@wl ~/readline-6.1 # ./configure --enable-multibyte
    root@wl ~/readline-6.1 # make
    root@wl ~/readline-6.1 # make install
    
  3. Oracle Berkeley DB

    공식홈페이지 유닉스 프로그램에서 보통 DB라 하면 이 버클리 DB를 말할정도로 대중적인 임베디드 데이터베이스이다. 처음엔 UCB(캘리포티아대 버클리)에서 관리하던 버클리DB를, 좀 더 체계적인 관리를 목적으로 1996년 SleepyCat 이라는 법인이 설립되어 이어져오다가, 2006년 2월 오라클에 합병되었다. db-x.x.x.tar.gz 파일은 Oracle Berkeley DB Downloads에서 오라클에 가입(무료)한후 무료로 다운로드 받을 수 있다.
    root@wl ~ # tar xvfz db-5.0.21.tar.gz
    root@wl ~ # cd db-5.0.21
    root@wl ~/db-5.0.21 # cd build_unix
    root@wl ~/db-5.0.21/build_unix # ../dist/configure \
     --enable-pthread_api \
     --enable-dtrace
    메시지 생략
    config.status: creating db.h
    config.status: creating db_config.h
    root@wl ~/db-5.0.21/build_unix # make
    root@wl ~/db-5.0.21/build_unix # make install
    root@wl ~/db-5.0.21/build_unix # vi /etc/profile
    # for Oracle Berkeley DB located at /usr/local/db
    if [ -d /usr/local/db ]
    then
      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/db/lib; export LD_LIBRARY_PATH
    fi
    
    root@wl ~/db-5.0.21/build_unix # cd /usr/local
    root@wl /usr/local # ln -s BerkeleyDB.5.0 db
    
  4. zlib

    공식 홈페이지
    root@wl ~ # wget http://www.zlib.net/zlib-1.2.4.tar.gz
    root@wl ~ # tar xvfz zlib-1.2.4.tar.gz
    root@wl ~ # cd zlib-1.2.4
    root@wl ~/zlib-1.2.4 # ./configure -s
    root@wl ~/zlib-1.2.4 # make 1)
    root@wl ~/zlib-1.2.4 # make test
    ...
                    *** zlib test OK ***
    root@wl ~/zlib-1.2.4 # make install
    
  5. libiconv

    공식 홈페이지
    root@wl ~ # wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
    root@wl ~ # tar xvfz libiconv-1.13.1.tar.gz
    root@wl ~ # cd libiconv-1.13.1
    root@wl ~/libiconv-1.13.1 # ./configure --prefix=/usr/local
    root@wl ~/libiconv-1.13.1 # make
    root@wl ~/libiconv-1.13.1 # make install
    
  6. The XML C parser and toolkit of Gnome

    공식 홈페이지
    root@wl ~ # wget ftp://xmlsoft.org/libxml2/libxml2-2.7.7.tar.gz
    root@wl ~ # tar xvfz libxml2-2.7.7.tar.gz
    root@wl ~ # cd libxml2-2.7.7
    root@wl ~/libxml2-2.7.7 # ./configure \
      --prefix=/usr/local/xml \
      --with-zlib=/usr/local \
      --with-iconv=/usr/local
    root@wl ~/libxml2-2.7.7 # make
    root@wl ~/libxml2-2.7.7 # make install
    
  7. FreeType

    공식 홈페이지
    root@wl ~ # wget http://downloads.sourceforge.net/project/freetype/freetype2/2.3.12/freetype-2.3.12.tar.gz?use_mirror=cdnetworks-kr-1
    root@wl ~ # tar xvfz freetype-2.3.12.tar.gz
    root@wl ~ # cd freetype-2.3.12
    root@wl ~/freetype-2.3.12 # GNUMAKE="/usr/sfw/bin/gmake" ./configure
    root@wl ~/freetype-2.3.12 # /usr/sfw/bin/gmake
    root@wl ~/freetype-2.3.12 # /usr/sfw/bin/gmake install
    
  8. LibGD

    공식 홈페이지
    root@wl ~ # wget http://www.libgd.org/releases/gd-2.0.35.tar.bz2
    root@wl ~ # tar xvfj gd-2.0.35.tar.bz2
    root@wl ~ # cd gd-2.0.35
    root@wl ~/gd-2.0.35 # ./configure
    root@wl ~/gd-2.0.35 # make
    root@wl ~/gd-2.0.35 # make install
    

AMP 설치

  1. MySQL

    공식 홈페이지
    root@wl ~ # wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz/from/http://mirror.khlug.org/mysql/
    root@wl ~ # tar xvfz mysql-5.1.45.tar.gz
    root@wl ~ # cd mysql-5.1.45
    root@wl ~/mysql-5.1.45 # ./configure \
     --with-ssl=/usr/local/ssl \
     --prefix=/usr/local/mysql \
     --enable-thread-safe-client \
     --with-charset=utf8 \
     --with-extra-charsets=ucs2,euckr \
     --with-zlib-dir=/usr/local \
     CFLAGS="-I/usr/local/include -I/usr/local/ssl/include" \
     CXXFLAGS="-I/usr/local/include -I/usr/local/ssl/include"
    ...
    Thank you for choosing MySQL!
    root@wl ~/mysql-5.1.45 # make
    ...
    CC -DDBUG_OFF -D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__ -I/usr/local/include -D
    BIG_TABLES -DHAVE_RWLOCK_T -o mysqlmanager command.o mysqlmanager.o manager.o lo
    g.o thread_registry.o listener.o protocol.o mysql_connection.o user_map.o messag
    es.o commands.o instance.o instance_map.o instance_options.o buffer.o parse.o gu
    ardian.o parse_output.o  ./.libs/liboptions.a -lpthread -lthread -lpthread -lthr
    ead -lpthread -lthread -lpthread -lthread libnet.a ../../vio/libvio.a ../../mysy
    s/libmysys.a ../../strings/libmystrings.a ../../dbug/libdbug.a -lz -lpthread -lt
    hread -lposix4 -lgen -lsocket -lnsl -lm -lpthread -lthread
    root@wl ~/mysql-5.1.45 # make install
    ...
    Making install in instance-manager
    test -z "/usr/local/mysql/libexec" || /root/source/mysql-5.0.51b/install-sh -d "
    /usr/local/mysql/libexec"
      /bin/bash ../../libtool --preserve-dup-deps --mode=install ../.././install-sh 
    -c 'mysqlmanager' '/usr/local/mysql/libexec/mysqlmanager'
    ../.././install-sh -c mysqlmanager /usr/local/mysql/libexec/mysqlmanager
    root@wl ~/mysql-5.1.45 # 
    
  2. The Apache HTTP Server

    공식 홈페이지
    root@wl ~ # wget http://apache.tt.co.kr/httpd/httpd-2.2.15.tar.bz2
    root@wl ~ # tar xvfj httpd-2.2.15.tar.bz2
    root@wl ~ # cd httpd-2.2.15
    root@wl ~/httpd-2.2.15 # ./configure \
      --prefix=/usr/local/apache2 \
      --enable-so \
      --enable-auth-digest \
      --enable-authn-dbm \
      --enable-authn-dbd \
      --enable-authz-dbm \
      --enable-dav \
      --enable-dav-fs \
      --enable-dav-lock \
      --enable-deflate \
      --enable-headers \
      --enable-expires \
      --enable-dbd \
      --enable-dumpio \
      --enable-log-forensic \
      --enable-rewrite \
      --enable-cache \
      --enable-file-cache \
      --enable-disk-cache \
      --enable-mem-cache \
      --enable-unique-id \
      --enable-proxy \
      --enable-proxy-connect \
      --enable-proxy-ftp \
      --enable-proxy-http \
      --enable-proxy-ajp \
      --enable-proxy-balancer \
      --enable-ssl \
      --with-ssl=/usr/local/ssl \
      --with-mpm=worker
    root@wl ~/httpd-2.2.15 # make
    root@wl ~/httpd-2.2.15 # make install
    
    ※ PHP를 개발한 The PHP Group이나 APACHE를 개발한 The Apache Software Foundation에서는 mpm으로 worker나 perchild를 권장하지 않는다. 값을 지정하지 않는다면 기본값인 prefork을 사용한다.
  3. PHP Hypertext Preprocessor

    공식 홈페이지
    root@wl ~ # wget http://kr2.php.net/get/php-5.2.13.tar.gz/from/this/mirror
    root@wl ~ # tar xvfj php-5.2.13.tar.bz2
    root@wl ~ # cd php-5.2.13
    root@wl ~/php-5.2.13 # ./configure \
    	--prefix=/usr/local/php \
    	--with-apxs2=/usr/local/apache2/bin/apxs \
    	--with-mysql=/usr/local/mysql \
    	--with-mysqli=/usr/local/mysql/bin/mysql_config \
    	--with-pdo-mysql=/usr/local/mysql \
    	--with-iconv=/usr/local \
    	--with-libxml-dir=/usr/local/xml \
    	--enable-mbstring \
    	--enable-mbregex \
    	--with-gd \
    	--enable-sigchild \
    	--enable-gd-native-ttf \
    	--with-jpeg-dir=/usr/local \
    	--with-png-dir=/usr/local \
    	--with-zlib-dir=/usr/local \
    	--with-freetype-dir=/usr/local \
    	--enable-wddx \
    	--enable-sysvmsg \
    	--enable-sysvsem \
    	--enable-sysvshm \
    	--enable-sockets \
    	--enable-soap \
    	--enable-ftp \
    	--enable-safe-mode \
    	--enable-exif \
    	--enable-bcmath
    root@wl ~/php-5.2.13 # make
    root@wl ~/php-5.2.13 # make test
    TEST 1/3990 [...]
    ...
    # test스크립트의 오류로 실패하는 경우가 많으므로 실패한다고 해서 설치못하는건 아니다.
    root@wl ~/php-5.2.13 # make install
    root@wl ~/php-5.2.13 # cp php.ini-dist /usr/local/php/lib/php.ini
    

AMP 기본 설정

  1. PATH 설정

    root@wl ~ # vi /etc/profile
    # for Apache located at /usr/local/apache2
    if [ -d /usr/local/apache2 ]
    then
      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apache2/lib; export LD_LIBRARY_PATH
      PATH=$PATH:/usr/local/apache2/bin; export PATH;
    fi
    
    # for MySQL located at /usr/local/mysql
    if [ -d /usr/local/mysql/lib/mysql ]
    then
      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql; export LD_LIBRARY_PATH
      PATH=$PATH:/usr/local/mysql/bin; export PATH;
    fi
    root@wl ~ # . /etc/profile
    
  2. MySQL 설정

    root@wl ~ # useradd -d /export/home/mysql -g staff -m -u 102 -s /bin/false mysql 1)
    root@wl ~ # cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf 2)
    root@wl ~ # vi /etc/my.cnf 2)
    skip-networking
    #log-bin
    root@wl ~ # /usr/local/mysql/bin/mysql_install_db 3)
    root@wl ~ # chown -R mysql:staff /usr/local/mysql/var 4)
    root@wl ~ # /usr/local/mysql/share/mysql/mysql.server start 5)
    root@wl ~ # /usr/local/mysql/bin/mysqladmin -u root password 'new-password' 6)
    root@wl ~ # /usr/local/mysql/bin/mysqladmin -u root -h wl password 'new-password' 6)
    
    1) MySQL을 실행할 유닉스 계정을 생성한다.
    2) MySQL 설정 파일을 복사한 후 적당히 수정한다. /usr/local/mysql/share/mysql 에 my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf 의 예제 설정 파일이 있다. 이를 /etc/my.cnf 으로 이름을 바꿔 복사하면 된다. 리플리케이션을 사용하지 않는다면 [log-bin]을 찾아 주석처리하고 외부에서 접속이 없다면 [skip-networking]의 주석을 푼다.
    3) 기본 MySQL DB를 생성한다.
    4) 기본 MySQL DB는 /usr/local/mysql/var 에 생성되는데 이 디렉토리및 파일들의 소유자를 변경한다.
    5) MySQL 서버를 시작한다. 종료는 [/usr/local/mysql/share/mysql/mysql.server stop] 커맨드를 사용한다.
    6) MySQL의 root 패스워드를 변경한다. 기본값은 없기 때문에 반드시 수정해야 한다. [wl]부분은 MySQL이 설치된 호스트의 이름이다.
  3. PHP 설정

    root@wl ~ # vi /usr/local/php/lib/php.ini
    date.timezone = Asia/Seoul
    include_path = ".:/usr/local/php/lib/php"
    extension_dir = "/usr/local/php/lib/php/extensions"
    
    
  4. Apache 설정

    아파치 2.2.x로 오면서 기본 설정 방법이 다소 차이난다. 그리고 기본값도 다소 차이가 있다. 예를 들면 디렉토리 권한이 기본적으로 거부되어있다. 따라서 <Directory>지시자로 사용할 디렉토리에 대해 접근권한을 주어야 한다. (그나마 다행인것은 2.0.x와 설정 파일이 호환되기 때문에 기존것을 그대로 써도 되는것 같다) 기존에 httpd.conf파일 하나로 제공되던 기본 설정파일이 httpd.conf와 extra 디렉토리의 파일로 나누어 제공되며 각각의 파일을 include해서 사용하도록 하고 있다. include자체는 이전 버전부터 제공되어왔었지만, 그런 기능을 기본 제공된 httpd.conf에서 사용하는 것은 이번이 처음이 아닐까 한다.
    root@wl ~ # cd /usr/local/apache2/conf
    root@wl /usr/local/apache2/conf # vi httpd.conf
    User nobody 1)
    Group nobody 1)
    
    # AddDefaultCharset ISO-8859-1 2)
    
    # Dynamic Shared Object (DSO) Support
    AddType application/x-httpd-php	.php 3)
    AddType application/x-httpd-php-source	.phps 3)
    
    ServerName xxx.solanara.com:80 4)
    
    Include conf/extra/httpd-mpm.conf 5)
    Include conf/extra/httpd-multilang-errordoc.conf
    Include conf/extra/httpd-autoindex.conf
    Include conf/extra/httpd-languages.conf
    Include conf/extra/httpd-userdir.conf
    Include conf/extra/httpd-info.conf
    Include conf/extra/httpd-vhosts.conf
    Include conf/extra/httpd-manual.conf
    Include conf/extra/httpd-dav.conf
    Include conf/extra/httpd-default.conf
    Include conf/extra/httpd-ssl.conf
    
    root@wl ~ # /usr/local/apache2/bin/apachectl start
    
    1) 아파치 2.2.x에서는 daemon 계정을 사용하도록 되어있다. 이를 nobody를 사용하도록 변경한다.
    2) [AddDefaultCharset ISO-8859-1] 부분이 있다면 주석처리 한다. (2.2.0에는 없다)
    3) PHP사용을 위해 AddType부분의 두라인을 추가한다. [LoadModule php5_module modules/libphp5.so]도 필요하지만, 이 설정은 php에서 make install 시 이미 추가되어있을 것이다.
    4) ServerName을 정해준다. 정하지 않아도 되지만 아파치 시작시 [httpd: Could not determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx for ServerName]와 같은 메시지가 나올 수 있다. 만약 도메인이 없다면 IP를 입력해준다. 예) [ServerName 192.168.0.1]
    5) 각종 삽입 파일 지시자의 주석을 풀어 사용 하도록 한다. 기본값을 그대로 사용하겠다면 풀지 않아도 된다.
  5. PHP 테스트

    root@wl ~ # vi /usr/local/apache2/htdocs/index.php
    <?
      phpinfo();
    ?>
    root@wl ~ #
    
    이후 http://localhost/index.php 에서 php정보가 제대로 나오는지 확인한다. 아래와 비슷하게 나와야 한다. 확인되었으면 index.php파일을 지운다. (보안때문)
    PHP정보
    root@wl ~ # rm /usr/local/apache2/htdocs/index.php
    
Twitter RSS IconTexto 올바른 XHTML 1.0 Transitional 입니다 올바른 CSS입니다!