我有Windows和Linux服务器。 SQL Server 2005安装在Windows机器上,我想使用PHP从我的其他Linux服务器连接到Windows数据库。服务器位于不同的位置。
我尝试了一切但没有成功。这是我的phpinfo输出:
Configure Command './configure' '--with-apxs2' '--with-curl=/usr/local/lib' '--with-gd' '--with-ttf' '--with-gettext' '--with-jpeg-dir=/usr/local/lib' '--with-freetype-dir=/usr/local/lib' '--with-kerberos' '--with-openssl' '--with-mcrypt' '--with-mhash' '--with-mysql=/usr' '--with-mysqli=/usr/bin/mysql_config' '--with-pdo-mysql=/usr' '--with-unixODBC=/usr' '--with-pcre-regex=/usr/local' '--with-pear' '--with-png-dir=/usr/local/lib' '--with-xsl' '--with-mssql=/usr/local/freetds' '--with-pdo-dblib=/usr/local' '--with-zlib' '--with-zlib-dir=/usr/local/lib' '--with-iconv=/usr/local' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-magic-quotes' '--enable-safe-mode' '--enable-soap' '--enable-sockets' '--enable-mbstring' '--enable-zip' '--enable-wddx'
启用ODBC支持,dblib,Mssql。
Windows计算机上没有防火墙。我从调制解调器转发了1433端口。我可以从我的机器(本地)上的Windows sql studio,WAMP连接,但无法从PHP连接:(
有什么建议吗?
答案 0 :(得分:0)
您是否在Linux服务器上配置了这些文件? (这些是从Ubuntu 12.04服务器获取的)
/etc/odbc.ini
# Define a connection to the MSSQL server.
# The Description can be whatever we want it to be.
# The Driver value must match what we have defined in /etc/odbcinst.ini
# The Database name must be the name of the database this connection will connect to.
# The ServerName is the name we defined in /etc/freetds/freetds.conf
# The TDS_Version should match what we defined in /etc/freetds/freetds.conf
[mssql]
Description = MSSQL Server
Driver = freetds
Database = MyDatabase
ServerName = mssql
TDS_Version = 8.0
/etc/odbcinst.ini
# Define where to find the driver for the Free TDS connections.
[freetds]
Description = MS SQL database access with Free TDS
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
UsageCount = 1
/etc/freetds/freetds.conf
# The basics for defining a DSN (Data Source Name)
# [data_source_name]
# host = <hostname or IP address>
# port = <port number to connect to - probably 1433>
# tds version = <TDS version to use - probably 8.0>
# Define a connection to the MSSQL server.
[mssql]
host = mssql_server_ip_or_domain_name
port = 1433
tds version = 8.0
我已经阅读了几个导致问题的tds版本的帐户。看起来最好是8.0字,但我也看到人们说他们的工作用7.5和7.0。
以下是PDO连接示例:
$pdo = new PDO("dblib:dbname=$database_name;host=$database_server", $temp_username, $temp_password);