httpd.conf 파일 문법 검사 : apachectl configtest
[root@~]# vi httpd.conf NameVirtualHost * Include conf/vhosts.conf [root@~]# vi vhosts.conf <VirtualHost *> // vhost는 잘못된 주소를 요청 받았을때 맨위에 설정된 <VirtualHost*>를 보여주므로, ServerAdmin kbs@abc1234.com // 이를 방지하기 위해 default page 설정 DocumentRoot /opt/sadmin/default ServerName default.abc1234.com RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] </VirtualHost> <VirtualHost *> // 실제 vhost 설정 ServerAdmin kbs@abc1234.com DocumentRoot /home/kbs/www ServerName abc1234.com RewriteEngine on RewriteCond %{REQUEST
SCSI 디스크 sda, sdb, sdc ... IDE 디스크 hda, hdb, hdc ... 순서 : 파티셔닝 → 포맷 → 마운트 → 파일저장 → /etc/fstab 1. 파티션 나누기 리눅스에서 주 파티션은 최대 4개까지 만들 수 있고, 그중 하나는 확장 파티션이어야 한다. [root@~]# fdisk /dev/sda command (m for help): [옵션] [옵션] → d(파티션삭제), m(옵션에 대한 도움말), p(현재 파티션 정보 보기), q(저장하지 않고 종료) n(새 파티션 추가), w(저장하기), t(파티션 타입) * 스왑 파티션 설정 Command (m for help): tPartition number (1-4): 1Hex code (type L to list codes): 82 * 부팅 파티션 설정 Command (m for help): aPartition number (1-4): 2(파티션 테이블 Boot항목에 * 표시) 생성이 잘 됐는지 확인 : fdisk -l /dev/sda, ls -l /dev/sda* 2. 파일시스템 포맷 [root@~]# mkfs -t ext3 /dev/sda1 - mke2fs /dev
/etc/fstab 파일의 구조 [파일시스템장치명] [마운트포인트] [파일시스템종류] [옵션] [dump 관련설정] [파일점검옵션] [파일시스템장치명] /dev/sda1, /dev/sda2 등 (장치명 대신 레이블명도 씀) [옵션] defaults : rw, nouser, auto, exec, suid 속성을 가짐 auto : 부팅시 자동마운트 (⇔ noauto) exec : 실행파일이 실행되는걸 허용 suid : SetUID, SetGID 사용 허용 (⇔ nosuid) ro : 읽기전용 사용 rw : 읽고 쓰기 사용 user : 일반 유저도 마운트 할 수 있게 함 (⇔ nouser) [dump 관련설정] 1 : dump 명령 가능, 0 : dump 명령 불가 [파일점검옵션] 0 : 부팅시 fsck 실행 안됨 1 : 루트파일시스템 2 : 루트파일시스템 이외의 파일시스템
DSO(Dynamic Shared Object)방식 특정모듈을 추가로 설치할 때 아파치를 재 컴파일 하지 않고 모듈을 추가 할 수 있다. Static 방식에 비해 응답속도가 느릴 수 있다. 필요할때에만 시스템에 load되었다가 사용이 다하면 unload되므로 시스템자원을 효율적으로 사용한다 설치 : ./configure --enable-so 확인 : httpd -l | grep mod_so.c 추가모듈 사용 방법 ① module 디렉토리에 모듈파일 넣기 ② 아파치 환경설정에서 모듈지정 ex) LoadModule php5_module(모듈명) modules/libphp5.so(위치) php일때는 AddType지시자 지정 Static방식 특정모듈을 추가로 사용하려면 아파치를 재 컴파일 한다. 아파치를 실행하면 모듈을 사용하든 안하든, 추가된 모든 모듈들이 시스템에 load된다. 응답속도가 DSO방식보다 빠를 수 있다. 시스템 자원을 낭비한다. DSO 방식을 사용하기를 권장한다
암호 인증을 위해 설정해야할 내용들 1. httpd.conf 파일의 암호인증 허용설정 2. 암호인증할 디렉토리내에서의 .htaccess 파일 생성 3. 암호인증할 사용자들의 ID와 암호가 저장된 .htpasswd 파일 생성 4. 웹브라우저에서 암호인증 테스트 5. 로그인 사용자 추가 생성 1. httpd.conf 파일의 암호인증 허용설정 <Directory "/home/www/public_html"/> AllowOverride AuthConfig // AuthConfig 값 설정 </Directory> AccessFileName .htaccess // 인증파일로 사용할 파일 설정 2. 암호인증할 디렉토리내에서의 .htaccess 파일 생성 암호인증을 하고자하는 디렉토리내에 vi로 생성 (/home/www/public_html/.htaccess) ① 특정 유저들만 인증하기 위한 방법 AuthType Basic // 인증방식 (보통 Basic 사용) AuthName "Input Password" // 인증창 이름 AuthU
www.abcd.com/~kbs www.abcd.com/kbs ~ 없애려면 httpd.conf 파일에서 Alias /kbs/ "/home/www/kbs/" 추가
위치 : apache/bin/ root@abcd:~# ab www.linux.co.kr/ This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking www.linux.co.kr(be patient).....done Server Software: Apache/2.0.64 Server Hostname: www.linux.co.kr Server Port: 80 Document Path: / Document Length: 327 bytes // 초기문서 용량크기, 대부분 index.html 또는 index.htm Concurrency Level: 1 // 동시에 요청된 클라이언트 수 Time taken for tests
httpd -f 아파치설정 파일을 지정하여 실행 (하나의 아파치에 두개 이상의 설정파일을 용도별로 사용할때 유용) httpd -d 홈디렉토리를 지정하여 아파치 실행 (ServerRoot) httpd -v 버젼 확인 httpd -V 컴파일하여 설치한 설정내용 확인 httpd -l 설치되어 사용가능한 모듈 확인 httpd -L 설정지시자 확인 httpd -S 가상호스트 확인 httpd -t 문법 검사
CGI사용은 ScriptAlias로 지정된 위치에서 사용하는게 기본이지만, ExecCGI를 사용하면 지정된 디렉토리내에서 CGI 사용 허용* AddHandler cgi-script 지시자에서 정의한 확장자만 유효 아파치는 ScriptAlias에 설정되어 있는 디렉토리 안의 모든 파일을 html이 아닌 실행파일로 인식한다. 따라서 html이나 이미지 파일 등도 제대로 인식하지 않고 실행하려 한다. 또한 ScriptAlias로 설정된 디렉토리에서는 "*.cgi","*.pl" 등의 파일확장자도 필요치 않다. ScriptAlias로 설정되지 않은 디렉토리에서 스크립트를 실행하려면 *.cgi,*.pl 등만 스크립트 파일로 인식시켜야 한다. 아파치가 이것을 인식할 수 있도록 하는 것이 AddHandler(httpd.conf) 이다. AddHandler cgi-script .cgi httpd.conf 파일 중에서 위와 같이 설정을 하면 서버의 모든 디렉토리에서 .cgi로 끝나는 모든 파일을 cgi로 인식하여 실행한다. 단, 주의할 점은 스크립트로 사용하려하는 디렉토리가 ExecCGI 옵션이 설정되어 있어야 한다는 것이다. 예)ScriptAlias를 이용한 일반적 설정(h
몇번 부팅레벨로 부팅할지 결정 /etc/inittab → id:3:initdefault: 부팅레벨 0 : 시스템종료 /etc/rc.d/rc0.d/ 부팅레벨 1 : 싱글모드(관리모드), 콘솔로그인만 가능하고 root만 사용함 /etc/rc.d/rc1.d/ 부팅레벨 2 : NFS 지원하지 않는 멀티유저 실행모드 /etc/rc.d/rc2.d/ 부팅레벨 3 : NFS 지원 멀티유저 실행모드 /etc/rc.d/rc3.d/ 부팅레벨 4 : 사용하지 않음 /etc/rc.d/rc4.d/ 부팅레벨 5 : X윈도우 환경 멀티유저 실행모드 /etc/rc.d/rc5.d/ 부팅레벨 6 : 재부팅 /etc/rc.d/rc6.d/ 부팅레벨 변경 : init 0~6 레벨 확인 : runlevel 부팅레벨기록 : runlevel
# LoadModule rewrite_module module/mod_rewrite.so 아파치를 DSO방식으로 설치했을때 모듈을 로드하는 지시자 # LockFile logs/accept.lock → USE_FCNTL_SERIALIZED_ACCEPT 또는 USE_FLOCK_SERIALIZED_ACCEPT를 사용하여 컴파일되었을 때 사용되는 잠금 파일로의 경로. 잠금 파일의 값은 반드시 로컬 디스크에 저장되어야 함. 잠금파일 : 어떤 프로세스에서 사용중인 파일을 다른 프로세스가 함부로 변경하지 못하도록 함 httpd.lock : 웹서버가 떠 있다는 걸 알려s는 파일, 지금 웹서버 데몬이 돌고 있으니, 다른 웹서버 데몬은 돌지 말라. # PidFile logs/httpd.pid 아파치가 시작될 때 자신의 프로세스번호(PID)를 기록하는 파일 # User daemon // 리눅스 시스템에서 0~499까지 UID와 GID를 사용하므로 # Group daemon // 500번 이상의 UID와 GID를 가지는 계정으로 설정 서비스를 직접 담당하는 아파치자식프로세스들의 실행소유자와 소유그룹 (n