본문 바로가기
운영체제/리눅스

Centos 5.3 – Apache 2.x + PHP 5.2 + MySQL-5.1 && 이하 라이브러리 설치하기.

by o테리o 2010. 7. 15.

1. CenTOS 설치

1-1 알아서 설치

1-2 CentOS 5.3 yum 업데이트
[root@dns1 ]# yum -y update

1-3 필요없는 서비스 제거 및 사용자 제거
/etc/inittab 3,4,5,6 주석처리
# vi /etc/inittab
     44 # Run gettys in standard runlevels
     45 1:2345:respawn:/sbin/mingetty tty1
     46 2:2345:respawn:/sbin/mingetty tty2
     47 #3:2345:respawn:/sbin/mingetty tty3
     48 #4:2345:respawn:/sbin/mingetty tty4
     49 #5:2345:respawn:/sbin/mingetty tty5
     50 #6:2345:respawn:/sbin/mingetty tty6

# ntsysv –level 345
아래만 남기고 모두 체크해제
필수: crond, iptables, network, sendmail, sshd, syslog, xinetd, yum-updatesd
선택: rsync
 
# vi /etc/passwd 불필요한 사용자 제거
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

위만 남기고 제거

 

1-4 파일보안설정

[root@dns1 bin]# chmod 700 /usr/bin/perl*

1-5 root 로긴 막기 && 특정사용자만 su 허용

  

2. 필수 사용 라이브러리 설치하기

 APM 설치에 앞서 필요한 라이브러리를 먼저 설치

(GCC, C++, GCC-C++, Compat-GCC-34-g77 flex, OpenSSL -> 이와 관련된 라이브러리 전부 설치 *)
yum -y install gcc cpp gcc-c++ compat-gcc-34-g77 flex openssl*
 
(libjpeg-devel, libpng-devel, freetype-devel, gd-devel, libtermcap-devel, ncurses-devel, libxml2-devel, libc-client-devel, bzip2-devel 라이브러리)
yum -y install libjpeg-devel libpng-devel freetype-devel gd-devel libtermcap-devel ncurses-devel libxml2-devel libc-client-devel bzip2-devel
#확인
rpm -qa gcc* cpp* compat-gcc* flex* openssl*
rpm -qa libjpeg* libpng* freetype* gd-*
reboot  (패키지를 변경할 경우에는 재부팅을 반드시 해야만 합니다.)

Libmcrypt(암호화 라이브러리)

더보기

-> 제로보드 XE(5)에 사용되고 있습니다.
다운받기 : http://jaist.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz

파일 첨부 :

wget http://jaist.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar xvfz libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8(압축 풀린 폴더)
./configure \
–enable-rule=SHARED_CORE
make && make install

 

 

다운로드 받기

ftp://ftp.neowiz.com/pub/mysql/Downloads/
wget ftp://ftp.neowiz.com/pub/mysql/Downloads/MySQL-5.1/mysql-5.1.36.tar.gz   (MySQL 5.1.36) 다운로드

http://dev.mysql.com/downloads/mysql/5.1.html
wget ftp://ftp.neowiz.com/pub/apache/httpd/httpd-2.2.12.tar.gz      (Apache 2.2.12) 다운로드
wget ftp://ftp.neowiz.com/pub/languages/php/php-5.2.10.tar.gz     (Php-5.2.10) 다운로드


 

# cd /usr/local/src/mysql-5.1.36

euckr 설치시

./configure –prefix=/usr/local/mysql –localstatedir=/usr/local/mysql/data –with-charset=euckr –with-extra-charsets=all

uft8 설치시

./configure –prefix=/usr/local/mysql –localstatedir=/usr/local/mysql/data –with-charset=utf8 –with-extra-charsets=all

 

# make && make install

# useradd mysql -g daemon -u 60 -M -s /bin/false -c “Mysql Server User” -d /usr/local/mysql

# groupadd mysql

# /usr/local/mysql/bin/mysql_install_db(data 디렉토리생성확인, 생성실패시 rpm mysql 설치되어있는지 확인)

# chown -R root.mysql /usr/local/mysql

# chown -R mysql.mysql /usr/local/mysql/data(mysql을 root 권한으로 돌리는건 보안차원에서 위험)
# chmod 700 /usr/local/mysql/data

