Die Installationsroutine: was ein Installer wirklich macht

 

Nach dem FTP-Upload liegen die Dateien Ihrer Galerie zwar auf dem Webspace, aber sie wissen noch nichts voneinander. In der Datenbank gibt es keine Tabellen, auf dem Server keine Datei mit den Zugangsdaten und nirgends einen Benutzer, der sich anmelden dürfte. Das Bindeglied zwischen „hochgeladen“ und „läuft“ ist die Installationsroutine: eine Seite, die Sie einmal im Browser öffnen, die Ihren Webspace untersucht, ein paar Angaben von Ihnen abfragt und dann alles Nötige in der richtigen Reihenfolge anlegt. Ob das Programm Installer, Setup oder Einrichtungsassistent heißt, macht keinen Unterschied. Gemeint ist immer dieses kleine Werkzeug, das nach getaner Arbeit wieder vom Server verschwinden soll.

Installationsroutine: Ein Zahnrad-Maskottchen zeigt auf die Schritte Checkliste, Dateien, Datenbank und Admin bis zum Haken

Was die Installationsroutine Ihnen an Handarbeit abnimmt

Am deutlichsten wird der Nutzen, wenn man sich die Einrichtung ohne Hilfe vorstellt. Sie müssten in phpMyAdmin fünf Tabellen mit den passenden Spalten anlegen, für das Passwort der Verwaltung einen Hashwert berechnen, weil dort nie das Passwort selbst stehen darf, und eine PHP-Datei mit Datenbankserver, Datenbankname, Benutzer, Passwort und dem Serverpfad der Galerie von Hand schreiben und hochladen. Ein vergessenes Semikolon in dieser Datei, und jede Seite der Galerie endet mit einer Fehlermeldung. Ein vertippter Pfad, und die Bilder landen nicht dort, wo die Galerie sie sucht. Wer so etwas öfter macht, ist in einer Viertelstunde fertig. Wer es zum ersten Mal versucht, sucht oft einen ganzen Abend nach dem einen falschen Zeichen.

Von HandMit der Routine
PHP-Version und Erweiterungen beim Webhoster nachschlagenHäkchenliste auf der ersten Seite, fehlende Punkte rot markiert
Tabellen per SQL-Befehl in phpMyAdmin anlegenTabellen entstehen nach einem Klick im richtigen Zeichensatz
Passwort-Hash selbst erzeugen und eintragenSie tippen das Passwort, gespeichert wird nur der Hash
Konfigurationsdatei schreiben und hochladenDatei wird erzeugt, Sonderzeichen im Passwort können sie nicht beschädigen
Ordnerrechte ausprobieren, bis der Upload klapptPrüfung nennt jeden Ordner, in den der Server nicht schreiben darf

Die rechte Spalte zeigt den eigentlichen Gewinn. Die Routine erledigt dieselben Handgriffe, nur ohne Tippfehler, und sie meldet sich, bevor etwas schiefgeht. Wer schon einmal ein Datenbank-Passwort mit einem Apostroph darin in eine PHP-Datei kopiert hat, weiß, wie schnell so eine Datei unbrauchbar wird: Der Apostroph beendet die Zeichenkette zu früh, und PHP versteht den Rest nicht mehr.

Erst prüfen, dann schreiben: warum die Reihenfolge zählt

Eine gute Installationsroutine liest lange nur und schreibt erst ganz am Ende. Der Grund ist einfach: Eine halb fertige Einrichtung ist schlimmer als gar keine. Angenommen, die Tabellen sind schon angelegt, aber die Konfigurationsdatei lässt sich nicht speichern, weil dem Ordner die Schreibrechte fehlen. Beim zweiten Versuch stößt die Routine auf ihre eigenen Tabellen vom ersten Anlauf und kann nicht unterscheiden, ob dort nur Reste liegen oder schon eine echte Galerie mit Ihren Fotos. Sorgfältig gebaute Installer räumen deshalb hinter sich auf, wenn ein Schritt scheitert, und beginnen beim nächsten Klick wieder bei null.

Für Sie als Betreiber folgt daraus eine einfache Regel. Meldet die Routine einen Fehler an einem Feld, ändern Sie nur diese Angabe und schicken das Formular erneut ab. Meldet sie dagegen, dass in der Datenbank schon Tabellen liegen, halten Sie inne: Entweder haben Sie die falsche Datenbank eingetragen, oder dort läuft bereits eine Installation, die Sie nicht verlieren wollen. Löschen Sie in dieser Lage nie aus Ungeduld Tabellen in phpMyAdmin, bevor Sie wissen, zu welcher Anwendung sie gehören. Beim Webhoster teilen sich oft mehrere Programme eine einzige Datenbank.

Nach dem letzten Schritt: weg mit dem Installer

