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 허용
APM 설치에 앞서 필요한 라이브러리를 먼저 설치
yum -y install gcc cpp gcc-c++ compat-gcc-34-g77 flex openssl*
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(암호화 라이브러리)
더보기
다운받기 : 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
=========================================================================================
※ 아파치 접속자수 설정
아파치 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이 된 배수인 을 곱합니다. 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>
압축 풀어서 생긴(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
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
mod_security 설치
(압축 풀기 및 폴더 이동)
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
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 (용도에 따라 알맞게 설정)
/etc/skel 설정/home/user/사용자계정 으로 생성/home/user/사용자계정 701 설정
'운영체제 > 리눅스' 카테고리의 다른 글
전체 APM 시스템의 UTF-8 설정하기 (0) | 2010.07.21 |
---|---|
자동 SSH 접속 및 SFTP 자동 접속 (0) | 2010.07.16 |
CentOS Apache,PHP,MySQL,Zend,OpenSSL,PEAR 설치 메모 (0) | 2010.07.15 |
CentOS 상에서 Apache + PHP + MySQL소스 컴파일의 이해 (0) | 2010.07.15 |
sendmail 초기 설치 후 smtp_auth 설정 (0) | 2010.04.01 |