Oracle iPlanet Web Server running on Arch Linux with Php-fpm

Hello Speed! Meet Kettle

iPlanet History

iPlanet was a product brand that was used jointly by Sun Microsystems and Netscape Communications Corporation when delivering software and services as part of a non-exclusive cross marketing deal that was also known as "AOL Sun Netscape Alliance".

In 2002, the three year alliance came to an end, at which point, under the terms of the deal, both AOL and Sun retained equal rights to the code that had been jointly developed.

AOL had continued to market the directory and certificate server products under the Netscape brand. But in 2004 AOL sold the directory and certificate server products to Red Hat, which open-sourced them and integrated both into its Red Hat Enterprise Server product portfolio (Red Hat Directory Server and Certificate System).

After the Oracle acquisition of Sun, some of the iPlanet products continue to be sold under the Oracle brand. Specifically, Oracle iPlanet Web Server and Oracle iPlanet Web Proxy Server.

iPlanet Web Server (an HTTP and HTTPS web server), renamed to Oracle iPlanet Web Server

Oracle iPlanet Web Server is a web server designed for medium and large business applications. Oracle iPlanet Web Server builds on the earlier Sun ONE Web Server, iPlanet Web Server, and Netscape Enterprise Server products.

Oracle iPlanet Web Server is available on Solaris, Windows, HP-UX, AIX, GNU/Linux, supports JSP and Java Servlet technologies, PHP, NSAPI, CGI, and ColdFusion.

In January 2009, Sun open sourced core components of Sun Java System Web Server 7.0 under the BSD license as Open Web Server. Most of it, anyway. Unfortunately a few parts were left out, mainly the administration support, installer and the embedded Java servlet engine. The open source code was kept in sync with the commercial releases until January 2010 (7.0 update 8, using the commercial release version numbering). After that, the open source repository has not seen any activity (not coincidentally, January 2010 was also when Oracle acquired Sun, so this is not surprising).

In 2010, Oracle renamed the product from Sun Java System Web Server to Oracle iPlanet Web Server, although documentation and links are still in the process of being updated to reflect this.

The argument

I have loved using Oracle iPlanet Server ever since I was exposed to it within Solaris. It has withstood it name and still powers some very high traffic sites. Naturally, you might respond by saying - You're are using iPlanet? Are you insane? Nginx bitch :D

Yup. It is after all 2014 and most big sites don’t run iPlanet. Nginx has become standard almost everywhere due to its popularity. Most would say that. And I do run nginx and even varnish (So much love <3) but one should always play with variety and with this comes experience.

What are we trying to accomplish?

Run Oracle iPlanet WebServer 7.0.15 Linux/x86 WITH php-fpm (PHP 5.5.8)

Awesome right? LOL. Okay so far if you have to run php with Oracle iPlanet Webserver, Oracle/Sun still recommends the old stupid way of using FastCGI or some would argue better - NSAPI. Each has its pros and cons.

Personally: I dislike FastCGI with Oracle iPlanet Web Server. I mean I ran it in early 2000's but we have much better choices in optimizing php today with Oracle iPlanet Web Server -- aka php-fpm. As for NSAPI, the challenge is that each time php is updated, one has to recompile php all over again for Oracle iPlanet WebServer. Not the best solution. Okay, so here are the steps you need:

Arch Linux

Architecture – x86

Out of box, the install of Oracle Web Server will work ./setup

Architecture – x64

The setup binary will NOT work out of the box on Arch Linux x64. Here is what you do

#vi /etc/pacman.conf
**Uncomment multi-lib** 
#pacman -Syu
#pacman -S multilib/lib32-fakeroot multilib/lib32-libstdc++5  extra/libstdc++5 extra/php extra/php-fpm extra/php-gd extra/php-intl extra/php-mcrypt extra/php-pear extra/php-pspell extra/php-sqlite extra/php-tidy extra/php-xcache extra/php-xsl community/php-geoip community/php-memcache community/php-memcached tidyhtml curl memcached unzip ssmtp net-tools dnsutils php-cgi redis mariadb irssi ufw ipset oidentd perl-datetime php-memcache php-apcu

Now you should be able to install Oracle iPlanet Web Server 7.0.15 (As of this the latest is 7.0.18) and have it install and setup on your Arch box.

