使用Linux从PHP连接到SQL Server 2005

时间:2013-08-02 09:35:19

标签: sql-server pdo

我有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连接:(

有什么建议吗?

1 个答案:

答案 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);