Skip to main content

PHP in GlassFish using Caucho Quercus

Posted by arungupta on August 24, 2007 at 6:07 AM PDT

Quercus is
Caucho Technology's 100% Java implementation of
PHP 5. Ludo

described the steps
to deploy PHP web applications on
GlassFish. Caucho has released a new
version of Quercus since then. This blog
entry is an update to the

steps described earlier
.

  1. First, PHP-enable GlassFish.
    1. Unjar
      quercus-3.1.1.war
      and copy the JAR files in "WEB-INF/lib"
      directory to "GLASSFISH_HOME/domains/domain/lib" directory. That's it!
      Although the original entry requires to copy the JARs in "GLASSFISH_HOME/lib/addons"
      directory but that
      didn't work.
  2. Create a PHP web application
    1. Create a new Web application project, lets say "hellophp",
      using NetBeans IDE and choose
      GlassFish as the server.
    2. Replace the contents of "web.xml" with the following fragment:



      <?xml version="1.0" encoding="UTF-8"?>

      <web-app xmlns="http://java.sun.com/xml/ns/javaee"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

       
      version="2.5">

        <description>Caucho Technology's PHP Implementation, Running on GlassFish
      Java EE 5</description>

        <servlet>

          <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>

        <welcome-file-list>

          <welcome-file>index.php</welcome-file>

        </welcome-file-list>

      </web-app>




      This will declare PHP engine as the servlet.
    3. Add a new page "index.php" in "Web pages"
      folder. The contents of the page are:



      <?php

      echo "Hello World!";

      phpinfo();

      ?>



      This page prints "Hello World!" on the browser and some
      configuration settings of PHP. The directory structure of the created project looks like:



      META-INF/

      META-INF/MANIFEST.MF

      WEB-INF/

      WEB-INF/classes/

      WEB-INF/sun-web.xml

      WEB-INF/web.xml

      index.jsp

      index.php



      Notice, "index.jsp" is only a template
      file to get started with JSPs and "sun-web.xml"
      is GlassFish-specific deployment descriptor. These files are
      not required for this PHP application although it does not hurt to leave
      them in the webapp as well.
  3. Deploy the application by right-clicking on the project and selecting "
    Deploy 
    Project
    ". Your first PHP application in GlassFish is now deployed at
    "http://localhost:8080/hellophp/index.php".

Now that you have verified that your GlassFish is ready to host PHP
applications, try the different applications that are described in

Ludo's blog
.

Technorati:
php
glassfish
caucho
quercus

Related Topics >>

Comments

Thanks!

Great tutorial - I've tried this with the latest Glassfish and Quercus which seems to work very well. I also went with a slightly different configuration so I wouldn't have to encase the php files in a war. The details for this are posted here: How to PHP enable your Glassfish Application Server -Garry

Thanks!

What parameter is http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd in line 4 of the code? I'm not sure if I just need to read more about the syntax altogether or what, but that doesn't seem to have a parameter label on it.