설치할 APM 버전

  • Apache 2.0.55
  • PHP 5.0.5
  • MySQL 4.1.13a

들어가기 전에

1. 설치 전에

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

2. APM 설치

  1. http://www.mysql.com: mysql-4.1.14.tar.gz
    root@wl ~ # gtar xvfz mysql-4.1.14.tar.gz
    root@wl ~ # cd mysql-4.1.14
    root@wl ~/mysql-4.1.14 # CC=gcc CFLAGS="-O2 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -fomit-frame-pointer -DHAVE_CURSES_H" \
     CXX=gcc CXXFLAGS="-O2 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti -DHAVE_CURSES_H" \
     ./configure \
     --prefix=/usr/local/mysql \
     --enable-thread-safe-client \
     --with-charset=euckr # MySQL 4.1.x부터 euc_kr이 아닌 euckr로 변경되었다.
    root@wl ~/mysql-4.1.14 # make
    root@wl ~/mysql-4.1.14 # make install
    
  2. http://www.apache.org: httpd-2.0.55.tar.gz
    root@wl ~ # gtar xvfz httpd-2.0.55.tar.gz
    root@wl ~ # cd httpd-2.0.55
    root@wl ~/httpd-2.0.55 # ./configure \
     --prefix=/usr/local/apache2 \
     --enable-so \
     --enable-dav \
     --enable-dav-fs \
     --disable-ipv6 \ # IPv6를 사용하지 않는다면 이 옵션을 주는것이 좋다.1)
     --with-mpm=worker # PHP가 비정상적인 동작을 보인다면 이부분을 삭제한다.2) worker외에 --with-mpm=perchild 도 쓸만하다.
    root@wl ~/httpd-2.0.55 # make
    root@wl ~/httpd-2.0.55 # make install
    
    1) 에러로그에 [warn] (128)Network is unreachable: connect to listener 이라는 메시지를 없앨 수 있다.
    2) PHP를 개발한 The PHP Group이나 APACHE 개발한 The Apache Software Foundation에서는 mpm으로써 worker나 perchild를 권장하지 않는다. 값을 지정하지 않는다면 기본값인 prefork을 사용한다.
  3. http://www.xmlsoft.org: libxml2-2.6.20.tar.gz
    root@wl ~ # gtar xvfz libxml2-2.6.20.tar.gz
    root@wl ~ # cd libxml2-2.6.20
    root@wl ~/libxml2-2.6.20 # ./configure --prefix=/usr/local/xml
    root@wl ~/libxml2-2.6.20 # make
    root@wl ~/libxml2-2.6.20 # make install
    
  4. http://www.php.net: php-5.0.5.tar.gz
    root@wl ~ # gtar xvfz php-5.0.5.tar.gz
    root@wl ~ # cd php-5.0.5
    root@wl ~/php-5.0.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 \
     --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.0.5 # make
    root@wl ~/php-5.0.5 # make install
    root@wl ~/php-5.0.5 # cp php.ini-dist /usr/local/php/lib/php.ini
    
    # 여기까지 하면 설치는 끝난다. 아래는 Zend Optimizer를 설치하는 과정이다.
    root@wl ~ # gtar xvfz ZendOptimizer-2.5.10a-sunos5.9-i386.tar.gz
    root@wl ~ # cd ZendOptimizer-2.5.10a-sunos5.9-i386
    root@wl ~/ZendOptimizer-2.5.10a-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 ~ # /usr/local/mysql/bin/mysql_install_db 2)
    root@wl ~ # chown -R mysql:staff /usr/local/mysql/var 3)
    root@wl ~ # cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf 4)
    root@wl ~ # vi /etc/my.cnf 4)
    skip-networking
    #log-bin
    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 DB를 생성한다.
    3) 기본 MySQL DB는 /usr/local/mysql/var 에 생성되는데 이 디렉토리및 파일들의 소유자를 변경한다.
    4) 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]의 주석을 푼다.
    5) MySQL 서버를 시작한다. 종료는 [/usr/local/mysql/share/mysql/mysql.server stop] 커맨드를 사용한다.
    6) MySQL의 root 패스워드를 변경한다. 기본값은 없기 때문에 반드시 수정해야 한다. [wl]부분은 MySQL이 설치된 호스트의 이름이다.
  3. Apache 설정
    root@wl ~ # vi /usr/local/apache2/conf/httpd.conf
    Group nobody 1)
    # AddDefaultCharset ISO-8859-1 2)
    AddType application/x-httpd-php	.php 3)
    AddType application/x-httpd-php-source	.phps 3)
    ServerName xxx.solanara.com:80 4)
    root@wl ~ # /usr/local/apache2/bin/apachectl start
    
    1) [Group #-1]을 찾아 [Group nobody]로 수정한다.
    2) [AddDefaultCharset ISO-8859-1] 부분이 있다면 주석처리 한다. (없을수도 있다)
    3) 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]
  4. PHP 설정
    root@wl ~ # vi /usr/local/apache2/htdocs/index.php
    <?
      phpinfo();
    ?>
    root@wl ~ #
    
    이후 http://localhost/index.php에서 php정보가 제대로 나오는지 확인한다. 아래와 비슷하게 나와야 한다. 확인되었으면 index.php파일을 지운다. (보안때문)
    phpinfo

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

    여기까지 되면 설치는 완료되었다.  
저작자 표시 비영리
Posted by 티엘로

