0

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 からは接続できません:(

助言がありますか?

4

1 に答える 1

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);
于 2013-08-02T19:35:18.763 に答える