gar*_*ton 4 php sql-server centos freetds
我在从PHP连接到MS SQL 2005时遇到问题.
我可以从shell连接,使用...
tsql -S 10.0.0.134 -p 1433 -U gareth
Run Code Online (Sandbox Code Playgroud)
输入一个简单的查询按预期工作...
1> SELECT @@VERSION AS MSSQL_VERSION
2> go
MSSQL_VERSION
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
Nov 24 2008 13:01:59
Copyright (c) 1988-2005 Microsoft Corporation
Express Edition on Windows NT 6.1 (Build 7601: Service Pack 1)
Run Code Online (Sandbox Code Playgroud)
但是,从PHP脚本尝试此操作不起作用...
$test = mssql_connect('10.0.0.134:1433', 'gareth', 'mypass');
Run Code Online (Sandbox Code Playgroud)
...并生成一个mssql_connect()[function.mssql-connect]:无法连接到服务器错误.
我可以看到/ usr/lib/php/modules中的mssql.so模块和phpinfo()显示模块已加载.
如果有人能给我看一下freetds.conf和odbc.conf的示例配置,我很乐意使用odbc_connect
谢谢
小智 5
这是我在PHP.net上可以找到的有关您的问题的内容.也许它会帮助你解决它.
This might be obvious to some, but here is a quick tidbit that might save you some time if you are using FreeTDS in Linux:
Be sure that you have these two lines in freetds.conf:
dump file = /tmp/freetds.log
dump file append = yes
so you can tail -f it in the background of debugging the problem. This helped me find my issue on on CentOS Linux:
1) tsql test works
2) php-mssql connection in php also works WHEN RUN FROM THE SHELL
3) running PHP through apache does NOT work.
my /tmp/freetds.log file told me:
net.c:168:Connecting to MYDBSERVER port MYDBPORT
net.c:237:tds_open_socket: MYDBSERVER:MYDBPORT: Permission denied
and the answer was my firewall/SELinux was denying the Apache processes access to connect to the remote MSSQL DB port, but my shell accounts were fine.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3723 次 |
| 最近记录: |