Workshop für Webserver Installation / Datenbank-Backup
Verfasst: 25.10.2003 03:46
Da ich auch auf meinem Board / über ICQ immer wieder auf DB-Backups und eigenen, lokalen Webserver angesprochen wurde, hab ich gerade mal einen kleines Tutorial dazu geschrieben. Es beschreibt nur die absoluten Basics, wollte Euch das aber (zumal ich allein heute schon zwei Posts zu dem Thema beantwortet habe) nicht vorenthalten...
Gruß, Dave...
Was ist ein Webserver
Um erstmal einem allgemein weitverbreitetem Vorurteil entgegen zu wirken: Ein Webserver ist kein eigener Computer und keine Hardware. Ein Webserver ist ein Programm, das im Hintergrund läuft und verschiedene Dienste zur Verfügung stellt, so zB auch den, dass HTML-Dokumente über den Browser im Netzwerk zugänglich gemacht werden. Ein Webserver läuft zumeist im Hintergrund, braucht relativ wenig Resourcen und stört auch weiter bei der normalen Windows-Arbeit nicht.
Es gibt zwei Arten von Webservern, die bei den meisten Providern benutzt werden. Zum einen, ein auf Windows-NT basierender Server und zum anderen ein Linux-basierender Server, als bekanntester frei verfügbarer Server sei hier Apache genannt, welchen wir auch im Folgenden benutzen werden, da dieser weiter verbreitet ist und NT-Server bestimmten Einschränkungen unterliegen
Warum lokal?
Programmiert man nur normale, statische Seiten, kann man diese natürlich direkt im Browser laden und anzeigen lassen. Will man hingegen cgi-Skripte, php-Dateien, SSI- oder gar Datenbankanwendungen nutzen, muss man als ambitionierter Webdesigner, seine Skripte jedes Mal per FTP zum Hosting-Provider hochladen, um diese zu testen. Das ist nicht nur Zeit-intensiv, sondern kann unter Umständen auch recht teuer werden - nicht jeder hat eine Flatrate oder eine Breitband-Verbindung zur Verfügung.
Installiert man den Server aber lokal, hat man eine Testumgebung, die besser nicht sein kann und kann hier in aller Ruhe PHP-Scripte ausprobieren ohne diese immer hochladen zu müssen. Außerdem bietet ein lokaler Webserver noch einen enormen Vorteil: Man kann nämlich hervorragend Datenbank-Backups (auch online) durchführen, ohne Probleme mit Script-Laufzeiten zu bekommen, doch dazu später...
Ein weiterer Pluspunkt ist der Sicherheits-Aspekt: PHP-Scripte sind während der Programmierung oft extrem anfällig gegen Hacker. Gerade aus Fehlermeldungen, kann dieser enorm viel Informationen über die Server- bzw- Datenbankstruktur erfahren und diese gegen einen selber einsetzen.
Installation
Theoretisch könnte man nun Apache, sowie die diversen Zusatz-Module (Perl, PHP-Interpreter etc) runterladen und einzeln installieren, es existieren aber zum Glück diverse fertig, installierte Lösungen. Eine der bekanntesten ist sicherlich PHP-Triad, welchen wir auch für diesen Workshop empfehlen:
Hier klicken zum Download
Das Archiv ist selbstentpackend und nach der Installation hat man auf dem C-Laufwerk ein Verzeichnis Apache und (evtl. Nach Neustart) im Startmenu einen neuen Ordner Programs (Achtung, nicht unter Programme) wo man den Server starten und beenden kann.
Ist der Server gestartet, gibt man im Browser die Adresse:
http://127.0.0.1 oder alternativ http://localhost nun sollte eine Startseite mit einigen Daten zum Webserver erscheinen.
Unter Umständen kann es sein, dass man die MySQL-Applikation gesondert starten muss. Man öffne dazu im Verzeichnis c:\apache\mysql\bin die Datei winmysqladmin.exe. In der Taskleiste erscheint dann eine kleine Ampel. Ist diese nicht grün, klickt man mit der rechten Maustaste auf das Icon wählt unter WIN NT / WIN 9x (je nach Betriebssystem) den Punkt Start the service und bestätigt die Folgende Meldung mit "Ja".
Nun ist die Installation eigentlich schon abgeschlossen. Alle Dateien im Verzeichnis c:\apache\htdocs kann man nun (wenn der Server gestartet ist) im Browser unter den beiden oben genannten Adressen erreichen. Auch .php Dateien werden nun ordnungsgemäß ausgeführt und nicht mehr als Textdatei angezeigt.
Datenbankadministration
Ein praktisches Tool, was bei PHP-Triad gleich mitinstalliert wurde ist phpMyAdmin. Es basiert auf einem recht weit verbreiteten php-Skript und erlaubt es ohne große MySQL-Kenntnisse, eine Datenbank zu erstellen, zu veränderun und zu administrieren. Man kann auf das Skript zugreifen indem man im Browser http://localhost/phpmyadmin/ eingibt.
Nun sieht man links die entsprechenden Datenbanken auf dem aktuellen Server. Letzteren kann über ein Auswahlfeld im Hauptframe abändern. Will man zusätzliche Server eintragen öffnet man die Datei C:\apache\htdocs\phpMyAdmin\config.inc.php. Hier erscheinte eine Liste die in etwa so aussieht:
Diese Zugangsdaten sind die Daten, die man auch in php für die eigenen Skripte nutzen kann. Will man weitere Server hinzufügen, kopiert man den obigen Block, ändert in den eckigen Klammern die [1] in eine [2] (oft sind auch schon leere Felder vorgegeben) bzw. die nächste laufende Nummer und tägt die Zugangsdaten und den Server der entsprechenden Datenbank ein. Es empfiehlt sich zB. neben der lokalen Datenbank, die DB des Hosters mit in die Liste einzutragen.
Da phpMyAdmin bei vielen Providern schon vorinstalliert ist und dort wertvollen Webspace (immerhin knapp 1,5 MB) belegt, kann man das Skript - falls möglich - natürlich dort löschen.
Datenbank Backup mit phpMyAdmin
Ein großes Problem bei fast allen Hosting-Providern ist das Backup von Datenbanken. Standard-mäßig haben nämlich die Hoster meist eine maximale Script-Laufzeit gesetzt. Dies dient dazu, Skripte zu stoppen, in denen zB. durch einen Programmierfehler eine Endlosschleife entsteht (sowas kann einen Rechner schonmal in die Knie zwingen).
Das Problem ist nun folgendes: phpMyAdmin ist natürlich ein normales PHP-Skript. Die Skript-Laufzeit ist nicht selten auf ein Maximum zwischen 30 und 60 Sekunden eingestellt, ein Datenbankbackup (oder dessen Rücksicherung) kann aber schonmal mehrere Stunden in Anspruch nehmen (allein schon wegen der begrenzten Upload-Geschwindigkeit). Auch hier bietet die lokale Installation des Servers den Vorteil, dass man hier natürlich an die Laufzeiten nicht gebunden ist (standard-mäßig deaktiviert). Will man nun ein Backup machen geht man in phpMyAdmin (naütrlich lokal), wählt die Datenbank aus und kreuzt bei Dump (Schema) folgende Punkte wie auf dem Screenshot an:
[ externes Bild ]
Hier wird nach dem Klick auf "OK" nun eine Datei mit der Endung .sql erzeugt, die man auf Festplatte sichert. Bei einer Rücksicherung muss man diese Datei nur unter Oder Datei in das Feld eintragen (bzw. über "Durchsuchen" auswählen) und auf "OK" klicken.
ACHTUNG: Sowohl Backup als, auch Rücksicherung können je nach Größe der Datenbank und Geschwindigkeit der Internetverbindung unter Umständen recht lange dauern. Man bekommt den Eindruck, dass der Browser abgestüzt sei (teilweise nur leeres Fenster). Solange aber keine Fehler-Meldung kommt, sollte man aber das laufende Skript nicht abbrechen.
Weitere Tipps
Ich arbeite - da ich selber eine Flatrate habe - oft mit lokalem Webserver und Online-Datenbank parallel. Gerade bei Foren-Installationen (phpBB) installiere ich die Datenbank schon online beim Hoster, lasse das Script aber lokal laufen. Das bietet den Vorteil, dass ich zB. das Forum (oder andere Scripte) lokal updaten, abändern und testen kann, während es online schon in Betrieb ist, habe aber aber gleichzeitig die Möglichkeit mit den realen Daten der "echten" Datenbank zu arbeiten. So spare ich mir Down-Zeiten und damit eventuelle verbundene User-Verluste und vor allem Testdurchläufe.
Um eventuelle nachträgliche Änderungen in den Skripten zu vermeiden, sollte man den Server des Providers versuchen auf dem eigenen Rechner "nachzubauen" und entsprechend dem Server-Root die Verzeichnisstruktur auf den lokalen Server (unterhalb des Verzeichnisses c:\apache\htdocs\) genauso zu erstellen, wie beim Provider.
Updates
Die einzelnen Komponenten, wie den php-Interpreter oder MySQL kann man natürlich für sich jeweils auf die neuste Version updaten, was aber nicht immer empfehlenswert ist. Man sollte vielmehr versuchen die Versionen zu installieren, die auch beim Provider eingesetzt werden, um so eine möglichst gute Testumgebung zu schaffen - dies gilt natürlich nicht für phpMyadmin...