Kein anderer Teil Ihrer Galerie darf so viel wie die Installationsroutine, und keinen brauchen Sie nach dem ersten Tag weniger. Sie darf Tabellen anlegen und die Datei mit den Zugangsdaten schreiben. Bleibt sie öffentlich erreichbar, steht diese Macht jedem offen, der die Adresse errät, und ein Ordner namens install ist leicht zu erraten. Bei nachlässig gebauten Anwendungen kann ein Fremder die Einrichtung noch einmal durchlaufen, eine eigene Datenbank eintragen und sich so zum Verwalter Ihrer Seite machen. Deshalb gilt bei jeder Software: Ist die Einrichtung abgeschlossen, kommt der Installationsordner vom Server. Gut gemachte Programme erzwingen das, indem sie die Verwaltung erst öffnen, wenn er verschwunden ist.

So arbeitet die Installationsroutine im Bildergalerie-Script

Im Bildergalerie-Script steckt die Installationsroutine im Ordner install/. Sie rufen ihn nach dem Hochladen der Dateien im Browser auf, etwa unter https://www.ihre-domain.de/galerie/install/. Öffnen Sie vorher versehentlich die Verwaltung unter …/admin/, leitet diese Sie selbst dorthin weiter, solange es noch keine inc/config.php gibt. Alles Weitere passiert auf einer einzigen Seite, einen eigenen Schritt „Verbindung testen“ gibt es nicht. Das Diagramm zeigt die sechs Stationen eines Durchlaufs und die Stellen, an denen die Routine anhält, statt etwas zu überschreiben.

Animiertes Ablaufdiagramm der Installationsroutine: Systemprüfung, Formular, Datenbankverbindung, Tabellen anlegen, inc/config.php schreiben und install/ löschen, mit Abbruch bei fehlenden Pflichtpunkten oder vorhandenen Tabellen
Sechs Stationen, drei Haltepunkte: Die Routine schreibt erst, wenn alle Prüfungen bestanden sind, und räumt bei einem Fehler wieder auf.

Oben steht die Systemprüfung mit neun Punkten, jeder mit Häkchen oder Kreuz: PHP 8.2 oder neuer, die Bildbearbeitung GD mit JPEG, PNG und GIF, die Datenbankanbindung mysqli, mbstring für Texte mit Umlauten, exif als Empfehlung und Schreibrechte für die vier Ordner bilder, bilder/tn, cache und inc. Fehlt ein Pflichtpunkt, erscheint „Systemprüfung: Es fehlt noch etwas“ und statt des Formulars nur der Knopf „Erneut prüfen“. Unter dem fehlenden Punkt steht, was zu tun ist, bei Ordnern zum Beispiel, die Rechte per FTP auf 755 zu setzen und es danach mit 775 zu versuchen. Erst bei „Systemprüfung bestanden“ folgt das Formular mit drei Abschnitten: Benutzername (höchstens 50 Zeichen) und Passwort (mindestens 8 Zeichen) für die Verwaltung, die vier Zugangsdaten zur Datenbank mit dem vorbelegten Server localhost und der Pfad zur Galerie, den die Routine selbst vorschlägt.

Nach dem Klick auf „Jetzt installieren“ legt die Installationsroutine die fünf Tabellen admin, admin_log, bilder, kategorie und einstellung an, speichert Ihr Passwort nur als bcrypt-Wert, trägt 16 Einstellungen mit Standardwerten ein und schreibt zuletzt die Datei inc/config.php. Darin landen auch nur die Bildformate, die GD auf Ihrem Server wirklich beherrscht. Fehlt etwa die GIF-Unterstützung, meldet die Prüfung das als Warnung, die Einrichtung läuft trotzdem durch, und die Galerie nimmt später nur JPEG und PNG an. Scheitert ein Schritt, entfernt die Routine die Tabellen, die sie in diesem Durchgang angelegt hat. Ein zweiter Versuch beginnt also wieder sauber.

Typische Meldungen und was dahintersteckt

Die Fehler beim Einrichten einer Galerie sind erstaunlich gleichförmig, und die Routine benennt fast jeden selbst. Meldungen zum Formular stehen gesammelt oben und zusätzlich am betroffenen Feld. Beide Passwörter müssen Sie danach neu eingeben, sie werden aus Sicherheitsgründen nicht zurück ins Formular geschrieben.

