是否已安裝了unixODBC模塊(--with-mssql
)? sudo apt-get install unixodbc
您是否爲PHP安裝了ODBC支持? sudo apt-get install php5-odbc
您是否已經在odbc.ini和odbcinst.ini文件中定義了與Microsoft Sequel Server的連接?
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
[msft_sql_server]
Description = The Microsoft Sequel Server
Driver = freetds
Database = XXXXXXXXXX
ServerName = msft_sql_server
TDS_Version = 8.0
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
然後你的PHP連接將是這個樣子:
$db_connection = new PDO("dblib:dbname=$database_server;host=$database_server", $db_username, $db_password);
您可以測試上述設置使用isql程序只是爲了確保您可以建立連接。
如果您仍然無法從Linux服務器連接到MSFT服務器 - 是否有防火牆的方式?你確定你有有效的用戶憑證嗎? MSFT服務器是否接受來自遠程客戶端的連接?
這不會幫助回答你的問題,但爲什麼不在Windows機器上開發?您的開發環境越接近您的生產環境,您遇到的麻煩就越少。 – Matt
您是否在PHP中的MS SQL支持中進行編譯? – BugFinder
@Matt也許他們的生產環境是這樣設置的:Web服務器:Linux,數據庫服務器:SQL Server。所以那裏,他的開發環境酷似生產環境;-) –