Railo Express(based Jetty)에 Querqus(Java PHP interpreter)를 적용하기

여러차례 소개한바 있지만 Querqus는 Java로 만들어진 PHP해석기이며 Resin으로 유명한 Caucho에서 개발배포하고 있습니다. 일반적으로 웹호스팅 환경에서는 네이티브PHP와 JSP/Servlet를 위한 서블릿엔진(Tomcat, Resin 등등)을 따로 설치하여 제공하여 어느 언어던지 이용하는데 불편함은 없지만 같은 환경에서 사용할 수 있더라도 둘다 같은 Java기반으로 돌아간다면 세션공유 등의 잇점이 있습니다.

많은 장점에도 불구하고 네이티브 PHP만큼 확실하게 지원되지 않거나 차이가 나는 점 때문에 Querqus를 지원하는 PHP웹어플리케이션이 국내에서는 전무하다시피 합니다. 가령 MySQL연결도 네이티브PHP는 함수로 연결하는 반면, QUerqus를 통해 Java기반으로 서비스한다면 JDBC를 통해 연결하는 등 약간씩의 방식적인 차이가 있으니까요.

Railo와 같은 ColdFusion도 역시나 Java기반의 엔진들이이기에 Querqus도 그것들처럼 적용하면 ColdFusion와 PHP, JSP를 하나의 단일 서버에서 단일 WAS로 서비스하는 (그래서 세션까지도 공유해버리는) 시나리오가 가능해 집니다.

Railo Express는 빠른 실행을 목적으로 개발시 유용한 도구 또는 내부 인트라용으로 사용되기 위한 버전입니다. Railo Server가 Tomcat을 내장하고 있다면 Railo Express는 Jetty를 내장하고 있습니다. (Railo 3.X초반대의 버전에서는 둘다 Resin을 사용하기도 했습니다.)

간단하게 Railo Express에 Querqus를 적용해 봅시다.  먼저 Railo Express를 다운로드 합니다. 여기서는 Windows환경에서 테스트하지만 Linux나 Mac에서도 동일하게 적용됩니다.

Railo Express 다운로드 : http://www.getrailo.org/index.cfm/download/ 
(현재 최신버전은 railo-express-4.0.3.006-jre-win32.zip)

Railo Express의 압축을 풀고 start.bat파일을 더블클릭하여 브라우저에서 http://127.0.0.1:8888 를 접속하여  정상 실행되는지 확인합니다.

Querqus 다운로드 : http://quercus.caucho.com/ 
(현재 최신버전은 Quercus 4.0.25입니다.)

이제 Querqus를 다운드하여 war파일을 압축유틸리티(7zip 등)로 압축을 풀고, quercus-4.0.25\WEB-INF\lib안의 다음 4가지 파일을 복사하여 railo-express-4.0.3.006-jre-win32\lib\ext 폴더안에 복사해 줍니다.   

cdi-16.jar
javaee-16.jar
javamail-141.jar
resin.jar

위 파일들을 복사한 후 Railo Express에 환경설정을 추가해 줍니다. 서블릿매핑(Servlet Mapping)를 해줘야 하는데요. railo-express-4.0.3.006-jre-win32\etc안의 webdefault.xml 파일을 수정합니다. 이 파일을 메모장 등으로 열고 다음의 코드를 Railo Definitions End 부분 바로 위에 추가해 줍니다. 위치는 크게 상관없지만 보기좋게 MessageBrokerServlet 바로 다음에 넣어두도록 합시다. 

railo-express-4.0.3.006-jre-win32\etc\webdefault.xml 

  <servlet-mapping>
    <servlet-name>MessageBrokerServlet</servlet-name>
    <url-pattern>/flex2gateway/*</url-pattern>
    <url-pattern>/flashservices/gateway/*</url-pattern>
    <url-pattern>/messagebroker/*</url-pattern>
  </servlet-mapping>
  
  <!--  Resin Quercus Servlet를 추가합니다. -->
  <servlet id="Quercus Servlet">
    <description>Quercus Servlet</description>
    <servlet-name>Quercus Servlet</servlet-name>
    <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Quercus Servlet</servlet-name>
    <url-pattern>*.php</url-pattern>
  </servlet-mapping> 
  <!--  Resin Quercus Servlet를 추가합니다. -->	
  
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!--                                                 Railo Definitions End -->  
  <!-- ===================================================================== -->
  <!-- _____________________________________________________________________ -->

그리고 webdefault.xml 파일을 좀 아래로 내려서 <welcome-file-list>에도 다음의 코드를 추가합니다.

  <welcome-file-list>
    <welcome-file>index.cfm</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
	<!-- index.php를 추가합니다. -->
	<welcome-file>index.php</welcome-file>
    <!-- welcome-file>index.jsp</welcome-file !-->
  </welcome-file-list>

자, 이제 마지막으로 railo-express-4.0.3.006-jre-win32\webapps\railo안에 index.php 파일을 하나 만듭시다. 간단하게 phpinfo()를 만들어서 http://127.0.0.1:8888/index.php 로 접속했을때 아래와 같은 그림이 나온다면 이제 PHP를 실행할 수 있습니다.  

참조 : http://blog.fedecarg.com/2009/01/04/running-quercus-in-jetty-web-server/

There are no comments yet. - 아직 댓글이 없습니다.

Leave a Comment

Leave this field empty:




Powered by

© 2010-2018 NOOREE.COM