Meldung (gekürzt)Typische Ursache und Abhilfe
Kreuz bei „PHP 8.2 oder neuer“Im Kundenmenü hat oft jede Domain ihre eigene PHP-Einstellung. Wer nur die Hauptdomain umgestellt hat, sieht das Kreuz auf der Subdomain, unter der die Galerie liegt.
Kreuz bei „Schreibrechte für den Ordner bilder/tn“Der Webserver darf dort nicht schreiben. Rechte per FTP auf 755 setzen, hilft das nicht, auf 775, dann „Erneut prüfen“.
„In diesem Ordner liegt keine Bildergalerie (bildergalerie.php fehlt).“Falscher Pfad im Formular oder ein abgebrochener FTP-Upload. Den Vorschlag der Routine übernehmen und im Zweifel die Ordnerliste auf dem Server mit dem entpackten Paket vergleichen.
„Der Datenbank-Server lehnt die Anmeldung ab.“Datenbank-Benutzer oder Datenbank-Passwort falsch. Gemeint sind die Daten aus dem Kundenmenü, nicht Ihr Galerie-Konto.
„Der Datenbank-Server … ist nicht erreichbar.“Der Webhoster nennt im Kundenmenü einen eigenen Servernamen statt localhost. Diesen Namen eintragen.
„In der Datenbank … gibt es bereits Tabellen der Bildergalerie“Dort läuft schon eine Galerie. Die Routine überschreibt sie nicht; tragen Sie eine leere Datenbank ein.
„Die Datei inc/config.php konnte nicht vollständig geschrieben werden.“Meist ist der Speicherplatz des Webspace voll. Die Routine löscht die halbe Datei und die neuen Tabellen; nach dem Aufräumen einfach erneut installieren.
„Das Passwort muss mindestens 8 Zeichen lang sein.“Das Passwort für die Verwaltung ist zu kurz.

Eine Falle meldet keine Routine: Manche FTP-Programme blenden Dateien aus, deren Name mit einem Punkt beginnt, etwa .htaccess, und laden sie deshalb gar nicht erst hoch. Die Galerie läuft dann, aber ein Schutz fehlt. Lassen Sie sich im FTP-Programm versteckte Dateien anzeigen und prüfen Sie zum Beispiel, ob bilder/.htaccess auf dem Server liegt.

Nach dem Erfolg erscheint „Installation abgeschlossen“ mit dem Knopf „Installationsordner jetzt löschen“. Er gilt 30 Minuten lang und nur im selben Browser. Solange install/ auf dem Server liegt, bleibt die Verwaltung gesperrt. Ein erneuter Aufruf der Routine zeigt nur noch „Die Bildergalerie ist bereits installiert“ und ändert nichts, weil inc/config.php schon existiert. Ein Fremder kann die Einrichtung also nicht einfach neu starten. Ansehen können Sie den ganzen Ablauf am eigenen Webspace, das Bildergalerie-Script lässt sich kostenlos herunterladen.

Häufige Fragen zur Installationsroutine

Vor dem ersten Durchlauf wollen die meisten wissen, was sie bereithalten müssen und was nach dem letzten Klick noch zu tun bleibt.

Muss ich die Installationsroutine bei einem Update wieder aufrufen?

Nein. Sie richtet einmal ein, was vorher nicht da war: Tabellen, Zugangsdaten, das erste Konto. Ein Update tauscht dagegen Programmdateien aus, Ihre Daten bleiben, wo sie sind. Beim Bildergalerie-Script ändert sich etwa beim Wechsel von 3.10 auf 3.15 an der Datenbank nichts. Sie laden die neuen Dateien hoch und löschen danach den mitgelieferten Ordner install wieder. Rufen Sie ihn versehentlich auf, erkennt die Routine die vorhandene inc/config.php und meldet nur, dass die Galerie bereits installiert ist. Andere Anwendungen bringen für Updates manchmal ein eigenes Skript mit, das die Datenbank anpasst. Das ist ein anderes Werkzeug als der Installer, auch wenn es ähnlich aussieht.

Wie lösche ich den Installer sicher?

Am einfachsten mit dem Knopf, den viele Programme direkt nach der Einrichtung anbieten. Klappt das nicht, verbinden Sie sich per FTP oder über den Dateimanager des Webhosters, öffnen den Ordner der Anwendung und löschen den Installationsordner samt Inhalt. Beim Bildergalerie-Script genügt ein Klick auf „Installationsordner jetzt löschen“. Fehlen dem Webserver dafür die Rechte, nennt die Seite die betroffenen Dateien, und Sie entfernen den Ordner install per FTP.

Was muss ich der Routine während des Laufs mitgeben?

Legen Sie sich vier Angaben aus dem Kundenmenü Ihres Webhosters bereit: Datenbankserver, Name der Datenbank, Datenbank-Benutzer und dessen Passwort. Dazu kommen ein Benutzername und ein Passwort, mit denen Sie sich später in der Verwaltung anmelden. Den Pfad auf dem Server schlägt die Routine meist selbst vor, und die Prüfung der Umgebung erledigt sie ohne Ihr Zutun.

Verwandte Themen

Die Routine berührt Installation, Datenbank und spätere Updates, hier die direkt anschließenden Anleitungen: