Apache2 + tomcat6 연동후 php는 잘 돌아가는데 jsp는 안되는 경우..

ossin의 이미지

안녕하세요.. 주말동안 열심히 삽질중인 초보입니다;

우분투 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 에 같은 도메인으로 설정했는데
계속 소스가 출력됩니다

어딜 잘못했는지, 무슨문제인지 모르겠습니다
도와주세요;;

codebank의 이미지

제가 알기론 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번 문을 통해서 소통을 하는 것입니다.
이건 쉽게 설명하고자 이렇게 표현한 것이고 좀더 자세한 것은 네트워크 관련문서를
찾아보시는게 좋습니다.
------------------------------
좋은 하루 되세요.

------------------------------
좋은 하루 되세요.

ossin의 이미지

localhost:8080 에서는 정상적으로 JSP페이지가 뜹니다..
문제는 JK 커넥터 인거 같은데 아무리 설정을 바꿔줘도 에러는 안나는데
dev.tuffkid.net/index.jsp 하면 소스가 그대로 출력되네요

그냥 설치문서보다 JK 커넥터 설정 설명이 잘 나와있는 문서를 봐야할것 같은데
(다른사람들거 아무리 따라해봤자 이해도 안되고 설정도 안되고^^;)
관련 문서 찾기가 힘드네요

Necromancer의 이미지

일단 톰캣으로 직접 접속해보시고요.
톰캣은 직접설치하면 8080이지만, 8180으로 셋팅 바꿔서 패키징된것도 꽤 많습니다(우분투, 프비 등). 톰캣 띄운뒤에 netstat으로 확인하세요.
톰캣 직접접속시 제대로 표시된다면 연동문제고요.
404에러 났다면 jsp 잘못 올리신겁니다.
다른 에러났거나 소스 출력된다면 톰캣 자체가 문제가 있는거고요.

그리고 아파치와 톰캣 연동하면 아파치가 요청 받아서 jsp나 서블릿만 톰캣으로 넘기고, 이미지나 기타 다운로드용 zip 파일같은 것들은 자기가 직접 처리하는 식으로 갑니다.
아파치의 DocumentRoot와 톰캣의 ROOT Webapp 경로도 틀리니 확인해보세요.

Written by the Black Knight

Written By the Black Knight of Destruction

ossin의 이미지

톰캣으로 직접 접속하면 정상적으로 출력됩니다
근데 계정생성해서 하면 안되는군요 제 생각도 연동 문제 인것 같은데
딱히 apache2 tomcat6 연동하는데 필요한 문서를 찾기가 힘드네요
제가 보고했던 문서도 처음엔 잘나가다가 중간에 빠진부분이 많아
다른 문서에서 참고하다보니 꼬인것 같습니다

아파치나 톰캣 설치 후나 재시작 후에 에러는 전혀 없구요
근데 계정생성해서 index.php, index.jsp 만들어줬는데
DocumentRoot 는 상관없지않나요?

Necromancer의 이미지

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

ossin의 이미지

근데 아직 이해가 안가는부분이요
제가 aaa 라는 유저를 만들면 /home/aaa 가 생기고
그 안에 www/ 디렉토리를 만들고 index.php, index.jsp 하면
실행이 되잖아요?

실제로 documentRoot 나 webapps/ROOT 인가 거기에 생성이 안되고
각 유저의 하위 디렉토리에 생성이 되는데
그래도 documentRoot 패스가 상관이 있는건가요

제가 설치하고 apache2.conf 에서 DocumentRoot 경로를 톰캣ROOT로 변경을 안해줬거든요

kwon37xi의 이미지

Tomcat에 직접 접속했을 때는 잘 된다면 Apache-Tomcat간 연동이 잘못된 것입니다.

링크만 주셔서는 사태 파악이 힘들고요, http://kwon37xi.egloos.com/1761178 이걸 참조해 보세요.

ossin의 이미지

참조해서 해볼께요~

다콘의 이미지

개인적으로 mod_jk는 별로 추천하고 싶지 않습니다.
접속자가 많아지면 mod_jk가 부하의 주범이 됩니다.

아마도 mod_proxy_ajp는 기본으로 있을거 같은데 차라리 이걸 쓰세요.
http://kichis.tistory.com/11

ossin의 이미지

글을 읽어보니 mod_jk 보다 연동방법이 간단한것 같은데요
저는 데스크탑버전에서 시냅틱 관리자로 설치할건데
똑같이 연동해도 괜찮을까요?

ossin의 이미지

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를 다시 안해줬길래 전 해줬구요;)

sudo a2enmod proxy_ajp
/etc/init.d/apache2 restart
sudo a2enmod rewrite
/etc/init.d/apache2 restart
 
sudo gedit /etc/apache2/sites-available/default
 
   DocumentRoot /var/www/
아래내용 추가
   RewriteEngine On
   RewriteLog /var/log/apache2/mod_proxy_ajp.log
   RewriteLogLevel 9
   RewriteCond %{REQUEST_FILENAME} .jsp
   RewriteRule (.*) ajp://localhost:8009$1 [P]
여기까지
그 문서에서 다른부분은 아래 부분인데요
==========================================================================================
문서부분)
> cd /opt/tomcat/webapps/ROOT  (ROOT까지 들어가면 mv ROOT ROOT.old 가 먹히지 않음 그래서 webapps/ 까지만 들어가서함)
> mv ROOT ROOT.old  (mv 하고 ROOT 가 없어짐.. 아래 심볼릭링크가 안되고 카피도 안됨;)
> ln -s /var/www /opt/tomcat/webapps/ROOT 
> cp -r /opt/tomcat/webapps/ROOT.old/WEB-INF/ /opt/tomcat/webapps/ROOT/WEB-INF (WEB-INF가 없고 META-INF가 있음.. META-INF 안에는 context.xml 하나만 있음;;)
----------------------------------------------
제가 한부분)
cd /var/lib/tomcat6/webapps/ 
mv ROOT ROOT.old
mkdir ROOT 
ln -s /var/www/ /var/lib/tomcat6/webapps/ROOT
cp -r /var/lib/tomcat6/webapps/ROOT.old/META-INF /var/lib/tomcat6/webapps/ROOT/META-INF
==========================================================================================

하고 아파치, 톰캣 스톱, 톰캣, 아파치 재시작 했습니다
도와주세요ㅜㅜ

P.S : 방금 같은 디렉토리에(/var/www/) test.php 파일을 만들어서 localhost/test.php 접속했는데
phpinfo() 잘 나오구요
echo 도 잘 찍히네요.ㅠ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.