我有一个在php codeigniter框架中创建的应用程序和一个在apache web服务器上运行的mysql数据库(XAMPP安装)。
我知道fastreport,有两种通过网络提供报告的方法:
使用其HTTP服务器作为Web服务器来提供报告
使用CGI包装器,您可以使用其他Web服务器(IIS / Apache)通过CGI bin运行的fastreports应用程序提供报告
问题是我希望使用CGI包装器方法来提供报告,因为我已经为Web服务器提供了apache,但我不知道该怎么做。
任何有使用fastreport CGI包装器的经验的人?
答案 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)
终于搞定了;
解决方案:
// --------------------------------------------- --------
设置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服务器。