Running PHP on IBM/Lotus Domino server

I would like to host WordPress and Magento PHP sites on a IBM/Lotus Domino Server with plans to integrate with Lotus Notes databases.

I have installed PHP 5.3.29, MySQL 5.6.21.1, phpMyAdmin 4.2.10.1

Read More

I am NOT running IIS or Apache.

I am running IBM Domino Enterprise Server 9.01 with HTTP Server task.

I have created the URL–>Directory mapping doc in the Domino Directory:

Incoming URL String: /*.php
Target server directory: c:phpphp-cgi.exe /*.php
Access Level: Execute

I have created a directory ‘php’ in the Domino HTML folder (c:dominodatadominohtmlphp)

I created a info.php file that displays phpinfo():

<?php phpinfo(); ?>

I am able to bring up http://domain.com/php/info.php perfectly. !!

I am able to run phpMyAdmin and create MySQL db’s.

I am able to install and configure WordPress.

HOWEVER I must add index.php to any URLs that only include the directory.

For example /wp/wp-admin/index.php works.

But /wp/wp-admin/ or /wp/wp-admin return status 403 and error:

Unable to process request, directory browsing is not allowed

SO Here is my question:

How can I get the Domino HTTP service to look for index.php in addition to index.htm & index.html when a URL is only of the directory? If there is a file named index.html in the Domino HTML directory, you need only use the directory name. How to add index.php to the list of files to look for if only a directory is in the URL? Is there some configuration file where I can add index.php to the list?

Please note that I am not using Apache so the .htaccess file has no effect (correct me if I am wrong) in the Domino HTTP environment.

Thanks in advance.

Related posts

Leave a Reply

2 comments

  1. I was able to host a WordPress site on a Domino 9 server running the optional IBM HTTP Server (IHS). All running on Windows Server 2008 R2.

    First, Domino 9 Server must be installed with the option ‘IBM HTTP Server’ — you have to do a Custom installation to see the choice. This installs IBM HTTP Server (IHS) which is a version of Apache that integrates with Domino HTTP.

    IHS is installed in the Domino directory ‘ihs’. The ihsconfdomino.conf file needs to be edited — most of it is OK as is. The file domino.conf is used instead of httpd.conf which would normally be used to run IHS without the Domino HTTP connection.

    Add dominoihsbin httpd.exe to your Firewall rules since it will now be receiving the HTTP requests and proxying them to the Domino server on a different port. This setup will allow the installation of TLS encryption certificates, for example.

    Make edits to domino.conf:

    Uncomment line:

    Listen 0.0.0.0:80
    

    Comment out SetHandler domino-handler :

    <IfModule mod_domino.c>    
    ...    
    #<LocationMatch /*>
       #SetHandler domino-handler
    #</LocationMatch>
    
    </IfModule>
    

    Append the following at the end of domino.conf:

    LoadModule dir_module modules/mod_dir.so
    DirectoryIndex index.html index.htm index.php
    
    Win32DisableAcceptEx
    
    LoadModule php5_module "C:phpphp5apache2_2.dll"
    <IfModule php5_module>
        AddType application/x-httpd-php .php
        PHPIniDir c:/php/
    </IfModule>
    
    NameVirtualHost *:80
    
    #default vhost for Domino HTTP:
    <VirtualHost *:80>
      ServerName "${DOMINO_SERVER_NAME}"
      DocumentRoot "${DOMINO_DOCUMENT_ROOT}"
      <IfModule mod_domino.c>
        <LocationMatch /*>
          SetHandler domino-handler
        </LocationMatch>
      </IfModule>
    </VirtualHost>
    
    # vhost for wordpress.domain.com
    <VirtualHost *:80>
      ServerName wordpress.domain.com
      DocumentRoot "${DOMINO_DOCUMENT_ROOT}/wp"
    </VirtualHost>
    

    Secondly, to install PHP5 on IHS, we have to use the thread safe version — I had previously installed the non-thread safe (nts) versions configured for ‘Other CGI’ which did not allow for a php module that could be loaded by the IHS (Apache) server.

    PHP 5.3.29 VC9 x86 Thread Safe (2014-Aug-15 20:02:15)

    Installer [38.38MB] http://windows.php.net/downloads/releases/php-5.3.29-Win32-VC9-x86.msi

    I used the PHP installer program – install PHP in C:PHP, choose Apache 2.2.x Module during web server setup.

    I copied the WordPress files into the Domino html directory dominodatadominohtmlwp .

    Finally, to run IHS on Domino, edit notes.ini and add:

    HTTPIHSEnabled=1
    

    Restart the HTTP task on the Domino server. Pay attention to console to make sure there are no errors with domino.conf file.

    The above configuration will send ALL HTTP requests on port 80 to the Domino HTTP task as normal with the exception of wordpress.domain.com which will continue to be handled by the IHS server instead of the Domino server.

    The Virtual Host doc in the Domino directory for wordpress.domain.com is not needed, and the URL–>Directory mapping doc in the Domino Directory I originally added is now no longer needed (and now there is no c:phpphp-cgi.exe file).

    Note that Domino does no logging of any IHS virtual hosts that are not handled by Domino.