강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

설치 후 기본 셋팅 및 A.P.M Setup

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문


||| 2. 설치 후 기본 셋팅 및 A.P.M Setup (컴파일 방식) |||
 

재성이의 두번째 강좌는 OS 설치후 기본적인 셋팅과 웹서비스를 하기 위해 APM (Apache, PHP, MySQL) 을 컴파일해서 설치해봅니다. rpm 설치는 누구나 쉽게 설치가능하지만 apmsetup을 컴파일하여 설치하는것은 문서나 동작원리, 설정파일을 모르면 할수가없으므로 이 강좌가 그럴때 필요한 문서가 되기를 바랍니다.
 
01_pingtest.jpg
이전 강좌에서 우리는 CentOS4.2 Final 버전을 GCC 를 포함하여 최소패키지로 설치하였습니다. 설치 후 APM을 설치를 위한 몇가지 라이브러리를 먼저 설치하고 본격적으로 APM 컴파일하여 설치 하겠습니다.
위 화면처럼 외부로의 네트워크가 되는지 테스트 합니다. 이제 APM 패키지를 다운받아 컴파이하며 설치할텐데 네트워크부터 안되면 테스트 할 수 없습니다. 먼전 통신이 되는지 체크하시길 바랍니다.

APM을 설치하기전에 설치 할 5가지 라이브러리란?
zlib : 가장 보편적으로 사용하는 데이타 압축 라이브러리
libpng : png포멧의 이미지파일을 사용하기 위한 포터블 네트워크 그래픽 라이브러리
freetype : 텍스트의 이미지출력등을 하기 위한 공개 포트엔진
jpeg : JEPG 압축/압축해제 라이브러리 소프트웨어
gd : 동적이미지 생성 ANSI C라이브러리 (ImageMagic 같은)

03_rdate.jpg
서버는 시간 동기화가 좀 중요합니다. 심지어 설치시 오류가 서버가 시간이 안맞아서 생기는 경우도 보았기때문입니다. 설치하기전 시간 동기화부터 한판 합니다.

=========================================================================
date
rdate -s time.bora.net
date
=========================================================================
현제 서버가 알고있는 시간보기
time.bora.net에서 현재시간을 가지고와서 맞춤
다시한번 확인해봄
04_zlib.jpg
먼저 위 이미지는 zlib 설치
=========================================================================
cd /usr/local
wget http://rhapsody.gnux.co.kr/download/linux/APM/etc/zlib-1.2.1.tar.gz
tar xvfz zlib-1.2.1.tar.gz
cd zlib-1.2.1
./configure
make && make install
cd ..
rm -rf zlib-1*
=========================================================================
컴파일설치시는 기본경로 /usr/local (의례적으로 이위치에 설치함)
위와같이 zlib-1.2.1.tar.gz 를 다운받아 압축을 풀고 푼 디렉토리안이서
./confgure 및 make 후 make install 합니다.
05_libpng.jpg
위 이미지는 libpng 설치 마지막 화면
=========================================================================
cd /usr/local
wget http://rhapsody.gnux.co.kr/download/linux/APM/etc/libpng-1.2.7.tar.gz
tar xvfpz libpng-1.2.7.tar.gz
cd /usr/local/libpng-1.2.7
cp scripts/makefile.linux makefile
make test && make install
cd ..
rm -rf libpng*
=========================================================================
여기서는 configure 와 같은 기능이라고 보면되는 makefile.linux makefile 를 해줍니다.
06_freetype.jpg
위 이미지는 freetype 설치 마지막 화면
=========================================================================
cd /usr/local
wget http://rhapsody.gnux.co.kr/download/linux/APM/etc/freetype-2.1.9.tar.gz
tar xvfz freetype-2.1.9.tar.gz
cd freetype-2.1.9
./configure && make && make install
cd ..
rm -rf freetype-2.1.9*
=========================================================================
이미지출력시 커스트마이징이 쉬운 폰트라이브러리
07_libjpegv6b.jpg
위 이미지는 libjpeg v6b 설치 마지막 화면
=========================================================================
cd /usr/local
wget http://rhapsody.gnux.co.kr/download/linux/APM/etc/jpegsrc.v6b.tar.gz
tar xvfz jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --enable-shared --enable-static
make && make test
mkdir /usr/local/man/man1
make install
cd ..
rm -rf jpeg*
=========================================================================
jpeg이미지 처리를 위한 소프트웨어 역시 방식은 같습니다.
08_gd.jpg
위 이미지는 gd 설치 마지막 화면
=========================================================================
cd /usr/local
wget http://rhapsody.gnux.co.kr/download/linux/APM/etc/gd-2.0.28.tar.gz
tar xvfz gd-2.0.28.tar.gz
cd gd-2.0.28
./configure && make && make install
cd ..
rm -rf gd-2.0.28*
=========================================================================
동적이미지 생성 ANSI C라이브러리로서 PNG,JPEG, GIF의 포멧으로된이미지들을 생성할수있는 아주 유용한 툴입니다. 어녀석을 막지막에 설치하는것은 이것을 설치하기 위해 위의 4가지가 설치되어 있어야 하기때문입니다. 역시 해당위치에 압축을 풀고 configure 와 make && make install 해주면 됩니다.
09_result.jpg
5가지 라이브러리를 간단히 설치를 하였습니다.
위 이미지처럼 /usr/local/bin 에 가보면 설치가 되었다는 것을 알 수 있습니다. 참고로 OS설치후 /usr/local/ 이하의 전 디렉토리에 아무파일이 없습니다. 만약 설치에 자신이 없고 다시 해보고 싶으신분은 설치 이전에 /usr/local/ 을 통으로 압축해 놓고(tar cvfpz local.tar.gz /usr/local) 다시 처음부터 하고싶을때 /usr/local/ 을 다 지우고 압축을 다시 풀면 처음상태로 돌아가게 됩니다. 비단 여기만 적용되는 것이 아니라 잘 모르는 작업을 할때는 안전하게 이런방식으로 하는것도 좋은 팁이라고 할수있겠습니다. 더욱더 강력한 팁은 나중에 APM,Zend,proftpe까지 다 설치를하고 /usr/local을 압축하여 시스템을 재설치하고 이 앞축파일을 풀면 apm 설치시간이 압축푸는 시간정도로 걸리겠지요 하지만 요거는 좀 숙달된 뒤에 하시면 좋습니다. 설치를 몇번하다보면 mysql같은경우 mysql 계정을 만들게 됩니다. 이런거는 /usr/local 안에있는 파일이 아닌 /etc/passwd 에 정보가 저장되기때문에 이러한 약간의 설정들을 맞추어 주어야 합니다. 이번강좌에서는 이렇게도 할수있구나하고 넘어가시면 됩니다. 이제 APM 을 본격적으로 설치 해보겠습니다.
10_mysql.jpg
APM Setting : mysql - apache - php (DSO방식순으로 설치.)

