繁体   English   中英

来自PHP的Freetds SQL Server连接错误:权限?

[英]Freetds SQL Server connection error from PHP: Permissions?

我有一个可以连接到远程SQL Server的PHP脚本。 以root用户身份从命令行可以调用freetds命令:tsql -H主机名-U用户名,它的连接非常好,我可以运行查询。

我在/var/www/html/axis/public/test.php中有一个PHP脚本,当我:sudo –u apache –s(将用户从root更改为apache),然后从命令行运行我的PHP脚本时,连接并运行查询非常好。 但是,当从Web浏览器执行相同的脚本时,它会失败-浏览器返回数据库连接错误。 Web浏览器能够连接到其应该连接的所有位置,并呈现不需要SQL连接的所有网页。

apache是​​运行httpd的用户。 我已经通过以下方式确认了这一点:ps aux | grep apache

关于为什么apache可以从命令行执行PHP脚本的任何想法,但是当浏览器尝试连接到相同的脚本时,它失败了吗?

谢谢,德里克

根据FreeTDS常见问题解答:

http://www.freetds.org/faq.html#php

您还可以张贴连接代码,而您究竟要得到什么错误?

所以问题出在SELinux。 禁止Web服务器连接到网络外部(连接到SQL Server)。 我必须运行以下命令:

/ usr / sbin / setsebool -P httpd_can_network_connect_db 1

一旦完成,一切都很好。 Daniel Fazekas在此帮助下提供了此答案。 感谢大家与我一起探讨这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM