일반계정의 CGI 실행문제.. 몇주째야 이거.. ㅠ.ㅜ
안녕하세요.
에겅.. 이문제 때문에 몇주일 씨름하고 있습니다. ㅠ.ㅜ
검색을 하면 나올것도 같은데.. 왜 이렇게 찾기가 힘든지.. ㅜ.ㅜ
제 문제는 이렇습니다.
처음에 유저를 생성하구요.
아파치에서 그 유저의 폴더에서 cgi 를 실행하려 합니다.
public_html 디렉토리 설정에
Option ExecCGI 도 주고
----------------------
<Directory "/home/*/public_html">
Options ExecCGI
AllowOverride None
Allow from from all
Order allow,deny
</Directory>
----------------------
addhandler CGI-Script .cgi 요거 주석도 제거하고..
그런데 나오는것은 500 internal server error 뿐..
재밌는것은 /var/www/cgi-bin/ 에서는 잘 실행이 됩니다.
더 재밌는것은..
httpd.conf 에 보면 /var/www/cgi-bin 디렉토리 설정이
있더라구요.
----------------------
<Directory "/var/www/cgi-bin">
Options ExecCGI
AllowOverride None
Allow from from all
Order allow,deny
</Directory>
----------------------
이 부분을 모두 주석처리 했는데도
cgi-bin 에선 cgi 가 잘돌아 갑니다.
도데체 왜 유저 디렉토리에선 cgi 가 안돌아가는 걸까요?
뭔가 다른 설정이 있나요?
제 httpd.conf 파일 올립니다.
httpd.conf < 클릭![/url]
500 internal error 는 대부분 소스의 문제입니다.c
500 internal error 는 대부분 소스의 문제입니다.
cgi 소스중에 디렉토리 들어간 부분을 잘 살펴보세요.
절대경로 같은 것이 /cgi-bin 로 되어 있을것 같네요.
그리고 에러 로그 파일을 참조하시거나 스크립트 구문
테스트를 한번 해보시구요.
아니면 httpd.conf의
scriptalias /cgi-bin/ "/var/www/cgi-bin/"
이 부분을 주석처리하고 개인 디렉에 /cgi-bin/ 디렉
을 만들고 거기 넣어서 테스트 해보세요.
도움이 되었으면 좋겠군요.
답변 감사합니다.
안녕하세요~
제가 사용한 CGI 소스는 ..
그 기초적인거 있잖아요~
Hello World 나오는.. 아주 기초적인거요..
말씀주신대로 해봤는데..
역시나 인터널 에러가 납니다.
사용자 설정에 뭔가 문제가 있나본데..
기본디렉토리인 /var/www/cgi-bin/ 에서는
잘 실행이 되는데..
왜 유저디렉토리인 /home/*/public_html 에서는 실행이 안될까요 ㅠㅠ
설정도 문제가 없는거 같은데..
suEXEC 문제때문인거 같습니다.
아무래도 suEXEC 문제인거 같습니다.
suEXEC.log 를 살펴보니깐
[2004-02-08 01:42:40]: uid: (500/gutmart) gid: (500/500) cmd: index.cgi
[2004-02-08 01:42:40]: target uid/gid (500/500) mismatch with directory (0/0) or program (0/0)
이런 로그가 뜨네요.
검색을 해보니까
라고 하셨는데.. httpd.conf 에서 바꾸는 건가요?
owner , group 을 바꾸는 방법좀 가르쳐 주세요
이럴 경우에 디버깅 하는 요령은아파치를 싱글모드로 띄운 다음gdb
이럴 경우에 디버깅 하는 요령은
아파치를 싱글모드로 띄운 다음
gdb나 strace ltrace를 걸어 보는 방법이 좋습니다.
httpd -X 옵션을 두면 아파치가 하나만 실행 됩니다.
그리고 나서 ps -ef | grep httpd를 해서 pid를 얻은 다음 디버거나 트레이스를 걸어 줍니다. 그러고 나서
문제가 있는 cgi를 실행을 하면 트레이스가 떠 질것입니다.
지금의 경우엔 suEXEC란게 문제란 것을 아셨으니 해결을 보면 되겠지만요..
http://www.ezdoum.com/write.php?rid=02/08/17/6349113&where=stories.php?story=02/08/17/3254153&cmode=&comment_sort=asc&p=1
저는 이런식으로 디버깅 해 봅니다.
아래의 글도 도움이 되겠군요.
디버깅 이야기: strace, truss, tusc
http://bbs.kldp.org/viewtopic.php?t=1045&highlight=truss
그럼 원하시는 바를 얻으시길
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
으헉!..
답변 감사합니다.
제가 디버깅이란것도 해야 하는건가요?
아직 내공이 부족하여 성심껏 써주신 글이 무슨말인지 하나도 모르겠다는 ㅠㅠ
디버깅이란것도 공부해야겠군요!
유저계정에서 CGI 돌리기가 이렇게 어려운것인지는 정말 몰랐네요 ㅜㅜ
소스도 문제 없고 아파치 설정에도 문제가 없다면...
content-type 에 문제가 있을 수도 있네요..
소스에서 문자를 출력하기 전에 다음을 먼저 출력한 후 출력해 보세요..
뒤에 \n 은 반드시 2번 들어가야 합니다..
댓글 달기