#/usr/local/mysql/bin/mysqld_safe & ( MYSQL 실행 )

mysql의 mysql root 패스워드 설정하기
mysql은 초기 설치시 관리자(root) 패스워드가 없다. 그래서 mysql -u root -p 후 패스워드를 물어보면 엔터를 치면
root권한으로 mysql에 접속된다.
# ./mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.1.36

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>

그런데 mysql 서버에 패스워드 없이 로그인 하게되면 서버에 만들어진 데이터베이스나 테이블
기타 이곳에 저장된 자료가 외부인에게 노출될 수 있다. 따라서 이러한 보안을 목적으로
root 패스워드를 지정하면 mysql 서버를 안전하게 보호할 수 있다.

mysql> use  mysql;
mysql> update  user  set  password=password(’123456′) where user=’root’;
Query OK, 2 rows affected (0.03 sec)
Rows matched: 2  Changed: 2  Warnings: 0
mysql> flush  privileges; <— 적용(하지 않으면 mysql에서 빠져나와서 root 로그인 안됨)

확인.
mysql> select  host, user, password  from  user;
+—————————————————————-+
| Host                          user              password       |
+—————————————————————-+
| localhost                     root          2e01146f5c065853   |
| localhost.localdomain         root          2e01146f5c065853   |
+—————————————————————-+

mysql> \q
Bye

 

Profile 파일 편집
vi /etc/profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
source /etc/profile

서비스 등록
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
chkconfig –add mysqld
chkconfig –list mysqld
service mysqld start

4. Apache 설치하기

=========================================================================================
※ 아파치 접속자수 설정

아파치 2.2 버전은 httpd.h 파일에 MaxClient 와 관련된 옵션이 없습니다.

아파치 1.3 버전에서는 src/include/httpd.h 파일 하나만 수정한 후 configure 해주면 되었지만

아파치 2.2 버전에서는 2개의 파일에서 설정을 바꾸어 주어야 합니다.

MaxClient 값을 256에서 2048까지 높이려고 할 경우를 예로 설명드리겠습니다.

먼저, 소스 디렉토리에서 server/mpm/prefork/prefork.c 파 일을 vi 에디터 등으로 열고
#define DEFAULT_SERVER_LIMIT 256 으로 되어 있는 부분을
#define DEFAULT_SERVER_LIMIT 2048 으로 수정한 후, 저장합니다..

여기서, 2048 / 256 을 하시면 8 이라는 배수가 나옵니다. 이 배수를 잘 기억해 둡니다.

다음에는 소스 디렉토리에서 server/mpm/worker/worker.c 파일을 vi 에디터 등으로 열면
#define DEFAULT_SERVER_LIMIT 16  으로 되어 있는 부분이 있습니다.

여기에서 16 * 8 (아까 prefork.c 파일에서 기본값인 256에다 곱해서 2048이 된 배수인 8) 을 곱합니다. 256 이 되는군요.

#define DEFAULT_SERVER_LIMIT 256  으로 수정한 후 저장합니다.

 그 다음에는 ./configure –prefix=/usr/local/apache2.2 –enable-rewrite 명령으로 아파치를 재 컴파일한 후,

/usr/local/apache2.2/conf/extra/httpd-mem.conf 파일을 에디터로 열어 MaxClient 부분의 숫자값을 2048 로 변경하여

저장한 후, 아파치를 재시작하면 됩니다.

 

아파치 프로세서가 최대 256 -> 1024 이상 띄울수 있게 되고 동시접속자수가 증가하게 됨.

#define HARD_SERVER_LIMIT 4096 으로 하여 그 이상의 아파치 프로세서를 띄울수는 있으나 아파치는 한개당 2M정도 차지한다고하니 maxclient 상승은 그에 해당하는 시스템 자원도 뒷받침 해줘야 할것.

1024 이상 띄우는것 보다 커널튜닝을 통해서 리소스를 줄이는것이 효율적이다.
========================================================================================

압축 풀어서 생긴(httpd-2.x.xx) 폴더로 이동합니다.
cd /usr/local/src/httpd-2.2.12

파일을 위한 환경 설정하기.
./configure –prefix=/usr/local/apache –enable-mods-shared=all –enable-so –enable-ssl –enable-modules=ssl –enable-rewrite –with-mpm=prefork –with-mcrypt=/usr/local
또는

