Solaris

Apache PHP MySQL

알 수 없는 사용자 2008. 2. 24.
728x90

윈디하나의 솔라나라: APM

Apache PHP MySQL

설치할 APM 버전

  • Apache 2.2.6
  • PHP 5.2.5
  • MySQL 5.0.51

들어가기 전에

1. 설치 전에

  • APM과 관련해 설치 전에 해야할 것은 없다.

2. APM 설치

  1. readline: readline-5.2.tar.gz
    root@wl ~ # gtar xvfz readline-5.2.tar.gz
    root@wl ~ # cd readline-5.2
    root@wl ~/readline-5.2 # ./configure --enable-multibyte
    root@wl ~/readline-5.2 # make
    root@wl ~/readline-5.2 # make install
    
  2. http://www.mysql.com: mysql-5.0.51.tar.gz
    root@wl ~ # gtar xvfz mysql-5.0.51.tar.gz
    root@wl ~ # cd mysql-5.0.51
    root@wl ~/mysql-5.0.51 # ./configure \
     --without-readline --prefix=/usr/local/mysql \
     --enable-thread-safe-client \
     --with-charset=euckr \
     --with-extra-charsets=ucs2,utf8,cp932,eucjpms \
     CFLAGS="-D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__ -I/usr/local/include" \
     CXXFLAGS="-D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__ -I/usr/local/include"
    root@wl ~/mysql-5.0.51 # make
    root@wl ~/mysql-5.0.51 # make install
    
  3. http://www.apache.org: httpd-2.2.6.tar.gz
    root@wl ~ # gtar xvfz httpd-2.2.6.tar.gz
    root@wl ~ # cd httpd-2.2.6
    root@wl ~/httpd-2.2.6 # ./configure \
     --prefix=/usr/local/apache2 \
     --enable-so \
     --enable-dav \
     --enable-dav-fs \
     --enable-nonportable-atomics=yes \
     --disable-ipv6 \ 1)
     --with-mpm=worker # PHP가 비정상적인 동작을 보인다면 이부분을 삭제한다.2) worker외에 --with-mpm=perchild 도 쓸만하다.
    root@wl ~/httpd-2.2.6 # make
    root@wl ~/httpd-2.2.6 # make install
    
    1) IPv6를 사용하지 않는다면 이 옵션을 주는것이 좋다. 에러로그에 [warn] (128)Network is unreachable: connect to listener 이라는 메시지를 없앨 수 있다.
    2) PHP를 개발한 The PHP Group이나 APACHE를 개발한 The Apache Software Foundation에서는 mpm으로 worker나 perchild를 권장하지 않는다. 값을 지정하지 않는다면 기본값인 prefork을 사용한다.
  4. http://www.xmlsoft.org: libxml2-2.6.30.tar.gz
    root@wl ~ # gtar xvfz libxml2-2.6.30.tar.gz
    root@wl ~ # cd libxml2-2.6.30
    root@wl ~/libxml2-2.6.30 # ./configure --prefix=/usr/local/xml
    root@wl ~/libxml2-2.6.30 # make
    root@wl ~/libxml2-2.6.30 # make install
    
  5. http://www.php.net: php-5.2.5.tar.gz
    root@wl ~ # gtar xvfz php-5.2.5.tar.gz
    root@wl ~ # cd php-5.2.5
    root@wl ~/php-5.2.5 # ./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 \ # MySQL 4.1.2 이상 필요
     --with-iconv \
     --with-libxml-dir=/usr/local/xml \
     --enable-modules=so \
     --enable-mbstring \
     --enable-mbregex \
     --enable-dbase \
     --with-gd \
     --enable-gd-native-ttf \
     --with-jpeg-dir=/usr/sfw \
     --with-png-dir=/usr/sfw \
     --with-zlib-dir=/usr/local
    root@wl ~/php-5.2.5 # make
    root@wl ~/php-5.2.5 # make install
    root@wl ~/php-5.2.5 # cp php.ini-dist /usr/local/php/lib/php.ini
    
    # 여기까지 하면 설치는 끝난다. 아래는 Zend Optimizer를 설치하는 과정이다.
    root@wl ~ # gtar xvfz ZendOptimizer-3.3.0a-sunos5.9-i386.tar.gz
    root@wl ~ # cd ZendOptimizer-3.3.0a-sunos5.9-i386
    root@wl ~/ZendOptimizer-3.3.0a-sunos5.9-i386 # ./install 1)
    
    1)
    - php.ini파일은 /usr/local/php/lib 디렉토리에 있다.
    - Apache Control Utility는 /usr/local/apache2/bin/apachectl 에 있다.
    - 설치가 완료되면 /usr/local/php/lib/php.ini가 /usr/local/Zend/etc/php.ini파일로 심볼릭 링크된다.
    - 원래의 php.ini은 /usr/local/php/lib/php.ini-zend_optimizer.bak 에 있다.
    - php.ini만 이전것으로 복구하면 자연스럽게 Zend Optimizer를 언인스톨 할 수 있다.
    - Zend Optimizer는 http://www.zend.com에서 무료 회원 가입후 무료로 받을 수 있다.
    - Zend Optimizer는 필수사항이 아니다. Zend Encoder로 인코딩된 php 소스를 실행할 수 있으며, php를 좀 더 빨리 실행시켜준다고 알려져 있으며, Solaris Sparc이나 리눅스에서는 큰 효과가 있지만, Solaris x86에서는 그리 큰 효과가 없는듯 하다. (성능향상이 되는지도 잘 모르겠다 ^^ 스팍에서 설치할땐 쉽게 느낄 수 있을정도의 성능향상이 있었다)

3. APM 설정(기본적인것만)

  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
    
  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. 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부분의 두라인을 추가한다.
    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) 각종 삽입 파일 지시자의 주석을 풀어 사용 하도록 한다. 기본값을 그대로 사용하겠다면 풀지 않아도 된다.
  4. PHP 테스트
    root@wl ~ # vi /usr/local/apache2/htdocs/index.php
    <?
      phpinfo();
    ?>
    root@wl ~ #
    
    이후 http://localhost/index.php 에서 php정보가 제대로 나오는지 확인한다. 아래와 비슷하게 나와야 한다. 확인되었으면 index.php파일을 지운다. (보안때문)

    root@wl ~ # rm /usr/local/apache2/htdocs/index.php
    

    여기까지 되면 설치는 완료되었다.
phpMyVisites
728x90

댓글