• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

PHP und MS SQL + Allgemeine Fragen

leicht-debil

Neu angemeldet

Registriert
13 Aug. 2013
Beiträge
57
Ort
Kassel
Hallo Leute,

ich benötige mal ein paar fundierte Meinungen zu einem etwas verwirrenden Problem.
Ich versuche mal das ganze zu erläutern und hoffe, dass es einigermaßen verständlich ist.

Ich arbeite seit einigen Monaten freiberuflich für eine Firma und pflege für diese die Webseiten bzw. erstelle Applikationen (alle auf HTML, PHP und MySQL-Basis) für den firmeninternen Gebrauch. Zu Beginn meiner Tätigkeit war der Sachverhalt der, dass die Webseiten auf einem Root-Server bei 1und1 lagen, der lange vor meiner Zeit angeschafft wurde und vom damaligen - inzwischen nicht mehr bei der Firma beschäftigten Administrator gepflegt wurde. Mit sehr viel Freude habe ich damals festgestellt, dass der Root-Server seit 24 Monaten völlig ungepflegt vor sich hin arbeitete - ohne auch nur einmal geupdatet wurden zu sein. Völlig veraltete Versionen von Plesk etc.
Da ich von der Serveradministration nur sehr geringfügige Kenntnisse besitze und auch sonst niemand in der Firma tätig ist, der fachlich kompetent für diese Aufgabe ist, habe ich damals die Anmietung eines "managed Servers" und die Abschaffung des Root-Servers vorgeschlagen. Soweit auch alles gut, es wurde ein "manged V-Server" bei Hosteurope angemietet, die laufenden Internetprojekte auf diesen "umgezogen". Allerdings wurde der Root-Server nie abgeschafft, wenngleich er auch so gar keinen Nutzen mehr hat. Vor einigen Wochen kam dann auch eine Mail von 1und1, die darauf hinwies, dass der Root-Server kompromittiert wurde und für den Versand von Spam-Mails missbraucht wird - das aber nur mal am Rande.

Bis hierhin erstmal alles schön.
Nun ist es aber so, dass bei der Firma ein Windows Server (2008, R2) werkelt, auf dem einige Anwendungen laufen, von denen ich sogar keine Ahnung habe. Muss ich prinzipiell auch nicht haben, da diese einfach ein ganz anderes Gebiet sind. Es läuft z.B. eine "Sage Officeline" und ein weiteres Warenwirtschaftssystem. Auf dem Windows Server läuft allerdings auch eine virtuelle Ubuntu-Maschine (Ubuntu Server 8.04 LTS), die eine in Cake-PHP erstellte Webanwendung zur Verfügung stellt (einst eigens für die Firma programmiert, von dem Mitarbeiter, der nicht mehr an Board ist). Als Webserver kommt auf der Ubuntu-Kiste Apache 2.2.22 zum Einsatz. Leider wird auch dieser Webserver seit Jahren nicht gepflegt, da, wie bereits erwähnt, einfach kein entsprechender Fachmann beschäftigt ist. Das ganze reicht soweit, dass derzeit noch nicht mal jedmand da ist, der die SSH-Zugangsdaten kennt. Mag alles unglaubwürdig klingen - ist aber so.
Was ich jedoch recht ungewöhnlich finde - und das ist dann auch meine erste Frage: Die besagte PHP-Anwendung auf dem Ubuntu-Server nutzt statt MySQL PostgreSQL. Darüber hinaus verfügt sie über eine Anbindung an die MSSQL-DB, die auf dem Terminal-Server läuft. Ist diese Kombination häufig zu finden?

Nun geht es darum, dass auch ich für eine meine Internetseiten der Firma Zugriff auf die MSSQL-DB benötige. Meine Recherchen haben aber ergeben, dass PHP per default keine Verbindung zu MSSQL aufbauen kann, sondern spezielle Treiber benötigt werden. Soweit richtig? Da es sich bei dem externen Webserver um einen "managed vServer" handelt, besteht jedoch gar nicht die Option die benötigten Treiber nachzuinstallieren.
Aus diese Grund habe ich Kontakt zu diversen Server-Providern aufgenommen um zu erfragen, ob es "managed Server" gibt, die - gegen Aufpreis natürlich - um die benötigten Treiber ergänzt werden können. Allerdings teilte mir ALL-INKL z.B. mit, dass das gar nicht nötig sei, da ich mir ja einfach nur einen OCDB-Connector laden müsse. Vielleicht bin ja ganz blöd, aber ein OCDB-Connector ist doch letztlich nur ein Klient, mit dem ich von extern auf eine DB zugreifen kann, oder? Für den Datenbank-Zugriff via PHP bringt mir das doch gar nichts(?)