Please follow instructions on the console. Once you have setup the Webserver, make sure both your admin server and web server are running

How to start Oracle iPlanet Web Server

#[root@mirror lrizzo]# /opt/oracle/webserver7/https-mirror.cm/bin/startserv
Oracle iPlanet Web Server 7.0.15 B04/19/2012 21:52
info: FCGI1000: Oracle iPlanet Web Server 7.0.15 FastCGI NSAPI Plugin B04/19/2012 21:52
info: HTTP3072: http-listener-1: http://mirror.cm:80 ready to accept requests
info: CORE3274: successful server startup

[root@mirror lrizzo]# /opt/oracle/webserver7/admin-server/bin/startserv
Oracle iPlanet Web Server 7.0.15 B04/19/2012 21:52
info: CORE3016: daemon is running as super-user
info: CORE5076: Using [Java HotSpot(TM) 64-Bit Server VM, Version 1.6.0_24] from [Sun Microsystems Inc.]
info: WEB0100: Loading web module in virtual server [admin-server] at [/admingui]
info: WEB0100: Loading web module in virtual server [admin-server] at [/jmxconnector]
info: HTTP3072: admin-ssl-port: https://mirror.cm:8989 ready to accept requests
info: CORE3274: successful server startup

Setting up PHP (via php-fpm) within Oracle iPlanet Web Server

There are many ways to do this and the docs on oracle show you how. Personally, I find them confusing. It’s much faster to use command line anyways…

*Note: For the options –vs and –config we are using the site this is setup on (mirror.cm). Please ensure this is the same instance as your webserver running on port 80. *

# cd /opt/oracle/webserver7
# ./bin/wadm --user=admin --host=mirror.cm --port=8989 (Note: Change host to your website’s name)
Connected to mirror.cm:8989
Oracle iPlanet Web Server 7.0.15 B04/19/2012 21:52
wadm> disable-java --user=admin --config=mirror.cm
wadm> create-mime-type --user=admin --config=mirror.cm --extensions=php,php4,php5  --vs=mirror.cm magnus-internal/php
wadm> create-fastcgi-handler --user=admin --config=mirror.cm --vs=mirror.cm --mime-type=magnus-internal/php --role=responder --bind-path=/run/php-fpm/php-fpm.sock --reuse-connection --connection-timeout=600 --response-timeout=600

Explanation for the choices

Disable-java – Unless you need it, disable it.

Create-mime-type – Tell the webserver to handle the php scripts.

Create-fastcgi-handler - --bind-path = /run/php-fpm/php-fpm.sock

Point to the path where php-fpm is running on a socket.

Arch Linux PHP Setup

  • Under /etc/php, edit php-fpm.conf and ensure that the php-fpm is listening on the socket (instead of port). By default this happens to be /run/php-fpm/php-fpm.sock in Arch. Naturally, this portion will be different for CentOS/Redhat/Debian/Ubuntu etc.
  • Make sure that the php-fpm is running under the uid of the webserver (nobody by default on Oracle iPlanet WebServer).
  • Edit open_basedir and add /opt/oracle/webserver7/https-mirror.cm/docs/
  • Save file and restart php-fpm

Timeout Settings Tweaking

--connection-timeout and --response-timeout - If you are going to be hosting a large Wordpress site for instance, you may need to retweak these settings.

I am using ones that allow you to successfully run a large site without much grief in PHP timeouts. These happen when you import Wordpress XML’s for instance.

Last Step

Login to the Admin Console (https://mirror.cm:8989) and edit the virtual server. Click on Deploy changes and import them.

Test

Create a file called works.php in /opt/oracle/webserver7/https-mirror.cm/docs with content:

<?php
        phpinfo();
?>

Save the file. You can test the working of php by going to http://mirror.cm/works.php

If you have followed the steps, you should be able to see the output from a working PHP-FPM instance with Oracle iPlanet Web Server. (In this case, my server's)

Congratulations! You are now l33t….

Adding wordpress or php file

Add all your content to /opt/oracle/webserver7/https-mirror.cm/docs (where https-INSTACE is your instance name)

Article by: Lucius Rizzo – Cognitive Researcher at the Royal Spanish Society of Anthropology l@t.gt www.say.si