【问题标题】:Running PHP on IBM/Lotus Domino server在 IBM/Lotus Domino 服务器上运行 PHP
【发布时间】:2014-12-28 04:02:09
【问题描述】:

我想在 IBM/Lotus Domino 服务器上托管 Wordpress 和 Magento PHP 站点,并计划与 Lotus Notes 数据库集成。

我已经安装了 PHP 5.3.29、MySQL 5.6.21.1、phpMyAdmin 4.2.10.1

我没有运行 IIS 或 Apache。

我正在运行带有 HTTP Server 任务的 IBM Domino Enterprise Server 9.01。

我已经在 Domino 目录中创建了 URL-->目录映射文档:

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

我在 Domino HTML 文件夹 (c:\domino\data\domino\html\php) 中创建了一个目录 'php'

我创建了一个显示 phpinfo() 的 info.php 文件:

<?php phpinfo(); ?>

我能够完美地提出http://domain.com/php/info.php。 !!

我能够运行 phpMyAdmin 并创建 MySQL 数据库。

我能够安装和配置 Wordpress。

但是我必须将index.php 添加到仅包含目录的任何 URL。

例如/wp/wp-admin/index.php 有效。

但是 /wp/wp-admin//wp/wp-admin 返回状态 403 和错误:

Unable to process request, directory browsing is not allowed

所以这是我的问题:

除了 index.htmindex.html 之外,我如何让 Domino HTTP 服务查找 index.php URL只是目录?如果 Domino HTML 目录中有一个名为 index.html 的文件,则只需使用目录名即可。如果 URL 中只有一个目录,如何将 index.php 添加到要查找的文件列表中?是否有一些配置文件可以将 index.php 添加到列表中?

请注意,我没有使用 Apache,因此 .htaccess 文件在 Domino HTTP 环境中无效(如果我错了,请纠正我)。

提前致谢。

【问题讨论】:

    标签: php mysql wordpress magento lotus-domino


    【解决方案1】:

    我能够在运行可选 IBM HTTP Server (IHS) 的 Domino 9 服务器上托管 Wordpress 站点。全部在 Windows Server 2008 R2 上运行。

    首先,Domino 9 Server 必须使用“IBM HTTP Server”选项进行安装——您必须进行自定义安装才能看到选择。这将安装 IBM HTTP Server (IHS),它是与 Domino HTTP 集成的 Apache 版本。

    IHS 安装在 Domino 目录“ihs”中。需要编辑 ihs\conf\domino.conf 文件——大部分都可以。使用文件 domino.conf 代替 httpd.conf,后者通常用于在没有 Domino HTTP 连接的情况下运行 IHS。

    将 domino\ihs\bin\ httpd.exe 添加到您的 Firewall 规则中,因为它现在将接收 HTTP 请求并将它们代理到不同的 Domino 服务器港口。例如,此设置将允许安装 TLS 加密证书。

    编辑 domino.conf:

    取消注释行:

    Listen 0.0.0.0:80
    

    注释掉SetHandler domino-handler

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

    domino.conf 的末尾添加以下内容:

    LoadModule dir_module modules/mod_dir.so
    DirectoryIndex index.html index.htm index.php
    
    Win32DisableAcceptEx
    
    LoadModule php5_module "C:\php\php5apache2_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>
    

    其次,要在 IHS 上安装 PHP5,我们必须使用线程安全版本 -- 我之前安装了为“其他 CGI”配置的非线程安全 (nts) 版本,但没有允许由 IHS (Apache) 服务器加载的 php 模块。

    PHP 5.3.29 VC9 x86 线程安全(2014 年 8 月 15 日 20:02:15)

    安装程序 [38.38MB] http://windows.php.net/downloads/releases/php-5.3.29-Win32-VC9-x86.msi

    我使用 PHP 安装程序 - 在 C:\PHP 中安装 PHP,在 Web 服务器设置期间选择 Apache 2.2.x 模块

    我将 Wordpress 文件复制到 Domino html 目录 domino\data\domino\html\wp 中。

    最后,要在 Domino 上运行 IHS,编辑 notes.ini 并添加:

    HTTPIHSEnabled=1
    

    在 Domino 服务器上重新启动 HTTP 任务。注意控制台,确保 domino.conf 文件没有错误。

    上述配置将在端口 80 上将所有 HTTP 请求正常发送到 Domino HTTP 任务,但 wordpress.domain.com 将继续由 IHS 服务器而不是Domino 服务器。

    wordpress.domain.com的Domino目录下的Virtual Host doc已经不需要了,我原来添加的Domino目录下的URL-->Directory mapping doc现在也不需要了(现在也没有c: \php\php-cgi.exe 文件)。

    请注意,Domino 不会记录任何不由 Domino 处理的 IHS 虚拟主机。

    【讨论】:

      【解决方案2】:

      根据the book "IBM HTTP Server on z/OS: Migrating from Domino-powered to Apache-powered"(p.42,底部),Domino 中有一个Welcome 指令,其作用与 Apache 中的DirectoryIndex 相同。

      这应该可以解决问题:

      Welcome index.php index.html index.htm
      

      虽然我不知道该放在哪里……但也许你已经知道了。

      【讨论】:

      • 谢谢。最终,我不得不运行 Apache 的 IBM HTTP Server (IHS),并安装线程安全的 PHP Apache 模块。配置 domino.conf 文件虚拟主机指令后,即可使用 DirectoryIndex 指令。实际上,这很有效,因为我有一个运行 Domino 的 Apache 服务器,我可以在那里安装全系列的 PHP 应用程序。我还可以使用 RewriteEngine 进行广泛的 URL 重写,甚至传递给 Domino HTTP。
      猜你喜欢
      • 2020-07-26
      • 1970-01-01
      • 2013-06-22
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多