sun's longitude:300 50 17.75 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/delete.php:소스보기  

질문과 답변 게시판입니다.

현재 실시간으로 이곳 서버의 설정파일(몇개)를 보여주고 있습니다.
서버의 설정내용에 관한 질문은 먼저 이곳 서버의 설정내용을 참고하시길 바랍니다.

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
 ★ 글 지우기 항목입니다. 한번 더 생각하시고 결정하십시오.!!!
제목 735 번 글의 답장글 : Re: Re: 문제는 설정 위치??..웁 오타가..
 이름  산이(san2@linuxchannel.net) [홈]http://www.linuxchannel.net
[산이]님이 남기신 글:

>[산밑돌맹이]님이 남기신 글:
>
>>문제의 씨쥐아이를 실행키 위해..
>><IfModule mod_alias.c>
>>ScriptAlias /cgi-bin/ "/home/aaa/cgi-bin/"
>><Directory "/home/aaa/cgi-bin">
>> AllowOverride None
>> Options ExecCGI
>> Order allow,deny
>> Allow from all
>></Directory>
>></IfModule>
>>라는 옵션을 섹션3의 Virtual서버 부분의 해당 버추얼서버 디렉토리에다
>>하면,,,
>>옵션이 작용하는데...
>>
>>섹션2의 메인서버 부분에다 추가하면 왜 안되는지요?
>>제가 알기로는 메인서버부분의 옵션은 섹션3의 버?서버에서 변경하지 않는 한 버?서버까지 유효한줄 알고 있는데...
>>
>>이렇게 되면,,
>>가상도메인이 많다면,,일일히 가상도메인 디렉토리마다 이런 옵션을
>>삽입해야 한다는 노가다적(?)인 결론이 나오는데????
>>
>>제가 뭣을 잘못했는지 잘 모르것는디유....??
>>위의 내용대신..메인서버섹션부분 ScriptAlias부분에다가..
>>
>>ScriptAlias /cgi-bin/ "/home/*/cgi-bin/"
>><Directory "home/cgi-bin">
>> ...
>> Options Ex...
>> ....
>></Directory>
>>하니깐 안되고, 말입니다..제가 알기로는 아파치에서..디렉토리
>>표시때,,/*/디렉토리가 작용하는 줄 알고 있는디 말입니당...
>>
>>그럼 아아아아안....뇽...
>>도와주세용....헤헤
>
>========================================
>
>다시 설명을 정리해야 겠군요...
>
>목표는
>
>- 주메인 DocumentRoot 와
>- 계정 사용자의 DocumentRoot
>
>에서 둘다 CGI를 허용하는게 맞죠?
>
>URL 주소는
>
>- http://www.domain.com/cgi-bin/
>- http://www.domain.com/~ID/cgi-bin/
>
>으로...
>
>[예를 들어]
>
>기본원칙은 ScriptAlias로 지정된 디렉토리에서는 모든 파일을
>스크립트로 간주하기 때문에 그림조차도 깨집니다..
>이점 명심하시고...
>
>/
>Options none
>
>대부분 이렇게 설정되어 있습니다.
>
>/home/httpd

/home/httpd/html

>Options ExecCGI
>
>ScriptAlias "/cgi-bin/" "/home/httpd/cgi-bin/"
>
>/home/httpd/cgi-bin
>Options ExecCGI
>
>일반적으로도 이렇게 많이 설정합니다..
>
>여기까지 설명을 하자면
>
>/home/httpd/cgi-bin 디렉토리는
>
>확실히 CGI가 실행됩니다. 단 그림은 깨집니다...이유를 아시겠죠?

/home/httpd/html

>그리고 /home/httpd 디렉토리는 CGI가 실행될 수 있으며


>이 디렉토리는 그림이 깨지지 않습니다....
>이 차이를 분명히 구별 해야합니다...
>
>DocumentRoot와 CGI-BIN 디렉토리를 서로 구별하는 이유는
>보안상 관례적으로 사용합니다.
>
>그다음 사용자 계정으로 가서..
>
>사용자 계정은 일반적으로 /home/ID/public_html 와 같은
>구조를 가집니다..
>따라서
>
>/home/httpd/html <--ExecCGI
>/home/ID
>
>의 디렉토리는 확연히 틀립니다.
>
>그래서 할 수 있는 방법은
>
>/home 디렉토리에 일괄적으로
>ExecCGI 옵션을 주거나 /home/ID/public_html
>에도 ExecCGI 옵션을 줘도 됩니다.
>
>각계정의 이름은 모두 틀리므로
>
><Directory "/home/*/public_html">
>Options ExecCGI
>...
></Directory>
>
>로 설정해 주면 그림도 깨지지 않고 CGI를 실행시킬수 있습니다.
>
>여기에서 주의할점은
>질문한대로
>굳지 /home/ID/cgi-bin 디렉토리만
>CGI를 실행시키게끔 하려면 모든 각 가상호스트 섹션에
>ScriptAlias를 추가해주거나 ExecCGI 옵션을 줘야합니다.
>말 그대로 노가다죠...
>
>만약 어떤 가상호스트에서 ScriptAlias 지시자를 추가하지 않고
>cgi-bin URL을 호출하면 주메인서버의 cgi-bin 디렉토리를 찾아갑니다.
>
>
>보안상이니 기타 이유로 CGIWrapper라는프로그램을 이용하는 법도
>있는데 굳지 이렇게까지 하지 않아도 될듯 하군요...
>
>
>정리하면,
>주 메인서버에
>
>ScriptAlias "/cgi-bin/" "......"
>
>로 설정하고
>각 가상호스트 섹션에 따로 ScriptAlias 지시자를 추가하지 않으면
>cgi-bin URL은 주 메인서버의 cgi-bin 디렉토리를 호출한 셈이됩니다.
>
>따라서 주 메인서버에서 ScriptAlias 지시자를 넣었다면
>각 가상호스트섹션에 ScriptAlias 지사자를넣어 따로 구별하든지
>아니면,
>주 메인서버에서 ScriptAlias지시자를 빼고
>각 가상호스트 섹션에는 ScriptAlias 지시자를 넣어줘야합니다.
>
>그외 방법이 또 있는데 (제가 권장하는 방법)
>굳지 ScriptAlias 지사자를 사용하지 않고
>(모두 뺍니다.)
>
>디렉토리 섹션옵션에서
>ExecCGI 옵션을 주면 됩니다.
>
><Directory "/home/*/public_html">
>...
>Options ExecCGI
>...
></Diretory>
>
>물론 /home/httpd/html
>에도 ExecCGI 옵션을 추가해야겠지요.
>
>디렉토리를 정의할때 정규표현식이 가능한데
>
><Directory ~ "/home/[a-zA-Z0-9]...">
>
>와 같이 정규표현식을 사용하겠다라고 "~" 문자를 앞에 적어주면
>됩니다.
>이때 틸트(~)는 사용자 계정이 아님에 주의.
>
>마지막으로
>
>옵션 나열시
>
>+나 -를 사용할 수 있는데
>이는 상위의 옵션을 그대로 이어와서
>현재의 디렉토리를 기준으로 상위의 디렉토리에서 ExecCGI 옵션이
>이미 들어가 있고 해당 디렉토리에서는 이 옵션을 빼려면
>
>-ExecCGI
>
>라고 설정하면 됩니다. 반대로
>상위의 디렉토리에서 이 옵션이 없고 해당 디렉토리에서는
>이 옵션을 추가하고 싶다면
>
>+ExecCGI
>
>라고 합니다.
>
>이때도 주의할 점이 있는데
>
>/home
>ExecCGI
>
>/home/ID/public_html
>ExecCGI
>
>와 같이 두번 걸치게 되면
>상위의 /home은 ExecCGI가 적용되지않는다고 나오군요.
>(모 책에서....나중에 직접테스트해 봐야겠군요...)
>
>*PS :
>너무 길게 설명해서 헷갈리수도 이겠군요....T.T