Die Hauptfrage lautet also: Gibt es eine Option, die es mir erlaubt, mit PHP auf eine externe MSSQL-DB zuzugreifen, ohne manuell nachrüsten zu müssen. Immerhin hängt ja an dieser Frage die Entscheidung, ob ein "managed vServer" für das Projekt geeignet ist - oder ob ein Root-Server nebst Administrator zum Pflichtprogramm wird.
Bin für Hinweise und Tipps sehr dankbar.
 

Kugelfisch

Nerd

Registriert
12 Juli 2013
Beiträge
2.342
Ort
Im Ozean
Grundsätzlich müsste das möglich sein, wenn in PHP ODBC und iODBC installiert sind. Dann lassen sich ODBC-Treiber wie in http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/FAQ#What's_an_odbcini_and_what_do_I_put_in_it beschrieben über eine odbc.ini im Home-Verzeichnis des Webserver-Benutzers nachladen. Insbesondere lässt sich damit auch FreeTDS zum Zugriff auf MSSQL-Datenbanken laden. Allerdings habe ich solch ein Setup bisher noch nie genutzt, da die systemweite Installation über den Paketmanager schlicht komfortabler ist, sowohl bei der Erstinstallation als auch bei der späteren Wartung. Das bezieht sich übrigens nur auf unixoide Systeme - unter Windows ist PHPs ODBC-Erweiterung meines Wissens an den ODBC-Datenquellen-Manager des Betriebssystems angebunden.

Möglicherweise bedeutet die Antwort de Supports, dass ein passender ODBC-Treiber bereits installiert ist und du nur noch eine ODBC-Verbindung aufbauen musst? Du könntest einmal testen, ob sich über PHPs ODBC-Erweiterung oder PDO mit ODBC-Backend eine Verbindung zum MSSQL-Server aufbauen lässt. Unter https://secure.kitserve.org.uk/cont...-server-php-ubuntu-using-pdo-odbc-and-freetds findet sich etwa Beispielcode für PDO mit ODBC/FreeTDS-Backend.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.754
Ort
in der Zukunft
Hm, welche Verbindungen bestehen denn zwischen der Firma und dem vServer?
ist der vServer per VPN mit dem Firmennetz verbunden? Wenn nicht müsste ja der MSSQL-Server im Internet verfügbar gemacht werden - was allerdings Sicherheitstechnisch keine so tolle Idee ist. Vor allem wenn die Webanwendungen die auf dem vServer laufen alle nur Intern genutzt werden - warum werden diese Webanwendungen dann alle extern im Internet gehostet und nicht nur intern auf deinem Server im Firmennetz?
Insofern keine VPN-Verbindung besteht und der vServer somit über das LAN auf den MSSQL-Server zugreifen kann - und die Webanwendung so oder so nur intern für die Firma erreichbar sein soll - wäre es wohl sinnvoller diese Anwendung mit auf dem Server laufen zu lassen der im Moment schon eine Webanwendung mit MSSQL-Anbindung beherbergt.
Insofern die VM nicht vom Internet erreichbar ist - ist auch das nicht aktualisieren der VM nicht zwingend stark sicherheitskritisch. Kommt natürlich auf den weiteren Netzaufbau und die jeweilige Verwendung und Konfiguration der Umsysteme an.
 

leicht-debil

Neu angemeldet

Registriert
13 Aug. 2013
Beiträge
57
Ort
Kassel
  • Thread Starter Thread Starter
  • #4
Grundsätzlich müsste das möglich sein, wenn in PHP ODBC und iODBC installiert sind.
Wo bzw. wie kann ich das feststellen? php.ini? phpinfo.php?

drfuture schrieb:
Hm, welche Verbindungen bestehen denn zwischen der Firma und dem vServer?
Abgesehen von der normalen HTTP-Verbindung bestehen keine Verbindungen. Natürlich würde es Sinn machen, Webanwendungen, die ausschließlich für den internen Gebrauch genutzt werden, auch auf dem internen Server zu hosten. Wie ich jedoch bereits sagte: Es gibt niemanden, der den Linux-Server administriert und da ich davon zu wenig Ahnung habe, lasse ich die Finger davon. Die Firmenmitarbeiter melden sich halt via Browser am Webserver (Hosteurope) an. (https + .htaccess PW-Schutz + PHP-Session)
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.754
Ort
in der Zukunft
Dann wäre es aber Sinnvoller von einem It-Dienstleister das System in der Firma installieren zu lassen - und keinen Zugriff vom Internet auf diesen Server zuzulassen. Den Windows 2008 Server hat ja wohl auch jemand installiert?
Theo. reicht dieser dann auch aus. Die VM ist eigentlich komplett unnötig da entweder der IIS (Webserver von Microsoft Windows) alle Aufgaben übernehmen könnte - wie auch die Windows-Version des Apache.
Für den vServer muss ebenfalls Geld gezahlt werden - mit den Nachteilen das die Firma dann bei der Verwendung "ihrer" Anwendungen auf eine funktionierende Internetanbindung angewiesen ist. Ebenso weiß ich nicht wie es mit Backups bei diesem managed-VServer aussieht - wenn mal jemand in der Webanwendung "ausversehen" was falsches löscht.
Und nicht zuletzt dein jetzt größtes Problem das keine direkte und SICHERE Verbindung vom vServer zu intern gelagerten Recourcen wie dem wawi oder der mssql-db besteht. Und nebenbei vermutlich Unternehmenskritische Daten irgendwo extern bei einer angebieteten Firma liegen - wobei diese Firma bei vServern je nach eigesetzer Virtualisierungslösung jederzeit unbemerkt zugriff auf den vServer und dessen Daten nehmen kann.

