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

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

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

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

>문제의 씨쥐아이를 실행키 위해..
><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
Options ExecCGI

ScriptAlias "/cgi-bin/" "/home/httpd/cgi-bin/"

/home/httpd/cgi-bin
Options ExecCGI

일반적으로도 이렇게 많이 설정합니다..

여기까지 설명을 하자면

/home/httpd/cgi-bin 디렉토리는 

확실히 CGI가 실행됩니다. 단 그림은 깨집니다...이유를
 아시겠죠?
그리고 /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

 
이전글 : 문제는 설정 위치??..
다음글 : Re: Re: 문제는 설정 위치??..웁 오타가..  
 from 211.187.71.193
JS(Redhands)Board 0.4 +@

문제는 설정 위치??.. Re: Re: 문제는 설정 위치??..웁 오타가..
인쇄용 


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

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