페도라 코어 5 설치기…#2(웹서버구축 APM)

리눅스 설치시에 웹서버를 패키지로 선택해서 설치할수도 있다…

아주 쉽게 간편하게 설치가 되지만… 여러모로 문제가 있다…

쉽게 이야기 해서 c++을 공부 안하고 .net부터 만지는 꼴이라고 할까???

기본에 충실해야 응용력이 살아난다…-_-

인터넷에 떠도는 메뉴얼로 고대로 따라해봤다…

# yum 설치를 위해 GPG-KEY 포함
rpm –import /usr/share/rhn/RPM-GPG-KEY-fedora

————> 참고로 위에 키포함을 안하고 yum을 계속 사용하다보면 만드시 에러가 난다…-_-

# yum 업데이트
yum -y update

————> yum은 정말 대단한 유틸이다… 쩝… 필자에 경우도 rpm만으로 레드햇9에 모든 패키지를 설치했으나 온갖 의존성 문제와 잡다한 오류들때문에 주름살만 늘어갔었다…

Yum은 Yellowdog Updater, Modified의 약자로 rpm기반의 시스템을 위한
자동 업데이터이자 패키지 설치/삭제도구이다.
Yum은 자동적으로 의존성을 처리해주며 rpm 패키지들을 안전하게 설치, 삭제 및
업데이트하기 위해 반드시 해야할 일들을 스스로 해결한다.

필자에 경우 커널업데이트를 위해 의존성있는 모든 패키지에 업그레이드가 무서워 포기했었는데 시간만 있다면
얼마든지 해낼것 같다..ㅋㅋㅋ

# 한글 설정
/etc/sysconfig/i18n

LANG=”ko_KR.eucKR”
SUPPORTED=”en_US.iso885915:en_US:en:ko_KR.eucKR:ko_KR:ko”
SYSFONT=”lat0-sun16″
SYSFONTACM=”iso15″

# 매뉴얼 설정 수정
vi /etc/man.config

수정
PAGER /usr/bin/less -isr
————————–> 위 두가지 한글 설정은 터미널이나 기타부분에서 한글깨짐현상을 고치기 위해서다
# 디렉토리 색상 수정
vi /etc/DIR_COLORS.xterm

수정
DIR 00;33

# 소스 컴파일을 위한 컴파일러 및 각종 모듈 yum 설치
yum -y install gcc cpp gcc-c++ compat-gcc-32-g77 flex libjpeg-devel libpng-devel libtiff-devel freetype-devel openldap-devel pam-devel sendmail-cf vsftpd telnet-server

# zlib 소스 설치
cd /usr/local/src
wget http://www.zlib.net/zlib-1.2.3.tar.bz2
tar xfj zlib-1.2.3.tar.bz2
cd zlib-1.2.3
make
make install

# freetype 2 설치
글짜를 그릴 때 쓰는 라이브러리 입니다.
wget http://ftp.superuser.co.kr/pub/etc/freetype-2.1.5.tar.gz
tar xvfz freetype-2.1.5.tar.gz
cd freetype-2.1.5
./configure
make
make install

# openssl 소스 설치
cd /usr/local/src
wget http://www.openssl.org/source/openssl-0.9.8a.tar.gz
tar xfz openssl-0.9.8a.tar.gz
cd openssl-0.9.8a
./config
make
make install

# curl 소스 설치
cd /usr/local/src
wget http://curl.haxx.se/download/curl-7.15.1.tar.bz2
tar xfj curl-7.15.1.tar.bz2
cd curl-7.15.1
. /configure –with-ssl
make
make install

# gd lib 설치
cd /usr/local/src
wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
tar xfz gd-2.0.33.tar.gz
cd gd-2.0.33
./configure
make
make install

# webalizer 소스 설치
cd /usr/local/src
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz
tar xfz webalizer-2.01-10-src.tgz
cd webalizer-2.01-10
./configure –with-language=korean
make
make install

# mysql 4.1.x 설치
cd /usr/local/src
wget http://mysql.byungsoo.net/Downloads/MySQL-4.1/mysql-4.1.16.tar.gz
tar xfz mysql-4.1.16.tar.gz
cd mysql-4.1.16
./configure –prefix=/usr/local/mysql –localstatedir=/usr/local/mysql/data –with-charset=euckr
make
make install

/usr/local/mysql/bin/mysql_install_db
groupadd mysql
useradd -M -c MySQL_Server -d /usr/local/mysql -g mysql -s /bin/nologin mysql
chown root.mysql -R /usr/local/mysql
chown mysql.mysql -R /usr/local/mysql/data
cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf
echo “/usr/local/mysql/bin/mysqld_safe &” >> /etc/rc.local

# apache 1.3.x 설치
cd /usr/local/src
wget http://ftp.apache-kr.org/httpd/apache_1.3.34.tar.gz
tar xfz apache_1.3.34.tar.gz
cd apache_1.3.34
./configure –prefix=/usr/local/apache –enable-module=so
make
make install
echo “/usr/local/apache/bin/apachectl start” >> /etc/rc.local