Insgesammt würde ich der Firma empfehlen auf dem Windows Server die passenden Dienste installieren und zu konfigurieren zu lassen und den vServer (und den Rootserver ^^) zu kündigen.

ob ODBC-Module installiert sind sollte das php-script

[src=php]<? phpinfo();?>[/src]ausgeben - also vermutlich deine phpinfo.php ;)
 

Himmlische Waffe

Neu angemeldet

Registriert
22 Aug. 2013
Beiträge
41
Ort
Prag
Wieso brauchst du ausgerechnet eine MSSQL-DB, du könntest auch eine normale MySQL-DB benutzen, da du schon diesen einen Root-Server hast, pack doch einfach MYSQL server drauf, so schwer ist es nicht, brauchst nicht länger als 20-40 Minuten um alles zu konfigurieren...
Was du oben alles beschrieben hast, hört sich übel kompliziert an, aber es gebt viele andere einfache Wege wie man das alles klären könnte, und zwar sicher, schnell und flexibel..
Und ich glaube kaum, dass es jemanden gibt, der ein Projekt betreibt, der tausende von anfragen in der Datenbank täglich hat, und noch dazu shitty MSSQL benutzt...
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Sowohl die MSSQL als auch eine MySQL-Datenbank sind "normale" Datenbanken. Die eine stammt nur eben von Microsoft. ;)

Für mich hört sich das ganze ein bisschen verworren an. Vielleicht solltet ihr euch erst mal überlegen, welche Services ihr tatsächlich (im Endeffekt) realisieren müsst, welche Systeme ihr dafür braucht und dann die benötigte Hardware.
Wenn man den Beitrag so überfliegt könnte man das klassische Unternehmens-IT-Bild vor sich sehen, am Anfang ein paar Rechner, die einzeln rumstehen, dann kommt ein kleiner Server dazu, irgendwann merkt man, dass man gerne noch etwas hätte und es kommt noch irgendein Server dazu und noch und noch und noch und alles wird irgendwie verwurstet.
Da solltet ihr erst mal für Ordnung in eurer IT-Landschaft sorgen.
 

Exterminans

Neu angemeldet

Registriert
14 Juli 2013
Beiträge
147
Sowohl die MSSQL als auch eine MySQL-Datenbank sind "normale" Datenbanken. Die eine stammt nur eben von Microsoft. ;)
Das stimmt so nicht ganz, zwischen MySQL und MSSQL sind deutlich größere Unterschiede als du ahnst.

Vereinfacht gesagt hast du auf der einen Seite die Gruppe aus DB2, PostgreSQL, MSSQL, Oracle welche allesamt ziemlich nah am ANSI-SQL-Standard dran sind (Standardkonformität ungefähr in der Reihenfolge).

Auf der anderen Seite steht "Wildwuchs" wie MySQL, Sqlite und Co. die mit einem teilweise inkompatiblen, proprietärem SQL-Syntax aufwarten und verschiedene Features nicht implementieren. Dazu gehören im Falle von MySQL und Sqlite zum Beispiel richtige Constraints, beide Datenbanksysteme unterstützen ausschließlich Foreign Keys, wobei im Falle von MySQL diese sogar nur vom InnoDB-Tabellenengine überhaupt unterstützt werden, mit der MyISAM- oder Memory-Engine gibt es nicht einmal diese.

Kurz gesagt: Innerhalb der ersten Gruppe sind mit ODBC o.Ä. die Datenbanken 1:1 austauschbar da der gleiche Syntax verwendet wird. Das gilt nicht für MySQL, weder versteht MySQL den ANSI-Syntax, noch verstehen ANSI-Datenbanken die MySQL-spezifischen Erweiterungen. Auch wenn MySQL ebenfalls ODBC beherrscht, muss man die Anwendung dann trotzdem händisch an MySQL anpassen und u.U. Features streichen die MySQL nicht beherrscht.

