[gelöst] Wie kann ich eine Testinstanz beim Hoster einrichten?
am 22.07.2010 - 21:47 Uhr in
Hallo,
es wird immer wieder empfohlen, dass vor dem Einspielen von Änderungen erstmal (auf dem lokalen Drupal) testen soll. Der Tipp ist sicherlich gut, allerdings möchte ich nicht auf einem lokalen Drupal testen, sondern auf einer Drupal Testinstanz bei meinem Hoster (Alfahosting). Auf dem lokalen Drupal habe ich schließlich andere Rechte und Möglichkeiten, so dass die Erkenntnisse dann doch nur bedingt nutzbar sind.
Ich habe eine Webseite produktiv beim Hoster am Laufen. Nun möchte ich eine Kopie der produktiven Seite als Testinstanz laufen lassen. Auf dieser Testinstanz möchte ich dann optische Änderungen (Themes, CSS) und Module testen. Deswegen würde es mich nicht stören bzw. wäre es sogar gut, wenn die Inhalte von der produktiven Seite auch auf der Testseite vorhanden sind.
Nun meine Frage: Wie komme ich zu der Testinstanz? Als Drupal Anfänger brauche ich hier etwas konzeptionelle Hilfe, welche Schritte grundsätzlich nötig sind.
Hier mal ein Auflistung, was installiert ist und was mir zur Verfügung steht:
Das Drupal wurde per One-Click Installation installiert. (Zunächst war es die Version 6.15, ich habe sie inzwischen auf 6.17 upgegradet).
Domains: Ich habe zwei Domains und kann nahezu beliebig viele Sub-Domains einrichten.
MySQL Datenbanken: Nach meinem Verständnis sind die Seiteninhalte in der Datenbank gespeichert, so dass mir eine reicht. Theoretisch darf ich aber 8 haben.
Was ich schon probiert habe:
1) Ich habe meine produktive Seite, konkret das Verzeichnis /html/drupal6-de nach /html/drupal6-de-test kopiert. Frage am Rande: Ich habe die Daten mit FileZilla erstmal auf meinen lokalen Rechner kopiert, das Verzeichnis umbenannt und dann wieder hochgeladen. Ist es mit FTP bzw. FileZilla möglich, dass ich die Daten direkt auf dem Server kopiere, ohne über meinen Rechner zu gehen? Wäre doch viel praktischer.)
2) Dann habe ich bei meinem Hoster eingestellt, dass eine Testdomain sein DocumentRoot nun auf /html/drupal6-de-test hat (anstatt auf /html/drupal6) .
3) Dann habe ich die Testdomain im Browser aufgerufen und erhalte eine leere Seite.
Scheinbar bin ich in die völlig falsche Richtung gelaufen - oder es fehlt nur noch etwas? Wer kann mir konzeptionell helfen?
Vielen Dank schon mal für eure Beiträge!
Grüße, wakeup
- Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Nach meinem
am 22.07.2010 - 22:52 Uhr
Nach meinem Verständnis sind die Seiteninhalte in der Datenbank gespeichert, so dass mir eine reicht.
Das stimmt so nicht. In der Datenbank wird so ziemlich alles gespeichert, Seiteninhalte (Nodes), User-Daten und auch Modul- und Theme-Konfigurationen.
Ergo benötigst du für deine Test-Installation eine weitere Datenbank, welche ein SQL-Dump der produktiven Seite enthält. Denn sonst werden die Änderungen an Themes usw. in der DB gespeichert, auf die auch die produktive Seite zugreift.
Beispiel: Du änderst in der Test-Installation das Theme (auf ein neues Theme, welches auf der produktiven Seite nicht hochgeladen ist). Diese Info wird in der DB gespeichert. Wenn jetzt jemand die produktive Seite aufrufen will, gibt's Fehler, weil in der DB ein Theme als Standard eingetragen ist, welches gar nicht existiert (auf der Live-Seite). Also unbedingt eine zweite Datenbank verwenden!
Im Grunde war dein Vorgehen allerdings schon richtig. Das einzige was mir einfällt: Kann sein, dass für die Subdomain andere PHP-Einstellungen gelten. Ich habe bei mir z.B. 128 MB PHP-Memory-Limit, aber wenn ich mir eine Subdomain anlege, habe ich dort nur 32 MB, was für Drupal viel zu wenig ist. Das lässt sich leicht überprüfen:
Erstelle eine neue Datei namens info.php mit folgendem Inhalt:
<?phpphpinfo();
?>
(inkl. PHP-Begrenzer)
Danach löschst du alles aus deinem Test-Ordner (html/drupal6-de-test) und lädst die Datei info.php in diesen Ordner. Nun rufst du subdomain/info.php auf und dürftest eine PHP-Info erhalten. Dort kannst du mal schauen, wie die Werte aussehen (vor allem php_memory_limit).
Zitat: Ergo benötigst du für
am 23.07.2010 - 08:54 Uhr
Ergo benötigst du für deine Test-Installation eine weitere Datenbank, welche ein SQL-Dump der produktiven Seite enthält
Ok, ich muss also folgendes tun:
1) Eine neue MySQL Datenbank anlegen. Das mache ich mit phpMyAdmin. Frage dazu: Soll es wirklich eine ganze Datenbank sein, oder nur eine neue Tabelle in der vorhandenen Datenbank?
2) Von meiner produktiven Datenbank mache ich ein SQL-Dump (auch mit phpMyAdmin) und spiele diese Sicherung dann in die neue DB ein.
3) Irgendwie muss die Testinstanz (Verzeichnis /html/drupal6-test) mit der neuen DB verbunden werden. Wie mache ich das?
Grüße, wakeup
Zitat: Soll es wirklich eine
am 23.07.2010 - 13:21 Uhr
Soll es wirklich eine ganze Datenbank sein, oder nur eine neue Tabelle in der vorhandenen Datenbank?
Natürlich eine neue Datenbank, eine einzelne Tabelle bringt ja nichts. Drupal hat immer Anbindung zu einer Datenbank, in der dann mehrere Tabellen für diese Drupal-Installation angelegt werden. Ergo: Neue Datenbank
3) Irgendwie muss die Testinstanz (Verzeichnis /html/drupal6-test) mit der neuen DB verbunden werden. Wie mache ich das?
Indem du die settings.php deiner Test-Installation bearbeitest und dort an der richtigen Stelle (einfach nach unten scrollen bis da was von mysql steht) die DB-Verbindungsdaten an die neue Datenbank anpassen.
Es funktioniert noch nicht
am 26.07.2010 - 16:45 Uhr
Ich habe nun eine neue Datenbank angelegt, dann die alte Datenbank exportiert und in die neue Datenbank importiert.
Dann habe ich in der Datei /sites/default/settings.php im Abschnitt Datenbankkonfiguration die neue Datenbank eingetragen.
Dann habe ich die URL meiner Testdomain aufgerufen. Es gibt immer noch eine leere Seite. :-(
Die Seite hat tatsächlich nur 16M Speicher, allerdings gilt das ebenso für die Hauptseite, die ja funktioniert. Daran kann es also nicht liegen.
Wenn ich update.php aufrufe tut sich nichts und wenn ich install.php aufrufen, dann bekomme ich folgende Meldung:
Warning: theme_render_template(./themes/garland/maintenance-page.tpl.php) [function.theme-render-template]: failed to open stream: No such file or directory in /var/www/web123/html/drupal6.17-de-test/includes/theme.inc on line 1066Warning: theme_render_template(./themes/garland/maintenance-page.tpl.php) [function.theme-render-template]: failed to open stream: No such file or directory in /var/www/web123/html/drupal6.17-de-test/includes/theme.inc on line 1066
Warning: theme_render_template(./themes/garland/maintenance-page.tpl.php) [function.theme-render-template]: failed to open stream: No such file or directory in /var/www/web123/html/drupal6.17-de-test/includes/theme.inc on line 1066
Warning: theme_render_template() [function.include]: Failed opening './themes/garland/maintenance-page.tpl.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/web123/html/drupal6.17-de-test/includes/theme.inc on line 1066
Vielleicht könnte mir jemand nochmal von Anfang an beschreiben, was getan werden muss, um eine Testinstanz (Kopie der Produktivseite) beim Hoster zu erstellen?
Danke und Grüße
Wakeup
Nach erneutem Versuch klappt es
am 26.07.2010 - 19:49 Uhr
Ich bin die Schritte nochmal durchgegangen und jetzt klappt es. Worum es zuvor nicht geklappt hat, weiß ich nicht. Vielleicht wurde zuvor etwas nicht richtig mitkopiert oder etwas war im Cache. Oder der Aufruf von install.php und update.php, bevor die zweite Datenbank erstellt war, war schädlich. Was auch immer.
Also, hier nochmal die Schritte, wie ich eine Testinstanz beim Hoster erstellt habe:
1) Das Installationsverzeichnis kopieren.
2) Den DocumentRoot der Testdomain auf das Test-Installationsverzeichnis einstellen.
3) Eine zweite MySQL Datenbank (DB) erstellen.
4) Die aktuelle DB exportieren und in die neue DB importieren.
5) In der Datei /sites/default/settings.php die Verbindung zur neuen DB eintragen.
6) Die Testdomain aufrufen.
Falls jemand einen besseren Weg kennt, lasse ich mich gerne belehren.
Grüße, wakeup
Lokale Testinstallation und/oder Multisite-Installation
am 26.07.2010 - 20:04 Uhr
Ich würde zum Testen lieber eine lokale Installation benutzen, z.B. mit XAMPP.
Und für mehrere separate Installationen beim Hoster empfiehlt sich eine Multisite-Installation. Da brauchst du die Drupal-Codebasis nur einmal zu pflegen, kannst aber mehrere Websites damit betreiben. Am elegantesten geht das mit Subdomains (also z.B. "test.deine-domain.de").
Würde ich so pauschal nicht
am 26.07.2010 - 20:41 Uhr
Würde ich so pauschal nicht sagen. Ich habe früher auch mit WAMP (XAMPP mag ich persönlich nicht so) meine Tests gemacht und bin inzwischen auch auf eine separate Drupal-Installation auf dem Webspace umgestiegen, denn damit hat man einfach die realistischste Umgebung. Sachen, die lokal klappen, können aufgrund der Server-Konfiguration online evtl. nicht mehr klappen. Außerdem gibt's lokal manchmal ein Problem mit der Statusabfrage für Updates, das macht die Installation mitunter total lahm. Außerdem habe ich z.B. Formulare geschrieben, die Mails verschicken, sowas lokal zu testen und mir dafür extra noch einen Mailserver einzurichten, völlig unnötiger Aufwand, meiner Meinung nach, kann ich doch gleich online machen.
Und Multisite ist auch nicht immer sinnvoll, gerade bei sowas.
Die Module und Themes für meine produktive Seite liegen unter sites/all/* und dort sollen sie auch bleiben. Wenn ich jetzt für die Test-Umgebung ein wenig am Theme herumprobieren möchte, ist das doof, weil das Theme eben auch in sites/all liegt und dann die Änderungen auch auf der produktiven Seite wirksam würden. Ich habe mir einmal meine produktive Seite gespiegelt, importiere dort ab und zu mal ein Datenbank-Backup, um auf die gleiche Basis zu kommen und fertig. Ich nehme lieber zwei getrennte Installationen, erstens hat das keinerlei Nachteile in diesem Fall (zumindest wüsste ich nicht, welche) und zweitens ist so die Gefahr geringer, dass man mal versehentlich was an der produktiven Seite ändert.
Multisite und XAMPP / WAMP sind sicher praktisch, aber zur Entwicklung nehme ich nur noch eine separate Installation direkt auf dem Webspace, das finde ich einfach besser. Subdomain geht bei mir z.B. nicht, weil ich dann (keine Ahnung, warum) nur noch 16 oder 32 MB php_memory_limit habe, was viel zu wenig ist.
Außerdem habe ich bei mir die Erfahrung gemacht, dass die Seiten lokal meistens um Längen langsamer läuft als online (und ich bin mir sicher, dass das nicht an meiner Rechner-Leistung liegt.)