#freetype 소스설치후 적용하기위세 freetype 옵션추가
# php 소스 설치
cd /usr/local/src
wget http://kr.php.net/get/php-4.4.2.tar.bz2/from/this/mirror
tar xfj php-4.4.2.tar.bz2
cd php-4.4.2
./configure –with-apxs=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql –with-config-file-path=/usr/local/apache/conf –with-zlib-dir=/usr/local –with-jpeg-dir=/usr/local –with-png-dir=/usr/local –with-tiff-dir=/usr/local –with-freetype-dir=/usr/local –with-ttf –with-gd –with-openssl –with-gettext –with-kerberos –with-swf-dir=/usr/local –with-mod_charset –with-regex=php –with-curl –with-ldap –with-iconv –enable-gd-native-ttf –enable-ftp –enable-sockets –disable-debug –enable-calendar –enable-sigchild –enable-magic-quotes –enable-bcmath –enable-exif –enable-mbstring –enable-dbase –enable-sysvmsg –enable-sysvsem –enable-sysvshm –enable-yp –with-jpeg-dir –with-freetype-dir
make
make install
cp php.ini-dist /usr/local/apache/conf/php.ini

————-> 이쯤에서 에러가 났었는데 .so cannot restore segment prot after reloc: Permission denied

이런 에러가 난다면 현재 Selinux환경이 활성화 때문이다.

Selinux활성화 상태에서 apache를 구동하는 방법은 조금 복잡.

그냥 Selinux를 비활성화 시키고 재부팅하면 정상적으로 구동된다.

먼저, 콘솔상태라면..

/etc/sysconfig/selinux 파일을 열어서

SELINUX=enforcing 부분을 아래와 같이 변경.
SELINUX=disabled

이와같이 변경한 다음에 재시작.

disabled 대신에 Permissive 라고 입력해도 된다.
그럼 다른 설치를 계속…

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

수정
DirectoryIndex index.html index.htm index.php

수정 (public_html -> www)
UserDir www
#

# vi /usr/local/apache/conf/mime.types
두줄 추가 (확장자는 탭키로 띄운다)
application/x-httpd-php php ph inc
application/x-httpd-php-source phps

# php 파일 이외에 다른파일명으로 php해석할수있게 설정 ex) htm html
# vi /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

# vi /usr/local/apache/conf/php.ini
– 그림 파일 및 프래쉬 파일 로그 남기지 않게 설정
방문자 수가 많아지면 웹로그가 엄청 쌓이게 되고, 그 로그는 크기가 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
이렇게 바꾸면^^; 쉽게 가능합니다.
– 업로드 용량 제한 풀기
기본적으로 업로드는 2M로 제한되어 있습니다. 만약 2M 이상으로 하면 여러 가지 설정들을 바꾸어 줘야 합니다. 업로드 되는 시간을 길 게 해 주어야 하고, 한번에 잡아먹을 메모리를 크게 해 주어야 합니다.
default_socket_timeout = 600
post_max_size = 20M
memory_limit = 20M
upload_max_filesize = 20M

– 업로드 용량 제한 풀기
# vi /usr/local/apache/conf/php.ini
기본적으로 업로드는 2M로 제한되어 있습니다. 만약 2M 이상으로 하면 여러 가지 설정들을 바꾸어 줘야 합니다. 업로드 되는 시간을 길 게 해 주어야 하고, 한번에 잡아먹을 메모리를 크게 해 주어야 합니다.
default_socket_timeout = 600
post_max_size = 20M
memory_limit = 20M
upload_max_filesize = 20M

– post, get , 쿠키 , 세션등의 변수를 일반변수로 (개인 서버용일경우 보안상 OFF 권장)
예 전에 php는 기본적으로 위 변수를 일반변수로 사용할 수 있었습니다. 하지만 보안에 취약 하기 때문에 php 설치시 기본적으로 일반변수로 사용못하게 설정합니다. 이렇게 되면 문제가 예전에 사용하던 짜여졌던 프로그램은 정상적으로 실행되지 않습니다. 보안보다는 호환성이 더 중요하죠^^;
register_globals=On 이렇게 설정합니다.

# ZendOptimizer 설치
cd /usr/local/src
wget ftp://ftp.sir.co.kr/zendoptimizer/ZendOptimizer-2.5.10a-linux-glibc21-i386.tar.gz
tar xfz ZendOptimizer-2.5.10a-linux-glibc21-i386.tar.gz
cd ZendOptimizer-2.5.10a-linux-glibc21-i386
./install.sh

php.ini 경로
/usr/local/apache/conf

# mod_throttle 소스 설치
cd /usr/local/src
wget ftp://ftp.sir.co.kr/etc/mod_throttle-3.1.2.tgz
tar xfz mod_throttle-3.1.2.tgz
cd mod_throttle-3.1.2/
make install

