설치할 APM 버전
- Apache 2.0.55
- PHP 5.0.5
- MySQL 4.1.13a
들어가기 전에
- 최종 갱신일: 2005-10-17
- 이 문서는 http://www.solanara.net/ 에서 최신버전을 구할 수 있다.
1. 설치 전에
- APM과 관련해 설치 전에 해야할 것은 없다.
2. APM 설치
- 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
- 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을 사용한다. - 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
- 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 설정(기본적인것만)
- 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
- 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이 설치된 호스트의 이름이다. - 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] - 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
여기까지 되면 설치는 완료되었다.