========================================


또 빼먹었군요...

ScriptAlias 지시자를 사용할경우에는
정규표현식을 사용할 수 없습니다.

질문했던 내용의 답변에 해당됩니다.

그리고

ScriptAliasMatch
라는 지시자를 이용해서 정규표현식을
사용할 수 있습니다.

[참고내용]
http://www.linuxchannel.net/docs/apache_manual/mod/mod_alias.html#scriptalias

ScriptAlias url-path directory-filename

ScriptAlias /cgi-bin/ /web/cgi-bin/


ScriptAliasMatch regex directory-filename

ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$

...


그외 mod_rewrie 모듈을 과 DNS 도움으로

각각의 가상호스트를 단 몇줄로 요약할 수 도 있있습니다.
(이곳 서버에 예가 있음 : 서버정보의 httpd.conf 파일 클릭
또는
http://www.linuxchannel.net/docs/apache_virtual_user_host.txt
)

그외 또 많이 있겠지요...
각각의 지시자를 꼼꼼히 테스트해 봐야하겠지요..
(정말 전문가가 되고 싶다면...전 아직 슈퍼전문가가 아니라서....)

아파치는 지시자가 150여개이므로 정말 설정하기도 어렵습니다.

*PS :
지금까지 제가 설명한 부분외의 방법은 정말 아파치 고급사용자나
사용하는 방법입니다.
저도 아직까지 그 단계는 아닌듯 하군요...

나중에 더 공부해서 아파치 사용자 가이드 초-중-고로 나누어 문서를
만들어볼까도 생각하고 있습니다..
(장담은 못하지만요...)

*PS :
저도 힘들겠지만 성공할때가지 질문해 주세요....
확실하게 이해할때까지 그리고 제가아는 수준까지
가르쳐 드리지요............

그럼 행운을 빌며..........

---------
2000년 11월 11일 21:52:32 토(저녁)  from 211.187.71.193
0
암호: 공용 보안 SSL 서버가 준비되기 전까지는 off 합니다

apache lighttpd linuxchannel.net 
Copyright 1997-2026. linuxchannel.net. All rights reserved.

Page loading: 3.24(server) + (network) + (browser) seconds