CGI 실행이 안되는데 한 번 봐주세요!! 정보
CGI 실행이 안되는데 한 번 봐주세요!!
본문
포인트가 부족해서 질문게시판도 이용 못하고 자게에 계속 질문을 드려서 죄송합니다.
제가 완전 초짜라서 서버 다루기가 힘드네요...
제가 아래 팁을 보고 CentOS 서버에서 CGI 설정을 했는데 실행이 안되고
소스가 그대로 노출이 되는데요.
http://sir.co.kr/bbs/board.php?bo_table=tip_linux&wr_id=469&page=3
etc/httpd/conf/httpd.conf 파일에서 cgi 부분을 찾아서 다음과 같이 수정을 했습니다.
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
AddHandler cgi-script .cgi
[Directory / ]
Options FollowSymLinks
AllowOverride None
[/Directory]
[Directory /home]
Options Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
[/Directory]
<> 가 안먹혀서 []로 썼습니다.
그리고 재부팅을 했는데 cgi 스크립트가 실행이 되지 않고,
다운로드가 되거나 소스가 그대로 보여지네요.
어디를 잘못 한걸까요?
고수님들 답변 주시면 감사드리겠습니다. (꾸벅!)
추천
0
0
댓글 11개

[Directory /home] 을 [Directory /home/*] 으로 바꾸고 아파치 재스타팅해보세요
해당 cgi 파일이 /home 밑에 있다는 가정하에..
해당 cgi 파일이 /home 밑에 있다는 가정하에..

[Directory /home/*] 이렇게 변경해도 안되는데요.
다시 httpd.conf 을 살펴보니
아래와 같이 cgi-bin 경로가 설정된 부분이 있더라구요.
이것 때문에 위에서 설정한 것과 충돌을 일으키는 것 같은데 어떻게 수정해줘야 될지요?
위에서 설정한 것은 /home 밑에 있는 cgi는 전부 실행, 아래 설정은 cgi-bin 에서만 실행하라 이런 명령 같은데....
참고로 cgi 가 있는 폴더는 /home/test/cgicounter 입니다.
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
[Directory "/var/www/cgi-bin"]
AllowOverride None
Options None
Order allow,deny
Allow from all
[/Directory]
AddHandler cgi-script .cgi
[Directory / ]
Options FollowSymLinks
AllowOverride None
[/Directory]
[Directory /home]
Options Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
[/Directory]
다시 httpd.conf 을 살펴보니
아래와 같이 cgi-bin 경로가 설정된 부분이 있더라구요.
이것 때문에 위에서 설정한 것과 충돌을 일으키는 것 같은데 어떻게 수정해줘야 될지요?
위에서 설정한 것은 /home 밑에 있는 cgi는 전부 실행, 아래 설정은 cgi-bin 에서만 실행하라 이런 명령 같은데....
참고로 cgi 가 있는 폴더는 /home/test/cgicounter 입니다.
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#
# "/var/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
[Directory "/var/www/cgi-bin"]
AllowOverride None
Options None
Order allow,deny
Allow from all
[/Directory]
AddHandler cgi-script .cgi
[Directory / ]
Options FollowSymLinks
AllowOverride None
[/Directory]
[Directory /home]
Options Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
[/Directory]

그리고 아파치를 재부팅 해도 바뀐 설정으로 적용되지 않는 것 같습니다.
이런 경우도 있나요?
바뀐 설정으로 적용이 되지 않아서 cgi 가 안먹히는 것 같은데..
이런 경우도 있나요?
바뀐 설정으로 적용이 되지 않아서 cgi 가 안먹히는 것 같은데..

소스로 설치된 아파치인가요 ? 아니면 yum 으로 설치된 아파치인가요 ?
yum 이라면 /etc/httpd/conf/httpd.conf 이고
소스라면 설치된 아파치경로/conf/httpd.conf 입니다...
직접 서버상황을 봐야 알것 같습니다.
yum 이라면 /etc/httpd/conf/httpd.conf 이고
소스라면 설치된 아파치경로/conf/httpd.conf 입니다...
직접 서버상황을 봐야 알것 같습니다.

/etc/httpd/conf/httpd.conf 여기구요.
아파치를 재부팅해도 적용이 안되는 것 같아요. 재부팅 자체에 문제가 있는듯..
아파치를 재부팅해도 적용이 안되는 것 같아요. 재부팅 자체에 문제가 있는듯..

흠..서버 안의 상황을 보기전에는 정답을 모를것 같습니다.
말씀드리기에는 너무 많은 조합의 경우가 있네요.
말씀드리기에는 너무 많은 조합의 경우가 있네요.

다시 찾아보니 httpd.conf 파일이 2군데 있더군요.
말씀해주신 것처럼 user/local/apache2/conf/httpd.conf 에도 파일이 있어서 여기에서 cgi 관련 내용을 수정하고, 재부팅을 해주니 잘됩니다.
버추얼호스트는 /etc/httpd/conf/httpd.conf 에서 설정했는데 cgi 는 user/local/apache2/conf/httpd.conf 에서 설정하고...
좀 이상합니다.
원래 2개의 파일을 전부 사용해도 상관없는건가요?
말씀해주신 것처럼 user/local/apache2/conf/httpd.conf 에도 파일이 있어서 여기에서 cgi 관련 내용을 수정하고, 재부팅을 해주니 잘됩니다.
버추얼호스트는 /etc/httpd/conf/httpd.conf 에서 설정했는데 cgi 는 user/local/apache2/conf/httpd.conf 에서 설정하고...
좀 이상합니다.
원래 2개의 파일을 전부 사용해도 상관없는건가요?


다시 찾아보니 httpd.conf 파일이 2군데 있더군요.
나머지 하나도 수정해주니까 됩니다.
그런데 서버내에서 2개의 httpd.conf 를 사용해도 괜찮은지 궁금합니다.
나머지 하나도 수정해주니까 됩니다.
그런데 서버내에서 2개의 httpd.conf 를 사용해도 괜찮은지 궁금합니다.

아니오 둘 중 하나는 소용없습니다.
아파치 서버 재스타팅 할 떄 /usr/local/apache2/bin/apachectl restart 로 하시는지
/etc/init.d/httpd restart 로 하시는지 아니면 잘 몰라서 서버자체를 재부팅 하시는지도 현재 상황으로는 잘 모르겠습니다.
만일 usr/local/apache2/bin/apachectl restart 로 하신다면
/usr/local/apache2/conf/httpd.conf 파일이나 /usr/local/apache2/extra/virtual어쩌구 파일에 가상호스트 설정이 있을겁니다.
만일 /etc/init.d/httpd restart 로 하신다면
보통은 package 로 설치된 apache 입니다
환경설정파일은 /etc/httpd/conf 또는 /etc/httpd/conf.d 에 있습니다.
하지만 소스로 설치하고 /etc/init.d/httpd 스크립트를 수정한 경우도 있습니다. 이때는 소스 설치한 아파치가 작동하니 /usr/local/apache2 쪽의 환경설정 파일을 만져줘야 됩니다.
이부분을 확실히 보시고 본인이 어떻게 재스타팅 하는지 알면 둘 중 하나를 안쓰시면 됩니다.
글로 쓰기 너무 힘드네요.. 전 여기까지만 하겠습니다.
세세하게 들어가면 말로해도 수십분 떠들어야 될 분량이라서요.
아파치 서버 재스타팅 할 떄 /usr/local/apache2/bin/apachectl restart 로 하시는지
/etc/init.d/httpd restart 로 하시는지 아니면 잘 몰라서 서버자체를 재부팅 하시는지도 현재 상황으로는 잘 모르겠습니다.
만일 usr/local/apache2/bin/apachectl restart 로 하신다면
/usr/local/apache2/conf/httpd.conf 파일이나 /usr/local/apache2/extra/virtual어쩌구 파일에 가상호스트 설정이 있을겁니다.
만일 /etc/init.d/httpd restart 로 하신다면
보통은 package 로 설치된 apache 입니다
환경설정파일은 /etc/httpd/conf 또는 /etc/httpd/conf.d 에 있습니다.
하지만 소스로 설치하고 /etc/init.d/httpd 스크립트를 수정한 경우도 있습니다. 이때는 소스 설치한 아파치가 작동하니 /usr/local/apache2 쪽의 환경설정 파일을 만져줘야 됩니다.
이부분을 확실히 보시고 본인이 어떻게 재스타팅 하는지 알면 둘 중 하나를 안쓰시면 됩니다.
글로 쓰기 너무 힘드네요.. 전 여기까지만 하겠습니다.
세세하게 들어가면 말로해도 수십분 떠들어야 될 분량이라서요.

계속 질문 드려서 죄송합니다.
처음에 /etc/httpd/conf/httpd.conf 에서 CGI관련 파일을 수정하고 service httpd restart라는 명령어를 사용했습니다.
결과는 CGI 실행 안됨...
그리고 modsecurity 설치 때문에 /usr/local/apache2/conf/httpd.conf 파일을 만지다가 CGI설정까지 해주고 /usr/local/apache2/bin/apachectl restart 로 하니까 CGI파일이 실행 되더라군요.
그런데 버추얼호스트는 /usr/local/apache2/conf/httpd.conf 에는 전혀 없구요.
이쪽에 /etc/httpd/conf/httpd.conf 에 설정을 했습니다.
.com, .net, .org 3개의 도메인을 하나의 홈페이지에 연결해서 쓰고 있습니다.
그리고 재부팅할 때 2개 명령어가 다 먹힙니다.
/etc/init.d/httpd restart
/usr/local/apache2/bin/apachectl restart
둘 중에 도대체 어느 것을 지워야할지 모르겠네요.
/etc/httpd/conf/httpd.conf 파일을 지우고,
/usr/local/apache2/conf/httpd.conf 에서 버추얼호스트를 추가로 설정해주면 될까요?
OS하고 APM를 호스팅업체에서 설치해 준 것라서 정확한 내용은 모릅니다.
주말이라서 고객게시판도 안되고...
처음에 /etc/httpd/conf/httpd.conf 에서 CGI관련 파일을 수정하고 service httpd restart라는 명령어를 사용했습니다.
결과는 CGI 실행 안됨...
그리고 modsecurity 설치 때문에 /usr/local/apache2/conf/httpd.conf 파일을 만지다가 CGI설정까지 해주고 /usr/local/apache2/bin/apachectl restart 로 하니까 CGI파일이 실행 되더라군요.
그런데 버추얼호스트는 /usr/local/apache2/conf/httpd.conf 에는 전혀 없구요.
이쪽에 /etc/httpd/conf/httpd.conf 에 설정을 했습니다.
.com, .net, .org 3개의 도메인을 하나의 홈페이지에 연결해서 쓰고 있습니다.
그리고 재부팅할 때 2개 명령어가 다 먹힙니다.
/etc/init.d/httpd restart
/usr/local/apache2/bin/apachectl restart
둘 중에 도대체 어느 것을 지워야할지 모르겠네요.
/etc/httpd/conf/httpd.conf 파일을 지우고,
/usr/local/apache2/conf/httpd.conf 에서 버추얼호스트를 추가로 설정해주면 될까요?
OS하고 APM를 호스팅업체에서 설치해 준 것라서 정확한 내용은 모릅니다.
주말이라서 고객게시판도 안되고...