open source
- MySQL Admin GUI Tools v5 다운로드 2010.10.21
- 유분투 초보자 가이드 사이트 2010.10.12
- 아파치 웹 서버 설정 2010.10.12
- httpd.conf 내용 2010.10.12
- Apache 파일폴더가 웹브라우져에 표시될경우 2010.10.12
- Wordpress 글쓰기 후 메인이 나타나지 않을경우 2010.10.12
MySQL Admin GUI Tools v5 다운로드
유분투 초보자 가이드 사이트
아파치 웹 서버 설정
출처 : http://www.living114.net/tech_info/linux/apache.html
<< 아파치 웹 서버 설정 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.1 아파치 웹 서버의 시작과 종료 방법 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
시작 => /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
종료 => kill - TERM `cat /var/run/httpd.pid` | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2 아파치 웹 서버의 설정 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.1 매우 중요한 3개의 conf 파일의 값을 설정한다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
httpd.conf : 웹서버 설정 관련 파일 (srm.conf와 access.conf를 함께 작성해도 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
상관없다.) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
srm.conf : 웹서버 자원 관련 파일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
access.conf : 웹서버 보안 접근제어 관련 파일 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.2 httpd.conf | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.3 srm.conf | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.3 access.conf | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
access.conf : 전체적인 기본설정 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.htaccess : 각 디렉토리 별로 자세히 결정 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
가. access.conf 설정 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
나. 암호파일 만들기 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- passwd | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#htpasswd -c /etc/httpd/conf/.htpasswd admin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
※ -c (create) : 맨처음 .htpasswd를 생성할 때만 사용, 두번째 등록시는 생략한다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#htpasswd /etc/httpd/conf/.htpasswd webmaster | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- group | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vi 에디터를 사용해서 .htgroup 파일을 만든다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.4 MIME 파일 관련 설정 : srm.conf에 추가 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- MIME : Multipupose Internet Mail Extensions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 웹서버와 웹브라우저 사이에 오가는 자료가 어떤형태의 자료인지 지칭하기 위해 사용 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- Mime.types에 설정 : 거의 손볼 필요 없슴 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
※ 만약 어떤값을 정할 필요가 있을 때는 mine.types에 추가하지 말고 srm.conf에 AddType 지시자로 추가하여 관리 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.5 Log files | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.6 실시간 웹서버 상황보기 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
가. access.conf에 다음내용 추가 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
나. 웹브라우저에서 보기 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- URL에 다음과 같이 넣고 살행한다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- your.server.name/status | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- your.server.name/status?refresh=n | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
※ n : 갱신주기 초단위 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.7 프록시(Proxy) 기능 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- httpd.conf 파일에 프록시 기능 설정 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.8 가상 호스트(Virtual Host) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
가. 정의 : 한대의 컴퓨터와 하나의 아파치 서버 프로세스를 가지고 한개 이상의 웹 사이트를 동시에 운영하는 기능 IP 별칭 기능으로 ISP 업체들이 제공하고 있는 서비스로 "Web Hostiong" 서비스라 부른다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
나. 방법 : Only one conputer(server) but multiple web site(domain name) IP 별칭 기능을 사용하여 하나의 네트워크 인터페이스에 여러개의 주소를 부여 도메인 네임서버에 하나의 IP 주소에 대하여 여러개의 서로 다른 이름을 부여 아파치 웹서버는 서로 다른 IP주소 또는 서로 다른 호스트 이름에 대하여 한번의 실행을 통해서도 동시 서비스를 해 낼수 있다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
다. 구현 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.9 옵션(Options)에서 사용할 수 있는 지시자들 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
가. All : MultiViews, IncludesNOEXEC, SymLinksOwneMatch를 제외한 모든 옵션들을 활성화합니다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
나. ExecCGI : CGI 스크립트를 사용할 수 있도록 한다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
다. FollowSymLinks : 서버에서 사용하는 심볼릭 링크를 사용한다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
라. Includes : 서버측 포함 기능(SSI)을 사용할 수 있으며 SSI를 사용하려면 이 옵션을 활성화합니다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
마. IncludesNOEXEC : 서버측 포함 기능은 사용할 수 있으나 #exec, #include를 이용한 CGI 스크립트는 사용할 수 없도록 한다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
바. Indexes : 고객의 디렉토리를 지정하는 URL로 접속했을 때 index.html 파일이 없다면 디렉토리의 내용을 보여준다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
사. MultiViews : 컨텐트 협상 기능을 사용할 수 있도록 한다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
아. SymLinksIfOwnerMatch : 동일한 사용자의 소유로 설정된 심볼릭 링크만 허가한다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 각각의 인자들은 "+" 혹은 "-"를 붙여 그 기능을 더하거나 뺄 수 있다. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 만약 아무런 옵션도 부여되지 않았고 <Limit>지시자도 없다면 All이 적용된 것과 같은 효과를 가진다. |
httpd.conf 내용
httpd.conf 내용 <클릭:출처>
ServerRoot "/usr/local/httpd"
:아파치 서버가 설치된 디렉토리 지정
Listen 80
:아파치 서버가 사용할 포트번호 지정
LoadModule php5_module modules/libphp5.so
DSO 방식으로 만들어진 모듈의 기능을 사용하기 위해서는 그 기능에 관련된 지시자를 사용하기에 앞서
알맞게 `LoadModule' 지시자로 모듈을 지시해주어야 한다. 이것은php의 모듈을 불러온다는 의미이다
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User nobody
Group nobody
</IfModule>
</IfModule>
:아파치 서버가 웹 요청을 받았을때 유저 nobody 그룹nobody 의 권한으로 실행한다는 의미이다. root로 설정해서는 절대 안된다
ServerAdmin you@example.com
:아파치 서버가 구동되면서 생긴 각종 로그파일을 메일로 보낼수 있게 지정하는 곳.
ServerName www.example.com:80
:아파치 서버에 접속하는 클라이언트에게 보여지는 호스트 이름을 지정하는곳이다.
DocumentRoot "/usr/local/httpd/htdocs"
:웹에서 접속했을때 보여질 웹 문서들이 저장되는공간이다.
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
:디렉토리 에서 지정하는값을 실행한다는 의미 여기는 디폴트 값 None 모든것을 허용하지 않는다
All 모든것을 허용, 단 MultiViews, IncludesNOEXEC,SymlinksIFOwnerMathch 는 제외
Indexes index.html과 같은 인덱스 파일이 없을때 디렉토리 리스팅이된다.
Includes SSI를 사용허가, FollowSymlinks 심볼릭 링크를 허용
<Directory "/usr/local/httpd/htdocs">
AllowOverride None
Options
Order allow,deny
Allow from all
</Directory>
:/usr/local/httpd/htdocs 의 디렉토리에 허용될 값을 설정하는것. 기본 모두 허용이란 말이다
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
:디렉토리에 처음 나올 웹페이지를 지정 파일명을 안지정하더라고 기본으로 index.html을 지정한다
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
:/usr/local/httpd/conf/extra/httpd-default.conf에 AccessFileName .htaccess 를 설정하였을때 ".htaccess"의 내용을 볼수 없게 사용하는 옵션이다
ErrorLog "logs/error_log"
:아파치의 웹서버의 에레메세지 로그를 기록할 파일을 지정한다
LogLevel warn
:위에서 설정한 에러 메세지를 얼마나 자세하게 기록할건지를 설정한다
debug > info > notice > warn > error > crit > alert > emerg
하위로 갈수록 자잘것부터 자주 위로 갈수록 아주 긴급한것을 제외하곤 기록하지 않는다는것
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
:위의 모듈은 클라이언트의 요청을 로그에 자유롭게 기록한다. 자신이 원하는 형식으로 로그를 기록할 수 있고, 파일이나 외부 프로그램에 직접 로그를 보낼 수도 있다. 조건적 로그를 사용하면 요청의 성격에 따라 요청을 로그에 추가하거나 제외할 수 있다.
이 모듈은 세가지 지시어를 제공한다. TransferLog는 로그파일을 만들고, LogFormat은 원하는 형식을 정하고, CustomLog는 한번에 로그파일과 형식을 모두 지정한다. TransferLog와 CustomLog지시어를 여러번 사용하면 요청을 여러 파일에 기록할 수 있다
LogFormat과 CustomLog 지시어의 형식 아규먼트는 문자열이다. 이 문자열에 따라 요청을 로그파일에 기록한다. 문자열에는 로그파일에 그대로 복사되는 문자와 행바꿈과 탭을 나타내는 C의 "\n"과 "\t" 제어문자를 사용할 수 있다. 로그파일에 따옴표나 백슬래쉬를 쓰려면 앞에 반드시 백슬래쉬를 적어줘야 한다.
요청의 특징은 형식 문자열에 "%" 지시어를 사용하여 기록한다.
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
:이 모듈은 요청당 입출력 바이트수를 기록한다. 숫자는 네트웍에서 실제로 주고받은 바이트수를 나타내며, 요청과 응답의 헤더와 내용을 포함한다. 개수는 입력의 경우 SSL/TLS 이전에, 출력의 경우 SSL/TLS 이후에 세기때문에 암호화의 결과도 올바로 반영한다.
이 모듈을 쓰기위에선 바로위의 log_config_module 이 필요하다.
이 모듈은 두가지 새로운 로그지시어를 추가한다. 요청자체의 특성은 형식문자열에 "%" 지시어를 사용하여 기록한다.
CustomLog "logs/access_log" common
:위에서 정한 로그형식 "common"형식으로 로그를 남긴다
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
</IfModule>
:URL을 특정 파일시스템 장소로 대응하고 대상이 CGI스크립트라고 알린다
사용법 ScriptAlias URL-path file-path\directory-path
<IfModule cgid_module>
</IfModule>
<Directory "/usr/local/httpd/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all <-deny 로 해도 상관없음 잘 사용하지 않음
</Directory>
:/usr/local/httpd/cgi-bin 디렉토리에 요청이 왔을때 허용하는 값을지정
DefaultType text/plain
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .php3
AddType application/x-https-php-source .phps
</IfModule>
:MIME (Multipurpose Internet Mail Extensions)는 전자우편을 위한 인터넷 표준 포맷이다.
/usr/local/httpd/conf/mime.conf 의 편집없이 여기서 직접 편집가능하다.
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
:SSL은 TCP/IP를 사용하는 두 개의 통신 애플리케이션 간 프라이버시와 무결성을 제공하는 프로토콜이다.
클라이언트와 서버를 오고 가는 데이터는 시메트릭 알고리즘을 사용하여 암호화 된다.
퍼블릭 키 알고리즘(RSA)는 암호 키들의 교환과 디지털 서명에 사용된다. 퍼블릭 키 암호는 메시지를 암호화 하는데 사용되는
두 개의 키들을 사용하는 알고리즘을 정의한다.
하나의 키가 메시지를 암호화 하는데 사용되면, 다른 키는 암호 해제에 사용된다.
하나의 키(퍼블릭 키)를 공개하고 다른 키(개인 키)는 숨겨서 안전한 메시지를 받을 수 있다.
위와같이 SSL모듈을 불러들여 활성화 시키는것을 의미하는것이다.
[출처] httpd.conf 아파치 웹 서버의 주 환경설정파일 |작성자 Hstar
Apache 파일폴더가 웹브라우져에 표시될경우
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Httpd.conf파일을 열어서 위 항목을 처럼 값을 수정합니다.
Wordpress 글쓰기 후 메인이 나타나지 않을경우
↓
DirectoryIndex index.php index.html