fastreport cgi包装器的问题

时间:2014-05-04 07:20:06

标签: apache delphi cgi delphi-7 fastreport

我有一个在php codeigniter框架中创建的应用程序和一个在apache web服务器上运行的mysql数据库(XAMPP安装)。

我知道fastreport,有两种通过网络提供报告的方法:

  1. 使用其HTTP服务器作为Web服务器来提供报告

  2. 使用CGI包装器,您可以使用其他Web服务器(IIS / Apache)通过CGI bin运行的fastreports应用程序提供报告

  3. 问题是我希望使用CGI包装器方法来提供报告,因为我已经为Web服务器提供了apache,但我不知道该怎么做。

    任何有使用fastreport CGI包装器的经验的人?

2 个答案:

答案 0 :(得分:2)

我自己没有使用Fast Report Web服务器,但对于我自己的Delphi / Free Pascal HTTP服务器应用程序,我使用Apache作为反向代理。

CGI会为每个传入的HTTP请求启动Delphi应用程序,导致比使用FastReport HTTP服务器更多的服务器资源负载。

将Apache配置为reverse proxy非常容易。然后,您可以启动快速报告HTTP服务器(在同一网络中/在同一服务器上),所有传入的HTTP请求将从Apache路由到FastReport服务器。安全说明:使用ProxyRequests off确保不允许外部ProxyRequests。

反向代理的基本示例(httpd.conf)

LoadModule  proxy_http_module    /usr/lib/apache2/modules/mod_proxy_http.so

ProxyRequests off

ProxyPass / http://127.0.0.1:8097/
ProxyPassReverse / http://127.0.0.1:8097/

这不是使用FastReport测试的,如果服务器已经需要在根路径(/)上提供服务器内容,则Fast Report Web服务器可能需要使用不同的资源路径,例如http://127.0.0.1:8097/reports/以允许服务其他现有内容。

答案 1 :(得分:1)

终于搞定了;

解决方案:

  1. 创建用于启动和停止fastreport http服务器的TServiceApplication
  2. 设置config.xml时要小心,将端口设置为8097 (服务器的默认备用端口)
  3. 创建报告模板(.fr3)并将其放入报告文件夹(根据您的设置)
  4. 创建index.html文件(主页)并将其放在htdocs文件夹中(根据您的设置)
  5. 首次测试 - 使用http服务器测试应用程序是否正常工作即使用浏览器访问位置服务器:8097 / index.html(localhost:8097 / index.html)并确保您可以看到主页
  6. // --------------------------------------------- --------

    设置CGI

    一个。配置apache以使用cgi bin。将以下内容复制到httppd.conf文件,然后重新启动apache服务

     ScriptAlias /cgi-bin/ "C:/xampp/cgi-bin/" 
    
    <Directory "C:/xampp/cgi-bin/">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
    </Directory>
    
    AddHandler cgi-script .cgi .dll .pl .exe
    

    湾从快速报告站点提供的演示中,将cgi文件夹的内容复制到apache中的cgi-bin文件夹

    ℃。 第二次测试 - 测试您在到达该位置后可以看到您的主页

    server / cgi-bin / fastreport.exe(localhost / cgi-bin / fastreport.exe)

    注意:

    无论您使用的是直接选项还是CGI选项,都必须使用fastreport http服务器。