답변이 상당히 늦었군요...
====
[김성민]님이 남기신 글:
>안녕하세요,
>
>
>버추얼 설정을 할때 cgi-bin 및 기타 설정은 UserDir 에서 지정된 것이 따라가는지 궁금합니다.
>
>ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
>ScriptAliasMatch ~(.+)/cgi-bin/(.+) "/home/$1/public_html/cgi-bin/$2"
>
><Directory "/usr/local/apache/cgi-bin">
>AllowOverride None
>Options None
>Order allow,deny
>Allow from all
></Directory>
>
><Directory "/home/*/public_html/cgi-bin">
>AllowOverride None
>Options ExecCGI
>Order allow,deny
>Allow from all
></Directory>
>
>이와 같이 설정되어 있을때 버추얼 설정을 하면 cgi-bin 디렉토리 설정이 그대로
>따라가는지 궁금합니다.
>
>
>ServerName abc.com
>
>--------생략---------
>NameVirtualHost abc.com
>
><VirtualHost sub.abc.com>
>ServerName sub.abc.com
>DocumentRoot /home/sub/public_html
><Directory "/home/*/public_html">
>AllowOverride None
>Options includesNoExec
>Order allow,deny
>Allow from all
></Directory>
>ScriptAliasMatch ~(.+)/cgi-bin/(.+) "/home/sub/public_html/cgi-bin/$2"
><Directory "/home/sub/public_html/cgi-bin">
>AllowOverride None
>Options ExecCGI
>Order allow,deny
>Allow from all
></Directory>
></VirtualHost>
>
>아니면 이와 같이 <VirtualHost> ~ </VitrualHost> 사이에 별도로 지정해 주어야 하나요?
>
------------->
전자의 경우가 맞습니다.
가상호스트 섹션마다 설정할 필요는 없습니다.
>
>ServerName abc.com
>
>--------생략---------
>NameVirtualHost abc.com
>
><VirtualHost sub.abc.com>
>ServerName sub.abc.com
>DocumentRoot /home/sub/public_html
>ScriptAlias /cgi-bin/ "/home/sub/public_html/cgi-bin/"
></VirtualHost>
>
>이와 같이 하니까 되기는 하는데, 맞는건지 모르겠습니다.
>ScriptAlias 만 지정해 주면 나머지는 UserDir 에서 지정한 속성들이 따라가는지, 아니면 다시 전부 설정해 줘야 하는지요..
>
>ScriptAlias /cgi-bin/ "/home/sub/public_html/cgi-bin/" 에서 sub 를 그냥 * 로 하면 안되지요?
>ScriptAlias /cgi-bin/ "/home/*/public_html/cgi-bin/" 해도 되나 해서요..
>
--------------->
ScriptAlias /cgi-bin/ "/home/*/public_html/cgi-bin/
위와같이 설정하면 틀립니다.
예를들어 http://sub.abc.com/~aaa/cgi-bin/
를 호출하면
http://sub.abc.com/cgi-bin/
을 호출한 경우가 되버립니다.
>
>
>그리고, 이와 같은 부분에서요.
>
><Files ~ "^\.ht">
>Order allow,deny
>Deny from all
></Files>
>
>만약
>
><Files ~ "^\.gif">
>Order allow,deny
>Deny from all
></Files>
>
>이러면 .gif 파일은 호출이 안된다는 말인가요? 그러면 여러개 설정할때는 구분은 어찌해야 할까요?
---->
위와같이 .gif에 deny 로 설정하면 클라이언트에서
.gif파일을 볼수 없습니다. 깨진 이미지처럼 보입니다.
그리고,
<Files ~ xxx>
에서 ~ 은 정규표현식을 사용한다는 의미입니다.
perl호환 정규표현식
*.gif, *.jpg, *.mp3 등을 deny로 설정하려면
^ : string의 처음부분
$ : string의 마지막부분
<Files ~ "\.(gif|jpg|mp3)$">
위와같이 하면됩니다.
즉, URL에서 *.gif, *.jpg, *.mp3와 같은 Files을 요청할경우라는 의미입니다.
(aaa|bbb|ccc|ddd)
| 은 또는(or)연산자입니다.
>
>제일 중요한 문제입니다.
>
>버추얼 설정을 하고난후 이런문제가 생겼습니다.
>
><VirtualHost sub.abc.com>
>ServerName sub.abc.com
>DocumentRoot /home/sub/public_html
></VirtualHost>
>
>이러고 http://sub.abc.com 은 되는데 실제 디렉토리는 /home/sub/public_html 이거든요?
>
>이 안에서 cgi-bin/count/count.cgi 가 있는데, 경로지정이 안됩니다.
>
>public_html 안에 main.html 이 있고, 이 파일에서 카운트 삽입할때
>
><iframe src="./cgi-bin/count/count.cgi"></iframe>
><iframe src="http://sub.abc.com/cgi-bin/count/count.cgi"></iframe>하면 안뜨고요.
>
><iframe src="http://abc.com/~sub/cgi-bin/count/count.cgi"></iframe>
>이러면 됩니다.
>
>이것이 아파치 설정과 관계가 있을까 해서요..
>
><VirtualHost sub.abc.com>
>ServerName sub.abc.com
>DocumentRoot /home/sub/public_html
>ScriptAlias /cgi-bin/ "/home/sub/public_html/cgi-bin/"
></VirtualHost>
>이와 같이 ScriptAlias 를 넣어주니까 되기는 합니다만, UserDir 에서 설정한 ScriptMatch 도 적용되는건지,
>별도로 지정해 줘야 하는지 모르겠습니다.
>
>xdns 라는 유동ip 연결하는 거 있는데 그걸로 연습하고 있습니다. 꼭좀 도와 주십시오....
이문제는 아주 오래된 예전의 기억이 나는군요.
그때 기억으로는
마찬가지로
ScriptAlias /cgi-bin/ "/home/sub/public_html/cgi-bin/"
했던 기억이 나는군요.
각 가상호스트 섹션마다 ScriptAlias나 ScriptAliasMatch를
넣지 말고
<iframe src="/~sub/cgi-bin/count/count.cgi">
위와같이 /~sub경로를 넣어보세요.
방금 해보니 잘되더군요.
======================================== |