Apache

지각생 연습장

서버관리 페이지로

목차

설치

컴파일

  • 컴파일 옵션 지정
./configure --prefix=/usr/local/apache2 --enable-so --enable-module=so --enable-mods-shared=most --with-mpm=worker

패키지 관리자 이용

  • APT 시스템
아파치만 설치
# apt-get install apache2
APM 설치(+php +mysql)
# apt-get install php5 mysql-server php5-gd php5-mysql

설정

버추얼호스트

이름-기반 방식과 IP-기반 방식이 있다. 대부분 한 IP주소에 여러 웹서버가 공존하는 이름-기반(Name-based) 방식을 쓴다.

NameVirtualHost *

<Virtualhost *>

DocumentRoot 웹문서 위치

ServerName 웹호스트 이름 (http://latecomer.pe.kr 식의 URL)

ServerAlias 호스트 이름 별칭 (http://www.latecomer.pe.kr 식. 얼마든지 별칭을 더 만들 수 있음)

</VirtualHost>

로그 로테이트

  • 윈도우 서버 / Autoset 으로 apm 설치한 경우 : httpd.conf 혹은 httpd-vhost.conf의 가상호스트 설정부분에 추가
    CustomLog "|c:/autoset8/server/bin/rotatelogs.exe logs/www-access-%Y-%m-%d.log 86400" common
    ErrorLog "|c:/autoset8/server/bin/rotatelogs.exe logs/www-error-%Y-%m-%d.log 86400"

기타

  • tcp6 80번 포트만 열려 있을때 : ports.conf 에서 Listen 80 으로 되어 있으면 Listen 0.0.0.0:80 으로

사용 팁

인증하기

<?
function authenticate () {
    Header("WWW-Authenticate: basic realm=\"Board Admin 영역\" ");
    Header("HTTP/1.0 401 Unautherized");
    $title="Invalid Login";
    echo "이곳에 들어오려면 아이디와 암호가 필요합니다!";
    exit;
}

$OFFICE_IP='222.xxx.ooo.@@@';
if(strcmp(getenv("REMOTE_ADDR"), $OFFICE_IP) != 0) {
    $auth[admin_id] = '';
    $auth[user_id] = '';
    $auth[admin_pw] = '';
    $auth[user_pw] = '';

    if(!isset($_SERVER[PHP_AUTH_USER])) {
        authenticate();
    } else {
        if(!(($_SERVER[PHP_AUTH_USER] == $auth[admin_id] && $_SERVER[PHP_AUTH_PW] == $auth[admin_pw]) || ($_SERVER[PHP_AUTH_USER] == $auth[user_id] && $_SERVER[PHP_AUTH_PW] == $auth[user_pw]))) {
            authenticate();
        }
    }
} // end of if(first)
?>

참고

개인 도구