ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ Operation System ] Fedora
    Operation System/Linux ( CentOS ) 2008. 12. 30. 03:25

    # 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();
    ?>

Designed by Tistory.