#####################################################
##### 인스톨시 다음과 같은 에러시 다음과 같이 하세요. ############
##### make: *** [install] Error 127make: *** [install] Error 127 ############
####################################################
—> 해당 디렉토리에 Makefile 에 APXS 경로를 지정해준다.

——>경로 지정법

# vi Makefile

APXS=/usr/local/apache/bin/apxs
APACHECTL=/usr/local/apache/bin/apachectl

절대경로로 수정한 다음 저장 하고 다시 make install 실행

(참고 인스톨시 에러가 발생한다. 그리고 APM세팅 방식을 DSO방식으로 설치한다.
STATIC방식으로 설치해도 되지만, 그 부분은 다시 설정해야한다.)

* static방식으로 설치 했을 경우 …
configure 시–add-module=$mod_throttle_source_PATH/mod_throttle.c 추가.

* 그럼 DSO방식으로 설치 했을 경우…
* 모듈을 만들어준다.
[root@abcd mod_throttle-3.1.2]# /usr/local/apache/bin/apxs -c mod_throttle.c(모듈을 만들어준다)
gcc -DLINUX=22 -DUSE_HSREGEX -fpic -DSHARED_CORE -DSHARED_MODULE
-I/usr/local/apache/include -c mod_throttle.c
gcc -shared -o mod_throttle.so mod_throttle.o

* 에러부분에 추가 해주면 된다.

[root@abcd mod_throttle-3.1.2]# /usr/local/apache/bin/apxs -i -a -n ‘throttle’ mod_throttle.so
[activating module `throttle’ in /usr/local/apache/conf/httpd.conf]
cp mod_throttle.so /usr/local/apache/libexec/mod_throttle.so
chmod 755 /usr/local/apache/libexec/mod_throttle.so
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak
cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf
rm /usr/local/apache/conf/httpd.conf.new

##############################################
vi /usr/local/apache/conf/httpd.conf
ThrottlePolicy Volume 500M 1d
SetHandler throttle-status

SetHandler throttle-me

SetHandler throttle-me

ServerAdmin root@xxx.com
ServerName xxx.com
DocumentRoot /home/xxx
# 하루 500M
ThrottlePolicy Volume 500M 1d
# 하루 천번
ThrottlePolicy Request 1000 1d
# quota 설정

1. fstab 옵션추가 (usrquota,grpquota) :
vi /etc/fstab
/home 에 usrquota 추가
default,usrquota

2. remount (umount , mount) :
mount -o remount /home

3. 데이터베이스 파일생성(quota.user , quota.group) :
touch /home/quota.user
chmod 600 /home/quota.user
quotacheck -av
convertquota -u /home

4. 사용자마다 적용수치 기록 :
edquota 계정
repquota -a

5. 활성화 :
quotaon /home

# qpopper 4.0.8 소스 설치
cd /usr/local/src
wget ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.0.8.tar.gz
tar xvfz qpopper4.0.8.tar.gz
cd qpopper4.0.8
./configure –enable-specialauth –enable-servermode –enable-shy
make
cp popper/popper /usr/sbin/popper

vi /etc/xinetd.d/pop3

service pop3
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/popper
log_on_success += HOST DURATION
log_on_failure += HOST
}

# /etc/rc.d/init.d/xinetd restart

# sendmail 수정 및 실행
vi /etc/mail/sendmail.mc

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA’)dnl

# 계정당 용량 설정
vi /etc/sendmail.cf
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
M=20495360, <– 이 부분만 추가 : byte 단위 (예:20메가)
T=DNS/RFC822/X-Unix,
A=procmail -t -Y -a $h -d $u

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
#/etc/rc.d/init.d/sendmail restart
#/etc/rc.d/init.d/saslauthd restart

# 기본 서비스

ntsysv 실행

auditd
crond
iptables
kudzu
named
network
pop3
saslauthd (보내는 메일서버 패스워드 인증?)
sendmail
sshd
syslog
telnet
vsftpd
xinetd

# 그룹사용자 추가
groupadd webhost

# path 추가

vi /etc/profile

pathmunge /usr/X11R6/bin after
pathmunge /usr/local/mysql/bin after
pathmunge /usr/local/apache/bin after

# vsftpd 설정 변경

vi /etc/vsftpd/vsftpd.conf

주석제거
xferlog_file=/var/log/vsftpd.log

# 재시작

sync
reboot

***이제 설치가 다 되었으면 웹브라우저에 localhost를 입력하면 아파치 테스트 페이지가 나온다…

php테스트는 다 알겠지만…-_-

phpinfo();
?>

내용에 페이지를 하나 작성해서 띄어보면 끝~~~~

APM설치 도움 : PHPSCHOOL

다음은 삼바를 설치해보자~!

계속됩니다…

http://dspride.cafe24.com

Linux에 게시됨. Leave a Comment »

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: