Thursday August 23, 2007
PHP in GlassFish using Caucho Quercus
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.
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.hellophp",
using NetBeans IDE and choose
GlassFish as the server.<?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>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.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
Posted by Arun Gupta in web2.0 | Comments[8]
|
|
|
|
|
Today's Page Hits: 5083
Total # blog entries: 931
Posted by Arun Gupta's Blog on August 24, 2007 at 06:08 AM PDT #
Since your adding quercus capabilities to a an entire domain, you might as well modify config/default-web.xml .
I imagine using NetBeans here is for further PHP->Java integration.
Also, is Quercus 3.1.1 new?
Posted by Alexis MP on August 24, 2007 at 07:33 AM PDT #
Yeah 3.1.1 is new and does not require php.ini. NetBeans is useful for two purposes:
1). It creates a template webapp project easily.
2). The reason you mentioned.
I'm not fully aware of the purpose of modifying default-web.xml. The name seems to indicate it's the default web.xml if none is packaged in webapp. Is that right ?
Posted by Arun Gupta on August 24, 2007 at 07:48 AM PDT #
thanks
Posted by 月饼 on August 26, 2007 at 10:51 AM PDT #
Glassfish and Quercus works fine!
But, what about datasources? I 've been experimenting with the pg_connect() call in php to access a PostGreSql db with no success.
There's a good tutorial for Resin here http://quercus.caucho.com/quercus-3.1/doc/quercus-overview.xtp#databases
How´s this done in Glassfish?
Thanks
Posted by Fredrik W on October 11, 2007 at 01:09 AM PDT #
Is the datasource problem solved?
I spend a lot of time trying to get pg_connect working, but no success :-/
Thanks!
Posted by Searle on March 08, 2008 at 11:09 AM PST #
The description above gives support for PHP per WAR-module which is cool. BUT if one want it generally it's just to include this servlet definition in the file default-web.xml:
<!-- PHP support -->
<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>
Posted by Niklas Norberg on June 03, 2008 at 04:03 AM PDT #
If anyone is trying to configure default-web.xml, use php not just in webapps but anything in docroot folder and also use a custom php.ini, I found this path works since there is no WEB-INF for docroot:
<servlet>
<servlet-name>Quercus Servlet</servlet-name>
<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>
<init-param>
<param-name>ini-file</param-name>
<param-value>../config/php.ini</param-value>
</init-param>
</servlet>
If you use phpinfo() to display the php.ini location, it always says WEB-INF/php.ini no matter what. That must be a bug.
Posted by pkcinna on June 19, 2008 at 04:25 PM PDT #