Live Brilliant

Cent Os 5.5 설치 본문

개발은 핵찜이야/리눅스

Cent Os 5.5 설치

주인정 2012. 4. 13. 16:39
 

CentOS 5.5 APM설치 운영

* gcc 컴파일러 설치 확인 *

소스 컴파일시 필요한 gcc 관련 패키지들은 yum을 사용하여 원격 설치할 수 있다.

# yum install yum-fastestmirror -y
# yum install gcc gcc-c++ make automake autoconf -y

추가적인 yum 명령어 사용법은 아래 링크를 참고한다.

http://www.lug.or.kr/home/bbs/board.php?bo_table=centos_book&wr_id=93&page=2#bbs

좀더 자세한 내용은 맨페이지를 참고한다.

# man yum

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

* yum을 사용하여 개발 패키지 그룹들을 설치해 둔다. *

rpmforge.net 저장소 사용하기 :
(옵션임 : CentOS에서 제공하지 않는 패키지들도 rpm으로 제공한다.)

RHEL5 / CentOS-5
i386용 다운로드 : http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
x86_64용 다운로드 : http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

# lftpget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

개발관련 패키지 그룹 설치하기

# yum groupinstall "Development Libraries"
# yum groupinstall "Development Tools"
# yum groupinstall "Legacy Software Development"

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

기존 APM RPM 삭제

mysql 삭제
rpm -e dovecot-1.0-0.beta2.7.i386 (의존성)
rpm -e mysql-5.0.18-2.1

apache 삭제
rpm -e system-config-httpd-1.3.3-1.1.noarch (의존성)
rpm -e httpd-2.2.0-5.1.2

rpm -e php

* 의존성 무시 삭제 : --nodeps 옵션 추가.

■ 필요한 라이브러리 설치

* 라이브러리 없을시 설치

간혹 각종 라이브러리들이 설치가 안되어 있을 경우 설치시 에러가 발생하는데 이럴때에는 아래의 라이브러리 패키지를 설치해 주고, php를 처음부터 다시 컴파일 한다.
yum install libjpeg-devel libpng-devel libXpm-devel freetype-devel gd-devel libc-client libc-client-devel net-snmp-devel libmcrypt libmcrypt-devel -y

■ A.P.M 설치하기

■ 다운로드

- Apache 2.2.15

- PHP 5.2.13

- mysql 5.0.67


1. mysql 설치

[] Mysql 4.0.x 버전 설치시 configuer 할때 마지막에 오류발생 linuxthreads 를 못찾을경우

echo '/* Linuxthreads */' >> /usr/include/pthread.h


(1) mysql 설치

mysql 설치경로 : /usr/local/mysql

mysql 유저

useradd -M -s /bin/false mysql

*아래 컴파일에서 --with-readline 옵션이 있어야만 ssh 원격접속(putty, utf-8) 콘솔에서 한글 입력이 가능하다.
*아래 옵션에서 -enable-thread-safe-client 옵션은 아파치(httpd)를 쓰레드로 운영(--with-mpm=worker)할때 필요한 옵션)

tar xvfz mysql-5.0.67.tar.gz
cd mysql-5.0.67

./configure \

--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--disable-shared \
--enable-assembler \
--with-mysqld-user="mysql" \
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static \
--with-readline \
--without-debug \
--without-docs \
--without-bench \
--with-charset=euckr \
--with-extra-charsets=all

make && make install

*주의* MySQL 4.1.X 이하 에서는 --with-charset=euc-kr 으로 해야 합니다.

UTF-8 로 설치시는 --width-charset=utf8

(2) 설정 파일 복사
메모리에 따라서 환경 설정 파일들을 복사해 줍니다.
my-huge.cnf 1~2G
my-large.cnf 512M
my-medium.cnf 128M~ 256M
my-small.cnf 64M 이하
위와같이 나와있지만 위 설정은 db 서버 전용으로 사용했을 때 설정입니다.
기본적을 my-medium.cnf를 복사한 다음 시스템에 맞게 설정해서 사용해야 합니다 .
(모든게 그렇듯 절대적인 것이 아닙니다.)

cp support-files/my-huge.cnf /etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --level 24 mysqld off

(3) mysql 데이터베이스 초기화 및 디렉토리 퍼미션 설정

cd /usr/local/mysql/

chown -R mysql.mysql .


./bin/mysql_install_db --user=mysql

(4) 아무곳에서나 mysql 및 mysqldump 명령어를 실행가능하게 심볼릭 링크를 걸어줍니다.

ln -s /usr/local/mysql/bin/mysql /usr/bin/
ln -s /usr/local/mysql/bin/mysqldump /usr/bin/
(5) mysql 데몬을 실행시킵니다.
/usr/local/mysql/bin/mysqld_safe &

(8) mysql root 비밀번호를 설정합니다.

/usr/local/mysql/bin/mysqladmin -u root password "암호"

(9) root패스워드 분실시
- mysql root 비밀번호 잊어 먹었을 때

killall mysqld
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2 to server version: 4.0.20-log

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use mysql
Database changed
mysql> update user set password=password('비밀번호') where user='root';
Query OK, 2 rows affected (0.02 sec)
Rows matched: 2 Changed: 2 Warnings: 0

mysql> exit
Bye

killall mysqld
/usr/local/mysql/bin/mysqld_safe &


2. Apache 설치

압축풀기

tar xvfz httpd-2.2.15.tar.gz

(1) 튜닝

** MaxClient 값 튜닝( 최대 256이지만 이상으로 올려줍니다== > 1280)

vi server/mpm/prefork/prefork.c

