, als ich die Frage gestellt habe
. Unser Unternehmen hat eine Reihe von SP-seitigen Kurznachrichtendienst-Software entwickelt, die auf dem SGIP-Protokoll von China Unicom basiert, um den SMS-Dienst China Unicom 130 bereitzustellen. Dieses System läuft unter Windows 2000. Die Datenbank nutzt Microsoft SQLServer2000 und läuft seit einiger Zeit normal. Um Kurznachrichtenbenutzern im WEB einige Informationen bereitzustellen, ist es in letzter Zeit erforderlich, die SQL Server-Datenbank aus dem WEB zu lesen und zu schreiben. Ursprünglich sollte der beste Partner der SQL Server-Datenbank das Microsoft IIS ASP-Serverskript sein Unser Unternehmen hat immer geglaubt, dass die Stabilität und Sicherheit von IIS+ASP nicht zufriedenstellend ist. Ich hoffe, dass ich PHP-Skripte zum Lesen und Schreiben von SQL Server unter Linux verwenden kann.
Analyse des Problems
Ursprünglich gab es kein Problem mit dem Lesen und Schreiben von PHP-Skripten. Es funktioniert sehr gut unter Apache für Windows und Windows IIS. Im Allgemeinen kann es über ODBC oder den SQLServer-Client verbunden werden, die alle vorgefertigt sind unter Windows. Allerdings gibt es unter Linux keinen fertigen ODBC- und SQLServer-Client und wir müssen diese selbst installieren.
Lösen Sie das Problem
1. Zugehörige Software
freetds Quelle: ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/freetds-0.53.tgz
Diese Software kann MS SQLServer- und Sybase-Datenbanken unter Linux und Unix verbinden.
2. Installations- und Konfigurationsschritte
Schritt 1: Freetds kompilieren und installieren:
Nachdem Sie freetds-0.53.tgz erhalten haben
, cp freetds-0.53.tgz /tmp/. (Kopieren Sie das freetds-Paket in das Verzeichnis /tmp)
cd /tmp (Geben Sie das Verzeichnis ein )
tar zxvf freetds- 0.53.tgz (dekomprimiert)
cd freetds-0.53 (Geben Sie das dekomprimierte Verzeichnis ein)
./configure –prefix=/usr/local/freetds --with-tdsver=7.0
gmake (Makefile generieren, ich habe es getestet, make kann es auch)
gmake install (Installation)
Ich möchte etwas zur obigen Konfiguration sagen --prefix=/usr/local/freetds bezieht sich auf die Installation im Verzeichnis /usr/local/freetds= 7.0 bezieht sich auf die Installation der tds 7.0-Version (die neueste Version). Das Problem besteht darin, dass ich diesen Kompilierungsparameter nicht hinzugefügt habe und das Ergebnis standardmäßig auf 5.0 kompiliert wurde. Der Port für 5.0 zum Herstellen einer Verbindung zur Datenbank ist 4000 und nicht 1433 von SQL Server.)
Schritt 2: PHP4 neu kompilieren./configure
[--with-apxs --with-mysql ...] --with-sybase=/usr/local/freetds (bitte beachten Sie, dass es sich um Sybase handelt)
make
make install
Schritt 3: Freetds konfigurieren
vi /usr/local/freetds/etc/freetds.conf
Die spezifische Konfiguration finden Sie in dieser Datei. Beispiel für eine Beschreibung
: (Typische Konfiguration)
[sqlserver]
host = sql_server_name_or_host_ip (Name oder IP-Adresse Ihres SQLServer-Computers)
Port = 1433
TDS-Version = 7.0
In dieser Konfigurationsdatei können Sie zwei Methoden der Windows-Domänenanmeldung oder der SQLServer-Kontoanmeldung konfigurieren.
Entfernen
Sie den Kommentar „
extension=mssql70.so
“.
Schritt 5:
Stellen Sie eine Datenbankverbindung in
PHP
her
Sie erhalten eine Linknummer, herzlichen Glückwunsch, Sie haben sie konfiguriert. Wenn „Aufruf an undefinierte Funktion: mssql_connect()“ angezeigt wird, dann Hinweis: Lesen Sie den obigen Installations- und Konfigurationsprozess sorgfältig durch, um festzustellen, welchen Schritt Sie falsch gemacht haben.
Hinweis: Der SQLServer-Name ist der in /usr/local/freetds/etc/freetds.conf definierte Hostparameter. Wenn Sie die IP-Adresse schreiben, handelt es sich um die IP-Adresse.
Informationen zu anderen Datenbankoperationen finden Sie in den zugehörigen MSSQL-Funktionen
.
Schritt 6: Debuggen Sie
die Zeile in der Dump-Datei = /tmp /freetds.log. Entfernen Sie das Semikolon davor, führen Sie das Testskript erneut aus und überprüfen Sie die Datei /tmp/freetds.log. Sie kann Ihnen viele Fehlerinformationen liefern, die Ihnen bei der Behebung des Problems helfen.
(e129)