Apache2 + tomcat6 연동후 php는 잘 돌아가는데 jsp는 안되는 경우..
글쓴이: ossin / 작성시간: 월, 2009/03/16 - 1:13오전
안녕하세요.. 주말동안 열심히 삽질중인 초보입니다;
우분투 8.10에서 시냅틱 꾸러미 관리자로 apache, php, mysql, sun-java6-jdk, tomcat6 설치후
http://duddns.springnote.com/pages/422280 이 문서대로 설정 했습니다
jk 모듈 잘 올라왔구요
apache, tomcat restart 해줬습니다;
그런데 http://localhost/index.php 는 잘 되는데
http://localhost/index.jsp 는 소스가 그대로 출력되네요..
이 도메인으로 접속하면 보실 수 있습니다;
http://dev.tuffkid.net/index.php
http://dev.tuffkid.net/index.jsp
JAVA_HOME 이랑
CATALINA_HOME 은 다른 문서를 참조해서 했고요
server.xml 에 같은 도메인으로 설정했는데
계속 소스가 출력됩니다
어딜 잘못했는지, 무슨문제인지 모르겠습니다
도와주세요;;
Forums:
tomcat...
제가 알기론 tomcat도 일종의 httpd으로 알고 있습니다.
즉, apache가 80 포트를 사용함으로 tomcat과 같이 사용하려면 둘중의 하나의 포트는
다른 포트를 지정해야한다는 소리지요.
첫번째 참고하신 링크에도 나와있지만 tomcat설치시 기본 포트는 8180으로 된다고
합니다.
그러니 jsp의 결과를 보실려면
http://localhost:8180/index.jsp
으로 하시던가 문서에 나와있듯이
http://localhsot:8080/index.jsp
으로 접근하셔야합니다.
P.S. : jsp소스가 그대로 출력되는 이유는 해당 소스가 변환이 이루어져 html문서로
만들어지지 않은 이유입니다. 즉, apache포트(80)로 접근(http://localhost/)했기때문에
apache에서는 jsp를 분석해서 변환해주는 부분이 없어서 소스를 그대로 출력하는
것입니다.
위 사이트는 apache와 tomcat을 무리없이 설치하는 방법을 보여준 것이지 apache에
tomcat을 포함시키는 것을 보여주는게 아닙니다.
apache나 tomcat은 같은 일을하는(내부에서 서로 다른 언어를 받아들여 동일한 포맷을 출력
하기는 하지만...) http서버이기 때문에 같은 포트를 사용할 수 없고 다른 포트를
사용해야합니다. 그래서 apache는 기본포트 80을 사용하는 것이고 tomcat은 8080또는 8180을
사용하는 것입니다.
포트는 간단하게 설명하면 출입문같은 것입니다. 즉, apache는 80번 문을 이용해서
소통을 하는 것이고 tomcat은 8080번 문을 통해서 소통을 하는 것입니다.
이건 쉽게 설명하고자 이렇게 표현한 것이고 좀더 자세한 것은 네트워크 관련문서를
찾아보시는게 좋습니다.
------------------------------
좋은 하루 되세요.
------------------------------
좋은 하루 되세요.
답변감사드립니다^^;
localhost:8080 에서는 정상적으로 JSP페이지가 뜹니다..
문제는 JK 커넥터 인거 같은데 아무리 설정을 바꿔줘도 에러는 안나는데
dev.tuffkid.net/index.jsp 하면 소스가 그대로 출력되네요
그냥 설치문서보다 JK 커넥터 설정 설명이 잘 나와있는 문서를 봐야할것 같은데
(다른사람들거 아무리 따라해봤자 이해도 안되고 설정도 안되고^^;)
관련 문서 찾기가 힘드네요
일단 톰캣으로 직접
일단 톰캣으로 직접 접속해보시고요.
톰캣은 직접설치하면 8080이지만, 8180으로 셋팅 바꿔서 패키징된것도 꽤 많습니다(우분투, 프비 등). 톰캣 띄운뒤에 netstat으로 확인하세요.
톰캣 직접접속시 제대로 표시된다면 연동문제고요.
404에러 났다면 jsp 잘못 올리신겁니다.
다른 에러났거나 소스 출력된다면 톰캣 자체가 문제가 있는거고요.
그리고 아파치와 톰캣 연동하면 아파치가 요청 받아서 jsp나 서블릿만 톰캣으로 넘기고, 이미지나 기타 다운로드용 zip 파일같은 것들은 자기가 직접 처리하는 식으로 갑니다.
아파치의 DocumentRoot와 톰캣의 ROOT Webapp 경로도 틀리니 확인해보세요.
Written by the Black Knight
Written By the Black Knight of Destruction
답변감사드립니다^^
톰캣으로 직접 접속하면 정상적으로 출력됩니다
근데 계정생성해서 하면 안되는군요 제 생각도 연동 문제 인것 같은데
딱히 apache2 tomcat6 연동하는데 필요한 문서를 찾기가 힘드네요
제가 보고했던 문서도 처음엔 잘나가다가 중간에 빠진부분이 많아
다른 문서에서 참고하다보니 꼬인것 같습니다
아파치나 톰캣 설치 후나 재시작 후에 에러는 전혀 없구요
근데 계정생성해서 index.php, index.jsp 만들어줬는데
DocumentRoot 는 상관없지않나요?
DocumentRoot -> html, php,
DocumentRoot -> html, php, gif, jpg, png (아파치 관할)
ROOT webapp -> jsp, java class, web.xml과 기타관련파일 (톰캣 관할)
웹에서는 같은경로상에 있더라도 실제서버에서 php와 jsp파일의 위치는 엄연히 다릅니다.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
답변감사드립니다~
근데 아직 이해가 안가는부분이요
제가 aaa 라는 유저를 만들면 /home/aaa 가 생기고
그 안에 www/ 디렉토리를 만들고 index.php, index.jsp 하면
실행이 되잖아요?
실제로 documentRoot 나 webapps/ROOT 인가 거기에 생성이 안되고
각 유저의 하위 디렉토리에 생성이 되는데
그래도 documentRoot 패스가 상관이 있는건가요
제가 설치하고 apache2.conf 에서 DocumentRoot 경로를 톰캣ROOT로 변경을 안해줬거든요
.
Tomcat에 직접 접속했을 때는 잘 된다면 Apache-Tomcat간 연동이 잘못된 것입니다.
링크만 주셔서는 사태 파악이 힘들고요, http://kwon37xi.egloos.com/1761178 이걸 참조해 보세요.
http://kwon37xi.egloos.com
답변감사합니다
참조해서 해볼께요~
개인적으로 mod_jk는
개인적으로 mod_jk는 별로 추천하고 싶지 않습니다.
접속자가 많아지면 mod_jk가 부하의 주범이 됩니다.
아마도 mod_proxy_ajp는 기본으로 있을거 같은데 차라리 이걸 쓰세요.
http://kichis.tistory.com/11
http://star4u.org
http://mirror.star4u.org
답변 우선 감사드립니다
글을 읽어보니 mod_jk 보다 연동방법이 간단한것 같은데요
저는 데스크탑버전에서 시냅틱 관리자로 설치할건데
똑같이 연동해도 괜찮을까요?
다콘님 방금 다 설치했는데요~
localhost 하면 /var/www it works! 뜨구요
localhost:8080 은 연동전에는 떴는데 지금은 안뜨구요(404) 나옴 (이게 정상인거같기도;)
그리고 중요한건 문서에 의하면
localhost/test.jsp (/var/www/test.jsp 에 만들었습니다)
생성했는데
Forbidden
You don't have permission to access /test.jsp on this server.
Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.1 with Suhosin-Patch Server at 192.168.0.11 Port 80
이게 뜨네요
그래서 /var/www/test.jsp 파일을 chmod -R 707 test.jsp 해줬는데도
계속 포비든 에러가 뜹니다..;
뭐가 잘못된걸까요?
문서에는 cp -r /var/lib/tomcat6/webapps/ROOT.old/WEB-INF 를 복사하라고 나왔는데
저는 WEB-INF 대신 META-INF 만 있길래
cp -r /var/lib/tomcat6/webapps/ROOT.old/META-INF 를
cp -r /var/lib/tomcat6/webapps/ROOT/META-INF 로 복사했습니다
(문서에 mv ROOT ROOT.old 하고 mkdir ROOT를 다시 안해줬길래 전 해줬구요;)
하고 아파치, 톰캣 스톱, 톰캣, 아파치 재시작 했습니다
도와주세요ㅜㅜ
P.S : 방금 같은 디렉토리에(/var/www/) test.php 파일을 만들어서 localhost/test.php 접속했는데
phpinfo() 잘 나오구요
echo 도 잘 찍히네요.ㅠ
댓글 달기