위 이미지는 mysql 설치 마지막 화면
==설치===================================================================
cd /usr/local
wget http://ftp.suidc.com/pub/mysql/mysql-4.0.24.tar.gz
tar xvfz mysql-4.0.24.tar.gz
cd mysql-4.0.24

./configure
--prefix=/usr/local/mysql
--localstatedir=/usr/local/mysql/data
--disable-shared
--enable-assembler
--with-thread-safe-client
--with-mysqld-user="mysql"
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--with-readline
--without-debug
--without-docs
--without-bench
--with-charset=euc_kr

make -j 4 && make install

=========================================================================
MySQL도 여려울것이 없습니다. 해당위치에서 다운받아 위와같이 그대로 실행하면되고
다만 주의할것은 configure 의 옵션부분은 위에서 사용한것보다 훨씬 많으므로 이부분은
책이나 관련문서를 참고하기 바랍니다. 그리고 여기서 오류가 가장 많이 나는 부분이
--with-charset=euc_kr라는 마지막 옵션항목에서 MySQL 버전이 4.1.0이상에서는 euckr
이라고 해야 컴파일 오류가 나지 않습니다.
11_mysql2.jpg
위 이미지는 mysql 설치를 마치고 구동되도록 셋팅하는 화면

== MySQL 셋팅 ===========================================================
/usr/local/mysql/bin/mysql_install_db
useradd -M mysql
chown -R mysql:mysql /usr/local/mysql/data

ln -s /usr/local/mysql/bin/mysql /usr/bin/
ln -s /usr/local/mysql/bin/mysqldump /usr/bin/

/usr/local/mysql/bin/mysqld_safe
/usr/local/mysql/bin/mysqladmin -u root password 1234

