我有一个MSSQL server 2005数据库。我可以通过MSSLQL客户端软件(MSSQL Management Studio)连接到服务器。
问题是我无法使用相同的凭据从PHP脚本连接到服务器。并且所有mssql配置在php和apache中都有效。
这是我收到的错误:
<b>Warning</b>: mssql_connect()
[Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: eventsearch.db.7340680.hostedresource.com in /home/horizon/public_html/openivite/server.php on line 2]
PHP:
$this->dblink = mssql_connect(FBSERVER, FBUSER, FBPASSWORD);
所有凭据都有效且有效。
答案 0 :(得分:0)
您的网络服务器是否在Windows上运行?如果是这样,你有什么版本的ntwdblib.dll?有关更深入的解释,请参阅this help page。
这个错误很痛苦,因为它不是很具描述性。我记得我第一次和它搏斗(这个问题已经存在了至少几年)......但是拥有正确的DLL会让世界变得与众不同。
如果您正在尝试从Linux机箱连接,那么您可能会考虑从mod_php切换到php-cgi(反之亦然),因为我已经从中读过成功案例。但是,我不记得在将Linux Web服务器连接到MSSQL盒时遇到这个问题。
答案 1 :(得分:0)
我遇到了类似的问题,并在完成该技巧的PHP手册上找到了一条注释: https://www.php.net/manual/es/function.mssql-connect.php#105132
问题是SELinux配置(在我的CentOS机器上)。默认情况下,在启用SElinux的计算机上禁用通过php(或Apache运行的任何其他语言)的远程连接。
因此,修改策略撤销了该块,我的php脚本开始按预期工作。
命令是:
sudo setsebool -P httpd_can_network_connect = 1
:)