2012-09-04 154 views
2

有誰知道如何在Linux的Web服務器上安裝Ms SQL擴展2005? 網絡服務器目前有FreeTDS庫版本,我不知道這意味着什麼。但是,當我嘗試連接它並沒有說「mssql_connect()不存在」但它說「無法連接到服務器:xx.xx.xx.xx」Linux上的SQL Server 2005擴展

我想這是因爲版本的擴展,因爲我用ntwdblib.dll在Windows上發生了這個問題。但我不知道如何在Linux上解決這個問題。

我只需要使用這些功能。數據庫位於Windows服務器上,因此我想使用mssql_connect()連接到它。

+0

這不會幫助回答你的問題,但爲什麼不在Windows機器上開發?您的開發環境越接近您的生產環境,您遇到的麻煩就越少。 – Matt

+0

您是否在PHP中的MS SQL支持中進行編譯? – BugFinder

+0

@Matt也許他們的生產環境是這樣設置的:Web服務器:Linux,數據庫服務器:SQL Server。所以那裏,他的開發環境酷似生產環境;-) –

回答

0

有可能使用freetds的庫來使用Linux上mssql_*功能,但支持需要被編譯到PHP二進制文件

0

是否已安裝了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服務器是否接受來自遠程客戶端的連接?