Workshop für Webserver Installation / Datenbank-Backup

Beschreibung: Erklärung was ist ein Webserver und wie erstellt man einen.

Kategorie: Server, PHP und MySQL

Link zu diesem Artikel: Alles auswählen

[url=https://www.phpbb.de/kb/viewarticle?a=77]Knowledge Base - Workshop für Webserver Installation / Datenbank-Backup[/url]

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 z.B. auch den, dass HTML-Dokumente über den Browser im Netzwerk zugänglich gemacht werden. Ein Webserver läuft zumeist im Hintergrund, braucht relativ wenig Ressourcen 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 zeitintensiv, 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 mehr..
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 Startmenü 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 ein. 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ändern 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'] = '';   
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 trägt die Zugangsdaten und den Server der entsprechenden Datenbank ein. Es empfiehlt sich z.B. neben der lokalen Datenbank, die DB des Hosters mit in die Liste einzutragen (Siehe auch KB:phpmyadmin).
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. Standardmäßig haben nämlich die Hoster meist eine maximale Script-Laufzeit gesetzt. Dies dient dazu, Skripte zu stoppen, in denen z.B. 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 (standardmäßig deaktiviert). (Siehe KB:mysqlbackup)

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ürzt 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 z.B. das Forum (oder andere Scripte) lokal updaten, abändern und testen kann, während es online schon in Betrieb ist, habe aber gleichzeitig die Möglichkeit mit den realen Daten der "echten" Datenbank zu arbeiten. So spare ich mir Down-Zeiten und damit eventuell verbundene User-Verluste und vor allem Testdurchläufe.
Um eventuelle nachträgliche Änderungen in den Skripten zu vermeiden, sollte man versuchen den Server des Providers 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.