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

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

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

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
321 번 글의 답장글: Re: Re: 문제는 설정 위치??..웁 오타가..
글쓴이: 산이 [홈페이지] 글쓴날: 2000년 11월 11일 21:52:32 토(저녁) 조회: 1748
[산이]님이 남기신 글:

>[산밑돌맹이]님이
 남기신 글:
>
>>문제의 씨쥐아이를 실행키 위해..
>><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#sc
riptalias

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 :
저도 힘들겠지만 성공할때가지 질문해 주세요....
확실하게 이해할때까지 그리고 제가아는 수준까지
가르쳐 드리지요............


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

---------

 
이전글 : Re: 문제는 설정 위치??..
다음글 : 가상호스트사용자 CGI실행에 대해  
 from 211.187.71.193
JS(Redhands)Board 0.4 +@

Re: 문제는 설정 위치??.. 가상호스트사용자 CGI실행에 대해
인쇄용 


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

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