cd ..
rm -rf mysql-4.0.24.tar.gz
=========================================================================
/usr/local/mysql/bin/mysql_install_db : /usr/local/mysql/data 라는 실제 디비가정보파일들이 저장되는 디렉토리가 생성되고 그 안에 test라는 데이터베이스를 생성합니다.
다음줄은 mysql을 디렉토리를 만들지않고 계정을 만들고 /usr/local/mysql/data 이하 모든 경로에 소유권을 mysql로 바꿉니다.root로 실행되는것이아니라 시스템 계정인 mysql이라는 계정으로 실행되는것입니다. 이거는 나중에 디비이전이나 rsync로 데이타를 이전했을때 소유권이 달리 작업에 어려움을 격는 관리자가 더러 많이 있기때문에 언급하고 넘어갑니다.
마지막에보면 /usr/local/mysql/bin/mysqld_safe & 가 백그라운드로 실행하는 명령어 임을 볼수있습니다.
마지막으로 루트 패스워드 부여하면 끝
12_apache.jpg
위 이미지는 APACHE 설치 마지막 화면

==설치===================================================================
cd /usr/local

wget http://ftp.suidc.com/pub/apache/httpd-2.0.54.tar.gz
tar xvfpz httpd-2.0.54.tar.gz
cd httpd-2.0.54

# MaxClient values Change
# apache version 2 :
vi server/mpm/prefork/prefork.c ---> define DEFAULT_SERVER_LIMIT 256 -> 1280
vi server/mpm/worker/worker.c ---> define DEFAULT_SERVER_LIMIT 16 -> 20

./configure
--prefix=/usr/local/apache
--enable-module=so

make -j 4 && make install

cd ..
rm -rf httpd-2.0.54.tar.gz


apache 역시 파일받고 압축풀고 컴파일하기전에 apache버전 2.0 이상은 위와같이 변경후 컴파일합니다. 안해도 상관없습니다. 튜닝차원에서 하는 것으로 기본적인 서버 접속 최대 수를 정하는 것입니다. 설치의 목적으로 하는 지금은 그냥 아하고 바로 컴파일해도 됩니다.
make -j 4 는 생소할텐데 듀얼 CPU일때 좀더 빨르게 컴파이하기 위해 붙이는 옵션이라고 생각하시면 됩니다.

==httpd.conf 설정========================================================
vi /usr/local/apache/conf/httpd.conf

AddDefaultCharset EUC-KR


DirectoryIndex index.html index.htm index.php index.php3 index.cgi index.jsp

AddType application/x-tar .tgz
AddType application/x-httpd-php .php4 .php3 .php .htm .html .phtml .ph .inc
AddType application/x-httpd-php-source .phps

UserDir www , html, public_html

=========================================================================

httpd.conf파일에서 몇가지 셋티을 하고 넘어가야합니다. 간단한것으로
일단 언어셋은 넘어가셔도 되고 Directory 부분에서 index.html ~~ 쭉 적혀있는데 여기에 적힌 파일들의 의미는 웹에서 접근이 되었을때 이런파일들을 첫 페이지 파일로 사용하겠다라는 뜻입니다. 고로 임의로 바꾸어도 됩니다만 의례적으로 index.html, index.htm, index.php 등으로 대부분 다 사용하므로 위 셋팅대로 하시면 됩니다.
다음 셋팅은 기본타입 외 저러한 다음들을 더 사용할것이다라는 뜻이고 마지막으로 UserDir 부분은 계정을 만들었을때 그 계정 아래의 디렉토리 계정생성자의 입장에서 보았을때 최상위 디렉토리 명이 됩니다. 위와같이 설정했다면 다음과 같이 디렉토리를 만들어야 겠습니다.
만약 test라는 계정을 만든다면
# useradd test
# passwd test 해서 패스워드 만들어주고
# cd /home : 사용자추가시 자동 생성되는 장소
# su test : 현제 root 권한이므로 개개인의 계정에서 만들어줄때는 가급적 그 계정으로 바꾸고 함
# mkdir public_html : 위에서 말한 계정생성자 입장에서본 최상의 디렉토리를 htpd.conf에서 정의한 디렉토리명을로 만들고 이안에 index.html을 만든후 웹에서 접근하면 웹에서는 결국 최상위의 경로지만 실제 서버에서는 /home/test/public_html/이라는 계념이 되는것입니다.
13_phpconfigure.jpg
위 이미지는 PHP 설치시 configure까지한 화면

==PHP 설치 1/2 ==========================================================
cd /usr/local

php_version=4.4.1

apxs_value=apxs #apache's version 1
apxs_value=apxs2 #apache's version 2

cd /usr/local
wget http://ftp.suidc.com/pub/php/php-4.4.1.tar.gz
tar xvfz php-4.4.1.tar.gz
cd php-4.4.1