파일에서
#define DEFAULT_SERVER_LIMIT 256 부분을 찾아서
#define DEFAULT_SERVER_LIMIT 1280 으로 수정해 줍니다.

vi server/mpm/worker/worker.c

파일에서
#define DEFAULT_SERVER_LIMIT 16 부분을 찾아서 ( 16 * 16 = 1024)
#define DEFAULT_SERVER_LIMIT 20 이렇게 수정해 줍니다. (20 * 64 = 1280)

./configure --prefix=/usr/local/apache2 \

--enable-mods-shared=all \
--enable-so \

--enable-rewrite \
--enable-modules=ssl \
--with-ssl=/usr \
--enable-ssl



make && make install

* openssl 은 RPM 설치

3. PHP 설치

(1) 환경설정

tar xvfz php-5.2.13.tar.gz
cd php-5.2.13

./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql \
--enable-magic-quotes \
--enable-mod-charset \
--enable-mbstring \
--enable-sigchild \
--enable-safe-mode \
--enable-bcmath \
--enable-calendar \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--enable-ftp \
--with-snmp \
--with-zlib \
--with-zlib-dir \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-gd \
--enable-gd-native-ttf \
--with-ttf \
--with-gettext \
--enable-exif \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-curl \
--with-ncurses \
--enable-sqlite-utf8 \
--with-regex=php \
--with-bz2 \
--with-mcrypt \
--with-iconv \
--disable-debug \
--enable-inline-optimization \
--enable-maintainer-zts \
--with-openssl

(2) 생성 및 실행
make && make install

(3) 환경파일 복사

# cp php.ini-dist /etc/php.ini

- php.ini 파일을 복사 해 줍니다.

4. Apache 환경설정


(1) 아파치 설정파일(/usr/local/apache/conf/httpd.conf) 다루기
아파치 설정파일을 다룹니다. 변경후에는 꼭 아파치를 재시작하시기 바랍니다.

- .php 파일 및 html 파일에서 php 코드 실행되게 설정하려면

AddType application/x-httpd-php .php .phtml .php3 .html .htm
AddType application/x-httpd-php-source .phps


위 내용을 추가해 줍니다. 추가 하게 되면 위 파일들에 있는 php 코드는 실행하게 됩니다.

- index.php를 기본으로 실행하게 설정
아파치는 기본적으로 DirectoryIndex index.html index.html.var 이렇게 설정 되어 있어 index.html 파일을 기본으로 읽습니다. 조금 바꾸어 주어 index.php 파일 및 기타 파일들도 기본으로 읽게 설정합니다.

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

- 그림 파일 및 프래쉬 파일 로그 남기지 않게 설정
방문자 수가 많아지면 웹로그가 엄청 쌓이게 되고, 그 로그는 크기가 2G를 넘게 되면 웹페이지에 이상현상이 생깁니다. 그렇다고 로그를 안 남길 수는 없는 것이고, 이미지 파일들은 로그남기는 것에서 제외합니다.
CustomLog logs/access_log common 이렇게 되어 있는 것을 ..

SetEnvIfNoCase Request_URI (gif|png|jpg|css|js|bmp|jpeg|swf)$ IMAGE=1

CustomLog /usr/local/apache/logs/access_log common env=!IMAGE

이렇게 바꾸면^^; 쉽게 가능합니다.


5. Zend Optimizer
php의 성능을 최대화 해 준다는 Zend Optimizer를 설치합니다.
Zend 홈페이지에 가보면 성능을 40% 향상시킨다고 합니다. ^^;
검증은 못했지만 말이죠~~ Zend는 컴파일 할 필요없이 받아서 설치하면 됩니다.^^;

(1) 설치

php 5.1.x 용
wget http://downloads.zend.com/optimizer/3.0.1/ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz

php 5.2 용

wget http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

tar xvfz ZendOptimizer-3.3.3-linux-glibc21-i386.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc21-i386
./install.sh


- 위 명령을 실행시키면 다음과 같은 화면들이 주루룩~~ 나옵니다. 무조건 OK~ 또는 YES~^&^
하면 끝납니다.&&;



6.1. MySQL 자동실행 설정
먼저 /usr/local/mysql/share/mysql/mysql.server 파일을 /etc/init.d 디렉토리에 복사한다.

# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld

다음과 같이 chkconfig 명령어를 이용하여 mysqld 의 자동 실행을 등록한다.

# chkconfig --add mysqld

6.2. Apache 자동실행 설정
MySQL 과 같이 /usr/local/apache/bin/apachectl 자동실행 스크립트를 /etc/init.d 디렉토리에 복사한다.

# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd

Apache 의 자동 실행 스크립트 파일은 chkconfig 명령어를 이용하여 등록할 수 없다. chkconfig 명령어를 사용하기 위해서 다음과 같은 내용을 스크립트 파일의 주석부분에 추가한다.

# Comments to support chkconfig on RedHat Linux

# chkconfig: 2345 90 90

# description: A very fast and reliable WebServer engine.

MySQL 과 같이 chkconfig 명령어를 이용하여 httpd 의 자동 실행을 등록한다.

# chkconfig --add httpd

6.3. 자동 실행 설정 확인
다음과 같이 chkconfig 명령어를 사용하여 설정사항을 확인할 수 있다.

 

'개발은 핵찜이야 > 리눅스' 카테고리의 다른 글

mysql 한글입력 안되는 문제  (0) 2012.04.13
[쉘스크립트] 백업 쉘  (0) 2012.04.13
리눅스 메일서버 설치  (0) 2012.04.13
cron 설정  (0) 2012.04.13
리눅스 cp 활용  (0) 2012.04.13
Comments