MySQL hat sich nur im "Hobby"-Bereich (wozu jede Webanwendung überschaubarer Größe zählt) deswegen durchgesetzt, weil kostenlos und relativ einfach zu bedienen. Eine "richtige" SQL-Datenbank erfordert schon ein wenig mehr Vorwissen und Disziplin.
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Was nichts daran ändert, dass sie "normal" sind. Windows und Unix/Linux sind auch verschieden, aber "normale" Betriebssysteme. ;)

Soweit ich weiß ist SQL standardisiert, natürlich implementieren verschiedene DBMS verschiedene Features und haben auch noch mal ihre Eigenheiten, das tut aber nichts weiter zur Sache. "Normal" sind sie trotzdem.
 

Exterminans

Neu angemeldet

Registriert
14 Juli 2013
Beiträge
147
Soweit ich weiß ist SQL standardisiert
Es gibt zwar den ANSI-Standard (bzw. verschiedene Versionen davon), aber u.A. MySQL ist mit diesem Standard überhaupt nicht kompatibel, nicht einmal was den grundlegenden Sprachsyntax angeht, u.A. der Umstand dass ' in ANSI-SQL verwendet wird um Feldnamen ein zu schließen, MySQL das hingegen als String interpretieren würde und stattdessen ein `erwartet, was wiederum in ANSI-SQL überhaupt keine Bedeutung hat und einen Syntaxfehler auslöst.

Darüber hinaus funktioniert MySQL auch in einigen anderen Aspekten komplett anders als ANSI-SQL-Datenbanken, z.B. was Sequenzgeneratoren angeht (bzw. das Fehlen eben dieser in MySQL, da gibt es nur Autoincrement als Spaltenattribut), die Auswahl unterstützter Datentypen und die genaue Funktionsweise verschiedener Hilfsfunktionen sowie die (fehlende) Unterstützung von komplexeren Konstrukten (MySQL kann diese Queries einfach nicht ausführen, obwohl gültig).
 

SP4C3

Neu angemeldet

Registriert
27 Aug. 2013
Beiträge
54
Sinnloses mssql bashen führt übrigends selten zur Lösung. Die DB läuft auch als Backend für umfangreiche Anwendungen performant..


@topic: vm weg und das hosting auf den lokalen Windows Server verlagern.
Spart Arbeit und alles bleibt lokal.
Wenn ihr in der Firma niemanden habt der sich um die it kümmern kann solltet ihr jemanden dafür suchen...
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.454
Ort
/dev/null
@leicht-debil:
Wenn man auf eine vorhandene Infrastruktur stößt, hat man natürlich erst mal das Bedürfnis, da alles mögliche zu ändern.

An Deiner Stelle würde ich mal mit den Chefs da reden, dass du das gesamte Ökosystem mal analysierst und vor allem auch dokumentierst. Das hat dann mehrere Vorteile:

  • Du weißt dann, welche Anwendungen von außen und welchen ausschließlich von innen benötigt werden. Logischerweise sollten die internen Anwendungen nicht von außen erreichbar sein. Ist einfach eine Sicherheitsfrage. Sofern irgendjemand in dem Laden auch von zu Hause aus arbeiten darf, wären natürlich wieder andere Lösungen (VPN) usw. sinnvoll.
  • Es könnte festgestellt werden, welche Server jetzt weg können und was alles auf einen Server zusammengefasst werde könnte. Ist auch ein Einsparpotential für die Firma.
  • Es könnte ebenfalls entschieden werden, welche Plattformen (DBMS, OS) tatsächlich notwendig sind und welche nicht.

Die Kernaussage sollte halt erst mal sein, dass du vor irgendwelchen Änderungen erst mal versucht rauszufinden, warum das System so aufgebaut ist.

Die besagte PHP-Anwendung auf dem Ubuntu-Server nutzt statt MySQL PostgreSQL. Darüber hinaus verfügt sie über eine Anbindung an die MSSQL-DB, die auf dem Terminal-Server läuft. Ist diese Kombination häufig zu finden?
Eher nicht. Sowohl PostgreSQL als auch MSSQL sind im Gegensatz zu MySQL / MariaDB Datenbanksysteme auf einer höheren Ebene, wie Exterminans schon treffend beschrieben hat.

Eine Theorie könnte hier sein, dass die Wirtschaftsanwendungen MSSQL fordern (BWLern kennen nur Windows) und der frühere Admin halt versucht haben könnte, das mit PostgreSQL auf Linux-Basis umzustellen, um den Windows-Server loszuwerden.

Grundsätzlich ist es aber immer schlecht, wenn eine Firma den Systemadmin einspart. Das rächt sich irgendwann mal.
 
Oben