./configure
--with-apxs2_value=/usr/local/apache/bin/apxs
--with-zlib --with-gd --with-ttf --with-png
--with-expat-dir=/usr --with-gmp --with-xml
--with-language=korean --with-charset=euc_kr
--disable-debug --disable-rpath --with-iconv
--enable-safe-mode --enable-magic-quotes
--disable-dmalloc --enable-bcmath
--enable-dio --enable-gd-native-ttf
--enable-sysvsem --enable-sysvshm
--enable-wddx --enable-versioning
--enable-pic --enable-inline-optimization
--enable-memory-limit --enable-mbstring
--enable-mbregex --enable-mbstr-enc-trans
--with-config-file- --enable-ftp --disable-debug --enable-track-vars=yes
--with-jpeg-dir
--with-freetype-dir
--enable-gd-native-ttf --enable-dl
--enable-gd-imgstrttf --enable-exif
--with-mysql=/usr/local/mysql
=========================================================================
14_php.jpg
위 이미지는 PHP 설치 마지막 화면
==PHP 설치 2/2 ==========================================================
make -j 4 && make install

cp php.ini-dist /usr/local/lib/php.ini
vi +/"register_globals =" /usr/local/lib/php.ini
register_globals=On

cd ..
rm -rf php-4.4.1.tar.gz
=========================================================================
PHP설치도 어렵지 않습니다. 위와같이 파일을 받아 쭉 압축풀어주고 단지 조심할것이 아피치 2이상을 설치했으면 옵션중에 첫번째 줄에있는 apxs2라고 적어주는것만 거억하시면 됩니다. 저방법을 몰라서 apxs라고 했다가 몇시간 삽질한 기억이 납니다.그리고 언어부분도 약간 신경써야 합니다. 같은 버전을 깔아도 언어셋이다르면 나중에 피곤해 지게 됩니다.
15_zendstart.jpg
위 이미지는 Zend 설치 시작화면 화면
=========================================================================
cd /usr/local

wget http://ftp.suidc.com/pub/ZendOptimizer/ZendOptimizer-2.6.2-linux-glibc21-i386.tar.gz
tar xvfz ZendOptimizer-2.6.2-linux-glibc21-i386.tar.gz
cd ZendOptimizer-2.6.2-linux-glibc21-i386
./install.sh

설치방법은 위의 화면이 보이면 끝날때 까지 Enter 만 치시면 됩니다.
그러나 그냥 넘어가지마시고 메세지들을 한번 읽어보고 넘어가시길 바랍니다.

cd ..
rm -rf ZendOptimizer-2.6.2-linux-glibc21-i386*
=========================================================================
16_autostart.jpg
위 이미지는 APM을 모두 설치하고 리부팅시 자동으로 구동되도록 설정하는 화면
=========================================================================
vi /etc/rc.d/rc.local

/usr/local/apache/bin/apachectl start
/usr/local/mysql/bin/mysqld_safe &
위 두줄을 추가한다.
=========================================================================
17_apmsetupend.jpg
이번강좌의 최종 목표인 phpinfo()를 띄운화면입니다.
위 과정대로 잘 했으면 아까 아파치를 설치하고 테스트하기위해 index.html을 우리는 만들었습니다. 이 화면에서 지금까지설치한 내용이 요약되어 있으니 한 번 쭉 읽어보고 이번 강좌 실습을 마치시면 됩니다. 저화면을 보기위해서는 다름과 같은 위치에 파일을 만들어야 합니다.

/usr/local/apache/htdocs 이 경로가 아파치 웹서버의 기본 홈디렉토리가 됩니다.
여기에 index.html을 만들어서 그안에 phpinfo 함수와 (물론 php문법으로) 기타 텍스트 를 적어서 os 설치할때 아이피로 접근해 보시길 바랍니다. 유동아이피라면 외부에서는 접속이 안되니 로컬에서만 확인 가능합니다.

OS만 겨우 설치하던때는 이러한 내용들이 너무 어렵게만 느껴지고 시간도 많이 걸린다고 생각했지만 여러번해보면 아무생각없이 술술 할수있는 날이 옴을 느꼈습니다. 여러분도 많은 실습으로 나만의 스크립트를 만들어 보시길 바랍니다.
위의 스크립트는 버전이 고정되어있지만 버전이 크게 달라지면 설치방법도 달라집니다. 그럴때는 변수를 사용해서 문서를 바꾸지않고 계속 가지고 갈수있으니 이런점도 참고 하시길 바랍니다.
 
 
 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,056 명
  • 현재 강좌수 :  35,908 개
  • 현재 접속자 :  230 명