auf MSSQL-Server mit Linux-PHP zugreifen?
Sandrock
- php
1 Fabian St.0 Uhfe0 Uhfe
Hallo,
ich habe folgende Konstellation und wollte fragen, ob damit folgendes Problem loesbar ist.
Ich habe unter einer LAMP-Umgebung Apache2 und PHP/4.3.4 ein PHP-Skript laufen.
Nun moechte ich aus diesem Skript heraus in eine MSSQL-Datenbank schreiben, sowie Dateien auf einen anderen Windowsserver schreiben.
Geht das? Was muss ich beachten? Was muss installiert sein?
Danke Sandro
Hi!
Ich habe unter einer LAMP-Umgebung Apache2 und PHP/4.3.4 ein PHP-Skript laufen.
Nun moechte ich aus diesem Skript heraus in eine MSSQL-Datenbank schreiben, sowie Dateien auf einen anderen Windowsserver schreiben.Geht das? Was muss ich beachten? Was muss installiert sein?
Ja, theoretisch ist dies möglich. Der MSSQL-Datenbank-Server muss dazu erstens auch Verbindungen von außen akzeptieren (und damit nicht nur auf localhost lauschen) und PHP müsste hierzu mit MSSQL-Unterstützung kompiliert worden sein, s.a. http://de.php.net/manual/de/ref.mssql.php.
Dennoch solltest du dir bewusst sein, dass du dadurch, dass der Datenbank-Server von außen erreichbar ist, ein erhöhtes Sicherheitsrisiko eingehst.
Grüße,
Fabian St.
Hallo Fabian
Ich habe unter einer LAMP-Umgebung Apache2 und PHP/4.3.4 ein PHP-Skript laufen.
Nun moechte ich aus diesem Skript heraus in eine MSSQL-Datenbank schreiben, sowie Dateien auf einen anderen Windowsserver schreiben.
Dennoch solltest du dir bewusst sein, dass du dadurch, dass der Datenbank-Server von außen erreichbar ist, ein erhöhtes Sicherheitsrisiko eingehst.
Diese Konfiguration erfordert zwar, dass der Datenbankserver von anderen Rechnern erreichbar ist, aber noch lange nicht direkt aus dem Internet.
Ich gehe jetzt davon aus, dass sich der Linux-Rechner mit und der Windows-Server mit MS SQL-Server über ein LAN miteinander verbunden sind. Die Firewallstrategie sollte sicherstellen, dass das LAMP-System der einzige Rechner ist, der mit dem MS SQL-Server kommunizieren darf.
Wenn das LAMP-System und der MS SQL-Server die Verbindung über das Internet aufnehmen müssen, gilt für die Firewallkonfiguration das gleiche; d.h. die Firewall vor dem SQL-Server sollte nur Daten von der IP-Adresse des LAMP-Systems entgegennehmen, unterliegt so der Gefahr des IP-Spoofings, was bei der LAN-Konfiguration entfällt, bzw. von der externen Firewall abgefangen werden muss.
Microsoft empfiehlt, für einen MS SQL-Server einen dedizierten Server zu verwenden, meine Praxiserfahrung stimmt mit dieser Empfehlung überein. Der SQL-Server kann sehr ressourcenhungrig sein (bzw. werden).
Im Test- und Entwicklungs- und Demobetrieb sind virtuelle Maschinen auf gut mit RAM bestückten Rechnern eine brauchbare Alternative.
Erfahrung mit VMware ESX-Servern konnte ich leider noch nicht sammeln. Ein solcher Server wäre laut Beschreibung eine ideale Basis zur Konsolidierung der im Ausgangsposting beschriebenen Konfiguration.
Freundliche Grüße
Vinzenz
Hi Vinzenz!
Dennoch solltest du dir bewusst sein, dass du dadurch, dass der Datenbank-Server von außen erreichbar ist, ein erhöhtes Sicherheitsrisiko eingehst.
Diese Konfiguration erfordert zwar, dass der Datenbankserver von anderen Rechnern erreichbar ist, aber noch lange nicht direkt aus dem Internet.
Ich gehe jetzt davon aus, dass sich der Linux-Rechner mit und der Windows-Server mit MS SQL-Server über ein LAN miteinander verbunden sind. Die Firewallstrategie sollte sicherstellen, dass das LAMP-System der einzige Rechner ist, der mit dem MS SQL-Server kommunizieren darf.
Wenn das LAMP-System und der MS SQL-Server die Verbindung über das Internet aufnehmen müssen, gilt für die Firewallkonfiguration das gleiche; d.h. die Firewall vor dem SQL-Server sollte nur Daten von der IP-Adresse des LAMP-Systems entgegennehmen, unterliegt so der Gefahr des IP-Spoofings, was bei der LAN-Konfiguration entfällt, bzw. von der externen Firewall abgefangen werden muss.
Soweit habe ich bei meiner Aussage oben gar nicht gedacht, aber du hast recht, mit einer entsprechend gut konfigurierten Firewall sollte sich das Sicherheitsrisko _weitesgehend_ minimieren lassen. Welche Firewall setzt du denn für solche heikle Zwecke ein? Oder steht vor der dem MS SQL-Server sogar eine Linux-Kiste mit iptables? ;-)
Grüße,
Fabian St.
Hallo Fabian
Soweit habe ich bei meiner Aussage oben gar nicht gedacht, aber du hast recht, mit einer entsprechend gut konfigurierten Firewall sollte sich das Sicherheitsrisko _weitesgehend_ minimieren lassen. Welche Firewall setzt du denn für solche heikle Zwecke ein?
Die Firma, bei der ich den größten Teil meiner Erfahrungen mit dem MS SQL-Server gesammelt habe, ist Microsoft Partner, das Hauptprodukt basiert auf dem MS SQL-Server. Entsprechend hatte die Firma eine homogene Microsoftlandschaft zu bieten, als Firewall war der ISA-Server im Einsatz - und das sogar erfolgreich.
Zugriff über das Internet war nicht vorgesehen und auch nicht zugelassen. Unsere Webseiten wurden bei einem ISP gehostet, kein Microsoft sondern Netscape unter Solaris :-)
Jetzt habe ich beruflich mit dem SQL-Server nicht mehr ganz so viel zu tun. Wir haben zwar auch einen im Einsatz, auf dem unsere beiden Hauptverwaltungswerkzeuge laufen - und gelegentlich zaubere ich die eine oder andere Liste, die meine Kollegen (reine Anwender) halt brauchen. Für das Netzwerk bin ich (leider) nicht zuständig, aber auch hier ist Microsoft im Einsatz :-(
Oder steht vor der dem MS SQL-Server sogar eine Linux-Kiste mit iptables? ;-)
Nur bei mir privat - und da läuft "nur" eine Developerversion. Diese Linux-Kiste wird demnächst durch eines dieser neumodischen Routerkästchen ersetzt. Die Hauptgründe dafür liegen in der Energieaufnahme und der daraus resultierenden Heizleistung (siehe auch https://forum.selfhtml.org/?t=110200&m=690309) sowie der Geräuschentwicklung.
Freundliche Grüße
Vinzenz
Moin Sandro,
grundsätzlich gibt es zwei Möglichkeiten:
1. MSSQL Unterstützung für PHP mit Treiber für MSSQL (Freetds)
-ich gebs ehrlich zu: trotz Wochenlanger Recherche im Web und ausprobieren aller möglichen Tests. Ich habs nicht hingekriegt. Aber ich bin auch Linux Rookie.
2. Odbc Unterstützung für PHP, ODBC-Treiber für MSSQL (gibts glaub ich auch bei Freetds). Läuft bei mir im Intranet seit mehr als einem halben Jahr stable.
vorgehensweise:
wenn du mehr infos brauchst, mail mich an. ich habe eine (sehr ins unreine geschriebene) anleitung geschrieben zumindest was die dsn-einrichtung angeht.
Wenn konkrete Probleme auftauchen kannste ja auch kontakt aufnehmen.
Leider bin ich mit der Doku noch nicht weiter forangeschritten.
Meine Handschriftlichen Notizen würden dir wahrscheinlich nix bringen, es sei denn du bist Ägyptologe.
Uhfe
Hallo,
ich habe folgende Konstellation und wollte fragen, ob damit folgendes Problem loesbar ist.
Ich habe unter einer LAMP-Umgebung Apache2 und PHP/4.3.4 ein PHP-Skript laufen.
Nun moechte ich aus diesem Skript heraus in eine MSSQL-Datenbank schreiben, sowie Dateien auf einen anderen Windowsserver schreiben.Geht das? Was muss ich beachten? Was muss installiert sein?
Danke Sandro
Ich noch mal,
habe gerade beim stübern unter www.phpmagazin.de gesehen, dass es genau zur Konfiguration von LAMP mit MS-SQL einen Online Artikel gibt.
Hab ihn selbst auch noch nicht gelesen.
Werde ich aber sofort nachholen...
;-)
Uhfe