phpbar.de logo

Mailinglisten-Archive

[php] Muss PHP und mySQL auf gleichem Server laufen?

[php] Muss PHP und mySQL auf gleichem Server laufen?

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Fri, 13 Aug 1999 14:56:30 +0200


Erwin Forner wrote:
> Muss eigentlich PHP und mySQL auf einem Server laufen oder ist es
> prinzipiell auch moeglich, mittels PHP von einer Domain auf eine
> mySQL-Datenbank auf einem anderen Server zuzugreifen?

Du kannst prinzipiell beliebig kombinieren, solange Du Connectivity auf
den entsprechenden Ports hast. Zum Beispiel ist es denkbar, eine MySQL-
Datenbank auf einem Rechner a laufen zu haben, aber die PHP-Anwendung 
auf dem Rechner b. Die eigentlichen Webseiten könnten dann zum Beispiel
ein Frameset auf dem Rechner c sein, das die Webseiten, die PHP enthalten
per <FRAME SRC=...> von b lädt, während die <IMG SRC=...> auf c alle auf
den Rechner d zeigen...

Um von b aus auf einen Datenbankserver a zugreifen zu können, brauchst Du
Connectivity auf dem MySQL Port (default: 3306).

Wenn zwischen dem Webserver b und dem Datenbankserver a das Internet liegt,
dann reisen Deine Queries mit der Ping-Zeit von b nach a und zurück. Das 
bedeutet, daß sich bei großen Entfernungen (in ms Pingzeit gerechner) die
Aufbauzeiten der Seite drastisch vergrößern können. Angenommen, Du hast eine
Pingzeit von 200ms zwischen a und b und Deine Seite braucht 10 Queries zum
Aufbau, dann kommen alleine 2000ms == 2 Sek Seitenaufbauzeit durch Reisezeiten
der Datenpakete zustande.

Wenn zwischen a und b das ungeschützte Internet liegt, dann mußt Du effektiv
Deinen MySQL-Port zum Internet hin aufmachen. Das bedeutet, daß Du Probleme
mit der Sicherheit Deiner Datenbank bekommen kannst. Ein bekannter deutscher
Buchhändler hat das zum Beispiel mit seinem Oracle gespielt. Da er zugleich
seine Platten per NFS an die Welt rausgegeben hatte, war es sehr leicht,
die benötigten Paßworte und Instanznamen aus den SQL-Loaderscripten zu lesen
und durch das Internet direkt mit einem SQLPLUS-Client auf seine Datenbank
zu connecten, in der sich Kundendaten, Kontonummern und the like befanden.
Das Datenbankpaßwort ist inzwischen geändert (ich habe da ja nur Dutzendweise
Mail hinsenden müssen), aber eine Firewall ist immer noch nicht vorhanden und 
man kann sich immer noch auf seinen Port 1521 connecten (und auf sein Solaris 
Answerbook, und auf seinen portmapper und ...).

Man sollte also schon ein wenig aufpassen, was man da tut und wie man damit
Schläge fangen kann.

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)


php::bar PHP Wiki   -   Listenarchive