> 안녕하세요...
> C와 MySql, Apache 연동을 공부하고 있습니다..
> C API로 짜서 컴파일을 하면 아무 에러도 없이
> 되거든요.. 근데 웹에만 올리면 인터널 서버 에러가
> 나옵니다.. 왜 그런거죠?
> 근데 CGI 부분 코드를 빼고 그냥 돌려보면 잘 돌아가거든요...
> 근데
> printf("Content-type:text/html
"); 요거만 넣고
> 웹에 올려도 에러가 납니다...
> 누구한테 몰어보니 무슨 모듈이 없어서 그렇다고 하던데...
> 잘 모르겠습니다..
>
> 아래 소스 코드 적어 볼께요......
>
> 메인함수....
>
> printf("Content-type:text/html
");
>
> if (!(mysql_connect(&mysql, NULL, "root","")))
> exiterr(0);
> puts("ok3");
>
> if (mysql_select_db(&mysql,"shopping"))
> exiterr(0);
> mysql_free_result(res);
> mysql_close(&mysql);
>
> -----------------------------
> 서브함수
>
> void exiterr(int exitcode)
> {
> fprintf( stderr, "%s
", mysql_error(&mysql) );
> exit( exitcode );
> }
>
>
> 부탁드릴께요...
>
> PCS: 019-588-5291
>
***********
저도 mysql에 대한 정보를 찾으러 잠시 들른건데,
주제넘게 답장을 쓰는게 아닌지 모르겠네요.
질문의 요지는
command상에서는 잘 되는데, web에서는 안되는가 인 것 같습니다.
위와 같은 경우는 대부분 환경이 다르기때문이죠.
즉, web으로 테스트하실 때에는 mysql의 library를 load할 수 없어서일겁니다.
그러므로 apache configuration file에서
library path들을 가지는 환경변수(일반적으로 LD_LIBRARY_PATH이죠)에
mysql library가 있는 path를 추가하고
테스트해 보시기 바랍니다.
환경변수에 값을 주려면 srm.conf파일에 (httpd.conf에 해도 되는지는 잘 모르겠네요.)
setenv LD_LIBRARY_PATH /usr/lib:/lib:/home/mysql/lib
와 같이 하면 될겁니다.
도움이 되었으면 좋겠네요.
|