Gruß, Dave...
Was ist ein Webserver
Um erstmal einem allgemein weitverbreitetem Vorurteil entgegen zu wirken: Ein Webserver ist kein eigener Computer und keine Hardware. Ein Webserver ist ein Programm, das im Hintergrund läuft und verschiedene Dienste zur Verfügung stellt, so zB auch den, dass HTML-Dokumente über den Browser im Netzwerk zugänglich gemacht werden. Ein Webserver läuft zumeist im Hintergrund, braucht relativ wenig Resourcen und stört auch weiter bei der normalen Windows-Arbeit nicht.
Es gibt zwei Arten von Webservern, die bei den meisten Providern benutzt werden. Zum einen, ein auf Windows-NT basierender Server und zum anderen ein Linux-basierender Server, als bekanntester frei verfügbarer Server sei hier Apache genannt, welchen wir auch im Folgenden benutzen werden, da dieser weiter verbreitet ist und NT-Server bestimmten Einschränkungen unterliegen
Warum lokal?
Programmiert man nur normale, statische Seiten, kann man diese natürlich direkt im Browser laden und anzeigen lassen. Will man hingegen cgi-Skripte, php-Dateien, SSI- oder gar Datenbankanwendungen nutzen, muss man als ambitionierter Webdesigner, seine Skripte jedes Mal per FTP zum Hosting-Provider hochladen, um diese zu testen. Das ist nicht nur Zeit-intensiv, sondern kann unter Umständen auch recht teuer werden - nicht jeder hat eine Flatrate oder eine Breitband-Verbindung zur Verfügung.
Installiert man den Server aber lokal, hat man eine Testumgebung, die besser nicht sein kann und kann hier in aller Ruhe PHP-Scripte ausprobieren ohne diese immer hochladen zu müssen. Außerdem bietet ein lokaler Webserver noch einen enormen Vorteil: Man kann nämlich hervorragend Datenbank-Backups (auch online) durchführen, ohne Probleme mit Script-Laufzeiten zu bekommen, doch dazu später...
Ein weiterer Pluspunkt ist der Sicherheits-Aspekt: PHP-Scripte sind während der Programmierung oft extrem anfällig gegen Hacker. Gerade aus Fehlermeldungen, kann dieser enorm viel Informationen über die Server- bzw- Datenbankstruktur erfahren und diese gegen einen selber einsetzen.
Installation
Theoretisch könnte man nun Apache, sowie die diversen Zusatz-Module (Perl, PHP-Interpreter etc) runterladen und einzeln installieren, es existieren aber zum Glück diverse fertig, installierte Lösungen. Eine der bekanntesten ist sicherlich PHP-Triad, welchen wir auch für diesen Workshop empfehlen:
Hier klicken zum Download
Das Archiv ist selbstentpackend und nach der Installation hat man auf dem C-Laufwerk ein Verzeichnis Apache und (evtl. Nach Neustart) im Startmenu einen neuen Ordner Programs (Achtung, nicht unter Programme) wo man den Server starten und beenden kann.
Ist der Server gestartet, gibt man im Browser die Adresse:
http://127.0.0.1 oder alternativ http://localhost nun sollte eine Startseite mit einigen Daten zum Webserver erscheinen.
Unter Umständen kann es sein, dass man die MySQL-Applikation gesondert starten muss. Man öffne dazu im Verzeichnis c:\apache\mysql\bin die Datei winmysqladmin.exe. In der Taskleiste erscheint dann eine kleine Ampel. Ist diese nicht grün, klickt man mit der rechten Maustaste auf das Icon wählt unter WIN NT / WIN 9x (je nach Betriebssystem) den Punkt Start the service und bestätigt die Folgende Meldung mit "Ja".
Nun ist die Installation eigentlich schon abgeschlossen. Alle Dateien im Verzeichnis c:\apache\htdocs kann man nun (wenn der Server gestartet ist) im Browser unter den beiden oben genannten Adressen erreichen. Auch .php Dateien werden nun ordnungsgemäß ausgeführt und nicht mehr als Textdatei angezeigt.
Datenbankadministration
Ein praktisches Tool, was bei PHP-Triad gleich mitinstalliert wurde ist phpMyAdmin. Es basiert auf einem recht weit verbreiteten php-Skript und erlaubt es ohne große MySQL-Kenntnisse, eine Datenbank zu erstellen, zu veränderun und zu administrieren. Man kann auf das Skript zugreifen indem man im Browser http://localhost/phpmyadmin/ eingibt.
Nun sieht man links die entsprechenden Datenbanken auf dem aktuellen Server. Letzteren kann über ein Auswahlfeld im Hauptframe abändern. Will man zusätzliche Server eintragen öffnet man die Datei C:\apache\htdocs\phpMyAdmin\config.inc.php. Hier erscheinte eine Liste die in etwa so aussieht:
Code: Alles auswählen
$cfgServers[1]['host'] = 'localhost'; // MySQL hostname
$cfgServers[1]['port'] = ''; // MySQL port - leave blank for default port
$cfgServers[1]['adv_auth'] = false; // Use advanced authentication?
$cfgServers[1]['stduser'] = 'root'; // MySQL standard user (only needed with advanced auth)
$cfgServers[1]['stdpass'] = ''; // MySQL standard password (only needed with advanced auth)
$cfgServers[1]['user'] = 'root'; // MySQL user (only needed with basic auth)
$cfgServers[1]['password'] = ''; // MySQL password (only needed with basic auth)
$cfgServers[1]['only_db'] = ''; // If set to a db-name, only this db is accessible
$cfgServers[1]['verbose'] = '';
Da phpMyAdmin bei vielen Providern schon vorinstalliert ist und dort wertvollen Webspace (immerhin knapp 1,5 MB) belegt, kann man das Skript - falls möglich - natürlich dort löschen.
Datenbank Backup mit phpMyAdmin
Ein großes Problem bei fast allen Hosting-Providern ist das Backup von Datenbanken. Standard-mäßig haben nämlich die Hoster meist eine maximale Script-Laufzeit gesetzt. Dies dient dazu, Skripte zu stoppen, in denen zB. durch einen Programmierfehler eine Endlosschleife entsteht (sowas kann einen Rechner schonmal in die Knie zwingen).
Das Problem ist nun folgendes: phpMyAdmin ist natürlich ein normales PHP-Skript. Die Skript-Laufzeit ist nicht selten auf ein Maximum zwischen 30 und 60 Sekunden eingestellt, ein Datenbankbackup (oder dessen Rücksicherung) kann aber schonmal mehrere Stunden in Anspruch nehmen (allein schon wegen der begrenzten Upload-Geschwindigkeit). Auch hier bietet die lokale Installation des Servers den Vorteil, dass man hier natürlich an die Laufzeiten nicht gebunden ist (standard-mäßig deaktiviert). Will man nun ein Backup machen geht man in phpMyAdmin (naütrlich lokal), wählt die Datenbank aus und kreuzt bei Dump (Schema) folgende Punkte wie auf dem Screenshot an:
[ externes Bild ]
Hier wird nach dem Klick auf "OK" nun eine Datei mit der Endung .sql erzeugt, die man auf Festplatte sichert. Bei einer Rücksicherung muss man diese Datei nur unter Oder Datei in das Feld eintragen (bzw. über "Durchsuchen" auswählen) und auf "OK" klicken.
ACHTUNG: Sowohl Backup als, auch Rücksicherung können je nach Größe der Datenbank und Geschwindigkeit der Internetverbindung unter Umständen recht lange dauern. Man bekommt den Eindruck, dass der Browser abgestüzt sei (teilweise nur leeres Fenster). Solange aber keine Fehler-Meldung kommt, sollte man aber das laufende Skript nicht abbrechen.
Weitere Tipps
Ich arbeite - da ich selber eine Flatrate habe - oft mit lokalem Webserver und Online-Datenbank parallel. Gerade bei Foren-Installationen (phpBB) installiere ich die Datenbank schon online beim Hoster, lasse das Script aber lokal laufen. Das bietet den Vorteil, dass ich zB. das Forum (oder andere Scripte) lokal updaten, abändern und testen kann, während es online schon in Betrieb ist, habe aber aber gleichzeitig die Möglichkeit mit den realen Daten der "echten" Datenbank zu arbeiten. So spare ich mir Down-Zeiten und damit eventuelle verbundene User-Verluste und vor allem Testdurchläufe.
Um eventuelle nachträgliche Änderungen in den Skripten zu vermeiden, sollte man den Server des Providers versuchen auf dem eigenen Rechner "nachzubauen" und entsprechend dem Server-Root die Verzeichnisstruktur auf den lokalen Server (unterhalb des Verzeichnisses c:\apache\htdocs\) genauso zu erstellen, wie beim Provider.
Updates
Die einzelnen Komponenten, wie den php-Interpreter oder MySQL kann man natürlich für sich jeweils auf die neuste Version updaten, was aber nicht immer empfehlenswert ist. Man sollte vielmehr versuchen die Versionen zu installieren, die auch beim Provider eingesetzt werden, um so eine möglichst gute Testumgebung zu schaffen - dies gilt natürlich nicht für phpMyadmin...