레드햇9.0 웹서버를 운영하다 급작스런 패키지 의존성 문제로 몇번 말아먹어본적이 있어 대중성 보다는  패키징 관리가 쉬운 Debian 계열의  우분투 리눅스에서 APM(Apache+Php+MySQL)을 설치해 보았습니다.

이 글은 컴파일해서 쓰는게 아니라 패키지 자체설치로 초보자도 간단하게 설치해볼수 있습니다

APM이란 리눅스에서 웹서버를 구성할때 많이 쓰는 프로그램의 일반적인 통합명칭입니다.

부르기 쉽게 한데로 모아서 APM이라고 부릅니다. 요즘은 LAMP(Linux + Apache + MySQL + Php/Perl,Python)환경 이라고도 부르기도 합니다.

아파치(Apache)는 웹서버 자체로서 일반적인 프로토콜인 Http프로토콜을 사용합니다. 또한 Https,ftp등도 지원을 하게 됩니다.

MySQL은 데이터베이스 엔진으로서 각종 게시판이나 데이터베이스를 사용해야할때 많이 쓰이는 프로그램입니다. MySQL뿐만 아니라 PostgresSQL도 사용이 가능합니다.

PHP는 스크립트언어로서 웹페이지를 구성할수 있는 언어중 하나입니다. 많은 웹 프로그램들이 php로 작성 되고 있습니다.

 

일반적으로 설치순서는 Apache -> MySQL -> PHP 등으로 이루어 지게 됩니다.

 

1) 설치

1.Apache

먼저 Apache를 설치하여 보겠습니다. 버전은 apache2버전을 기준으로 하겠습니다.

터미널을 열고 다음 명령을 입력합니다.

sudo apt-get install apache2

다음으로 mysql을 인증을 위한 모듈을 설치하겠습니다.

sudo apt-get install libapache2-mod-auth-mysql


다음으로 MySQL

sudo apt-get install mysql-server mysql-client

설치가 완료되면 MySQL서버가 자동으로 시작이 됩니다.

마지막으로 PHP 버전은 PHP5 기준으로 하겠습니다.

마찬가지로 터미널에서 다음을 입력합니다.

sudo apt-get install php5-common php5 libapache2-mod-php5

MySQL과 연동하기 위한 모듈을 설치합니다.

sudo apt-get install php5-mysql

 

이상으로 설치가 완료 되었습니다.

 

아파치 웹서버를 제 시작하겠습니다.

sudo /etc/init.d/apache2 restart

 

MySQL서버도 정상적으로 작동하는지 확인해 보고 작동을 안한다면 restart 를 해줍니다.

sudo netstat -tap | grep mysql

명령을 줬을때

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

와 비슷한 것을 보면 정상이고 그렇지 않다면

sudo /etc/init.d/mysql restart

로 재시작을 해줍니다.

 

모든게 정상이라면

에디터를 열고 웹서버의 디렉토리(일반적으로 "/var/www" 에서 phpinfo.php라는 파일을 만들고 다음의 소스코드를 넣어 줍니다.

1.      <?php

2.      print_r(phpinfo());

3.      ?>

그리고 웹브라우저를 열고 실행을 시켜봅니다.

일반적으로 http://호스트주소/phpinfo.php 로 주소를 열면 됩니다.

다음과 같은 화면이 나오면 웹서버를 위한 환경이 구성이 되었습니다.

스크롤을 내려 Apache MySQL 등을 찾아 제대로 연결이 되었는지 확인해 봅니다.

각종 사항은 설정마다 다르게 나올것입니다.


2) 설정

1. 아파치

아파치의 기본설정 파일은 /etc/apache2/apache2.conf

포트번호, 문서의루트, 모듈, 각종 로그파일, 가상 호스트 등을 설정할수 있습니다.

자세한 사항은 아파치 문서를 참조하시기 바랍니다.


2.  MySQL

mysql 의 관리자 암호는 처음에는 지정이 되지 않은 상태입니다.

관리자 암호를 설정하기 위해서는

sudo mysqladmin -u root password newrootsqlpassword

sudo mysqladmin -p -u root -h localohost password newrootpassword

을 입력합니다.

첫번째 줄만 실행해도 설정은 될것입니다.

MySQL 설정파일은 /etc/mysql/my.cnf 파일이고 로그 파일, 포트 번호등을 설정할수 있습니다.

참고 : http://mysql.com
         http://apache.org
         http://php.net


-설치 후-

Debian 계열의 배포판, 그중 우분투 리눅스는 패키징 관리가 용의하며, 각종 드라이브, 로컬 라이징, 간단한 명령어를 통한 업데이트 까지 데스크탑 리눅스를 모토로한 우분투는 GUI 환경까지 편의성 만큼은 Redhat 보다 좋은거 같습니다.

웹 서버로는 처음 구축해 보았지만, 현재 노트북의 OS 사용 하는것도 Ubuntu 이며 virtual box 사용으로 윈도우까지 wine 으로 IE6.0 까지 사용하며 불편을 못느끼고 있습니다.

Redhat 이나 Fedora 계열로 웹서버를 운영하시던 분들도 포스팅을 보시고 간단하게 가볍게 우분투를 한번 사용해 보시기 바랍니다.

단점들은 파악되는대로 포스팅을 통해 다시 공개하도록 하겠습니다.


저작자 표시 비영리
Posted by 티엘로