./configure –prefix=/usr/local/apache –enable-module=most –enable-shared=max
설치
make && make install

서비스 등록
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
service httpd start

 

설정

일반계정 home 에 설치됬다면 아래 추가 – 미추가시 403 에러
<Directory “/home/*/”>
    Options Indexes FollowSymLinks 
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

 

5. PHP 설치하기

압축 풀어서 생긴(php-5.x.x) 폴더로 이동합니다.
cd /usr/local/src/php-5.2.10

설치를 위한 환경 설정
./configure –with-config-file-path=/etc
–prefix=/usr/local/php \
–with-apxs2=/usr/local/apache/bin/apxs \
–with-mysql=/usr/local/mysql \
–with-mysqli=/usr/local/mysql/bin/mysql_config \
–disable-debug \
–enable-safe-mode \
–enable-sockets \
–enable-sysvsem=yes \
–enable-sysvshm=yes \
–enable-ftp \
–enable-gd-native-ttf \
–enable-inline-optimization \
–enable-bcmath \
–with-zlib \
–with-jpeg-dir \
–with-png-dir \
–with-freetype-dir \
–with-libxml-dir \
–enable-exif \
–with-gd \
–with-ttf \
–with-gettext \
–enable-sigchild \
–enable-mbstring \
–with-openssl \
–with-imap \
–with-imap-ssl \
–with-kerberos

설치
make && make install

PHP 환경 설정 복사하기 (/etc/)
cp /usr/local/src/php-5.2.10/php.ini-dist /etc/php.ini

Apache 서버와 연동하기

vi /usr/local/apache/conf/httpd.conf

(중략)
User apache
Group apache
ServerName www.cakeon.com:80   (서버 주소를 사용자에 맞게 입력합니다.)
DocumentRoot “/usr/local/apache/htdocs”
(중략)
LoadModule ssl_module modules/mod_ssl.so           (SSL 모듈을 활성화 합니다.)
(중략)
<IfModule dir_module>
     DirectoryIndex index.html index.htm index.php
</IfModule>
(중략)
<IfModule mime_module>
     AddType application/x-httpd-php .php .html                  (PHP를 사용할 수 있도록 합니다.)
     AddType application/x-httpd-php-source .phps             
</IfModule>

서비스 재시작(웹서버 재시작)
service httpd restart

태스트 하기(PHP 연동여부 확인)
rm /usr/local/apache/htdocs/index.html
echo ‘<?php phpinfo() ?>’ > /usr/local/apache/htdocs/index.php

 
6. 선택 라이브러리 설치하기

 

mod_security 설치

mod_url 설치
mod_encoding 설치
 
7. Zend Optimizer 설치하기

(압축 풀기 및 폴더 이동)
cd /usr/local/src
wget ZendOptimizer  다운로드 주소 입력

첨부 파일

ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

tar xvzf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-i386

(설치 하기)
./install.sh

(기존의 PHP 환경 설정 제거)
# rm /etc/php.ini

(심볼릭으로 Zend가 연동된 php를 연결하기 – /etc/php.ini)
# ln -s /usr/local/Zend/etc/php.ini /etc/php.ini

(기타 라이브러리 재 연동)
/usr/local/php/bin/pear upgrade-all
/usr/local/php/bin/pear install DB File Mail Mail_Mime
/usr/local/php/bin/pear install MDB2 MDB2_Driver_mysql MDB2_Driver_mysqli
/usr/local/php/bin/pear install HTTP_Request XML_RPC

(/etc/profile 환경설정)
vi /etc/profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/php/bin
source /etc/profile

7. Proftpd 설치하기

wget ftp://ftp.neowiz.com/pub/proftpd/distrib/source/proftpd-1.3.2.tar.gz

# tar -xvzf proftpd-1.3.2.tar.gz
# mv proftpd-1.3.2 proftpd
# ./configure –prefix=/usr/local/proftpd
# make 
 
# make install
# vi /usr/local/proftpd/etc/pfoftpd.conf (용도에 따라 알맞게 설정)

8. phpMyAdmin 설치하기
9.  설치하기

 

계정생성

 /etc/skel 설정/home/user/사용자계정 으로 생성/home/user/사용자계정 701 설정

 

3. MySQL 설치하기