连接到由Apache下CGI应用程序在Linux上的火鸟提供了权限错误
问题描述:
我在Free Pascal中在Linux上写一个小程序,并连接到Firebird数据库在同一台服务器上。对于测试,我最初使用FP中的TIBConnection组件编写了一个控制台应用程序,并成功连接到Firebird数据库并从其中一个表中列出了记录。连接到由Apache下CGI应用程序在Linux上的火鸟提供了权限错误
现在我想从Apache下CGI应用程序做同样的事情。具有各种参数的示例CGI应用程序通过WebBroker“操作”(如预期的那样)显示不同的HTML结果。
因此,无论初步测试,连接到火鸟和得到一个CGI Web应用程序的运行,工作过。最后的测试是将它们结合起来,那就是我的问题所在。
每当我运行测试CGI应用程序,并尝试连接到Firebird数据库,我得到一个“权限被拒绝”的错误。我已经将用户名,密码和端口全部设置为默认值,检查了防火墙,在“localhost”和“127.0.0.1”之间切换以及其他一些设置,包括将数据库文件的权限设置为全局读取/写入当然是临时测试)。
我发现很多信息连接到火鸟在Linux和大量的信息有关编写CGI应用程序在互联网上,但很少在那里它结合了两个主题。我确信有一个微妙而重要的安全或防火墙问题,但它没有我。
- CentOS的虚拟机
- 火鸟在6.6 64位2.1.7 64位
- 拉撒路1.4.0 64位
任何人有什么我可以尝试任何建议?
答
我想出如何得到它通过读解到different problem工作。不知道为什么禁用防火墙没有工作(我必须完全卸载),不知道SELinux的是什么,但(不得不将其设置为“许可”),但我需要研究这两个问题让现场服务器不会被漏掉。
有了您的控制台程序,你还可以通过连接服务器? Firebird还有一个本地模式,与用户连接到数据库文件,而不是通过数据库服务器(及其用户)。 Firebird服务器用户可能无法访问数据库文件(例如用户无权访问该文件),而您自己的用户可以访问。 –
我不使用FB嵌入式,所以相信控制台程序通过服务器连接。我将数据库文件的组设置为apache,CGI应用程序正在运行的用户,因此它应该有权访问该文件。 –
本地连接!=嵌入(尽管它几乎相同)。但是,如果你通过Firebird服务器连接,那么apache不需要访问数据库文件,但运行Firebird服务器的用户(通常是firebird)需要拥有数据库文件的权限。 –