2.5 Testumgebung konfigurieren für Fortgeschrittene 

Nach der erfolgreichen Joomla!-Installation kehren Sie noch einmal kurz zur Konfiguration der Entwicklungs- und Testumgebung zurück. Ein paar Tricks verstecken sich noch im Ärmel, um das Maximum aus dem System herauszukitzeln.
Hinweis: Beachten Sie, dass die in diesem Abschnitt vorgestellten Mechanismen nicht für ein lauffähiges Joomla!-System notwendig sind und sich an den fortgeschrittenen Anwender richten, der die Serverumgebung näher kennenlernen und finetunen möchte.
2.5.1 Testumgebung von außen erreichbar machen 

In einer Woche sitzen Sie an einem Strand der ibizenkischen Südküste, und plötzlich juckt die Weiterentwicklung der Joomla!-Website unter den Fingernägeln? Oder ein Kollege oder Freund soll mal einen Blick auf Ihre neue Website werfen, um das Look and Feel zu bewerten? Dann muss die Testinstallation aus diesem Kapitel von außen, aus dem Internet, erreichbar sein.
Die Testumgebung nach außen freizuschalten ist grundsätzlich kein Problem. Ihr Rechner bzw. Ihr Heimnetzwerk erhielt vom Internetprovider eine öffentliche IP, eine Internetadresse, über die Ihre Geräte, damit auch der Rechner, auf dem die Joomla!-Website läuft, erreichbar sind. Diese Erreichbarkeit ist aus verständlichen Sicherheitsgründen bei allen Heimnetzwerken erst mal deaktiviert, also öffnen Sie auf diesen Seiten Schritt für Schritt die notwendigen Kanäle. Nicht aber, ohne vorher Sicherheitsmaßnahmen zu ergreifen, die potenziellen Hackerangriffen ein paar Steine in den Weg werfen. Achtung: Bevor Sie in diesem Abschnitt fortfahren, studieren Sie dringend Abschnitt 22.2.2, »Zusätzliches Serverpasswort einrichten«, und Abschnitt 22.2.3, »Websitezugriff anhand der IP einschränken«. Führen Sie die dort vorgestellten Maßnahmen durch, um Ihre Testumgebung so gut wie möglich nach außen abzuschotten und nur gezielte Zugriffe zu erlauben. Für die IP-Einschränkung bedeutet das: das gesamte Internet auszusperren und nur Ihre eigene und die IP des Kollegen freizuschalten, der Ihre Joomla!-Website begutachten soll. Bei der HTTP-Passwortsperre achten Sie darauf, dass Sie für das Testsystem nicht nur das Unterverzeichnis /administrator/, sondern auch das Hauptverzeichnis schützen. Dorthin platzieren Sie auch die neu erzeugte .htpasswd-Datei.
Achtung: Nach außen freigeschaltete Systeme sind Hackerangriffen ausgesetzt
Schalten Sie Ihr Testsystem nur dann nach außen frei, wenn es absolut notwendig ist. In dem Augenblick, in dem die Freischaltung erfolgt, ist Ihr Rechner potenziellen Hackerangriffen ausgesetzt. Sie treffen zwar allerlei Vorsichtsmaßnahmen, dass eigentlich nichts passieren kann, doch die wirksamste Maßnahme ist die Bewusstwerdung des Sicherheitsrisikos. Bedenken Sie: Hundertprozentige Sicherheit gibt es nicht; insbesondere da Quantenkryptografie noch in den Kinderschuhen steckt.
In jedem Fall lässt sich das in diesem Abschnitt vorgestellte Material als Informationsquelle nutzen, um mehr über Router, Portfreigaben und DNS-Konfigurationen zu erfahren.
Portfreigabe einrichten
Im Internet ist jedes angeschlossene Gerät durch eine eindeutige Adresse, die sogenannte IP-Adresse oder kurz IP, erreichbar – eine Art Hausnummer. Sie besteht aus einer Gruppe von vier Zahlen zwischen 0 und 255 und wird Ihnen vom Internetprovider zugeteilt. Sehen Sie einfach mal nach, unter welcher IP Sie im Internet erreichbar sind, indem Sie in Ihrer Suchmaschine »what is my ip« eingeben. Idealerweise erhalten Sie schon im Suchergebnis die vierstellige Internetadresse, aber auch Websites wie http://www.whatismyip.com verraten die Adresse.
Abbildung 2.40 Mit der externen, vom Internetprovider vergebenen IP ist Ihr Heimnetzwerk von außen erreichbar; Ihr Router sorgt mit einem eigenen kleinen Heimnetzwerk (beginnt z. B. mit »192.168.178«) dafür, dass jedes angeschlossene Gerät individuell Daten sendet und empfängt.
Geben Sie diese Zahlenkombination nun in die Adresszeile im Browser ein, passiert erst mal nichts. Das ist gut so, denn es bedeutet, dass Ihr Internetrouter den Webserverkanal nach außen (Standardport 80) von Haus aus sperrt. Tatsächlich blockieren Router in ihrer Werkseinstellung die meisten Eingangsports, bis sie explizit freigegeben werden – so ist Ihr Heimnetzwerk vor Zugriffen aus dem Internet, damit auch potenziell gefährlichen Angriffen, geschützt. Ausgehende Ports sind natürlich freigeschaltet, um alle Internetdienste nutzen können.
Damit Ihre Testumgebung von außen erreichbar ist, schalten Sie einen eingehenden Port frei, am besten den dafür vorgesehenen Websiteport 80. Melden Sie sich dazu in Ihrem Router an, und suchen Sie in den Einstellungen nach Portfreigaben. Die Konfiguration versteckt sich je nach Routerhersteller und -modell in Unterseiten – konsultieren Sie dann die Anleitung, mit Google auffindbare Hilfeforen (Stichwörter »Hersteller«, »Modell« und »Portfreigabe«) oder den Customer-Support des Herstellers.
Sie konfigurieren die Freigabe nun so, dass Ihre externe IP direkt auf die Joomla!-Installation verweist, die Sie beim Einrichten in Abschnitt 2.4.2, »Joomla!-Installation ohne Unterverzeichnis erreichen«, auf den lokalen Port 81 gelegt haben.
Wenn Sie in Ihrer Routerkonfiguration die Portfreigabe gefunden haben, suchen Sie eine Einstellungsmöglichkeit, in der alle Optionen manuell konfigurierbar sind, inklusive Eingangs- und Zielport. Füllen Sie das Konfigurationsformular dann so aus wie in Abbildung 2.41. Wichtig sind diese Einstellungen:
-
Als Protokoll kommt TCP zum Einsatz, das ist eines der Protokolle, das für die Übertragungen von Websites verwendet wird.
-
Der Eingangsport (im Screenshot von Port) ist 80, der Standardport für Websites, der hinter IP-Adressen oder Domain-Namen weggelassen werden darf.
-
An Computer/an IP-Adresse: Dies ist die IP, die Ihr Rechner im internen Heimnetzwerk vom Router erhalten hat. Nicht zu verwechseln mit der externen IP, mit der Ihr gesamtes Netzwerk von außen erreicht wird – siehe Abbildung 2.40, die den Zusammenhang zwischen externer und internen IPs darstellt. Ihr Router wird Ihnen wahrscheinlich eine Liste von möglichen Computernamen oder IPs präsentieren, aus der Sie die richtige bequem herauspicken.
-
Der Zielport (im Screenshot an Port) ist 81. Das ist der Port, den Sie schon in Abschnitt 2.4.2, »Joomla!-Installation ohne Unterverzeichnis erreichen«, für die Testumgebung auf Ihrem Arbeitsrechner (localhost) angegeben hatten.
Ab jetzt können Sie die lokale Joomla!-Installation durch Eingabe Ihrer externen IP-Adresse im Browser ansurfen.
Abbildung 2.41 In der Portfreigabe des Internetrouters wird der externe Port 80 (Standard für Websites) auf den lokalen Port 81 der Joomla!-Installation geleitet.
Domain einrichten
Die Eingabe der IP in die Adresszeile des Browsers ist nicht die eleganteste Art und Weise, einen Webserver zu erreichen. Wäre es nicht schön, wenn Ihre Website unter http://joomla3test.IhrDomainName.de erreichbar ist? Kein Problem, wenn Sie Zugriff auf die DNS-Einstellungen Ihres Webhosting-Pakets haben (im Zweifel einfach eine Support-E-Mail-Anfrage schicken).
DNS steht für Domain Name Server und beschreibt das System und die Server hinter der Auflösung eines Domain-Namens zur IP. Wenn Sie z. B. https://joomla-handbuch.com in die Adresszeile des Browsers eingeben, ist diese Auflösung das Allererste, was passiert, nachdem Sie (¢) drücken. Jetzt weiß der Browser, dass er eigentlich die IP 85.13.136.157 abrufen möchte – vereinfacht gesagt, handelt es sich um eine gigantische Tabelle mit zwei Spalten, in denen Domains IPs zugeordnet werden.
Domain Name Server stehen überall, bei Ihrem Internet Service Provider (ISP), bei Ihrem Webhoster und, bildlich gesprochen, an allen wichtigen Knotenpunkten im Internet. Überall dort, wo Daten aus der Domain/IP-Tabelle abgerufen oder geändert werden.
Anlage eines DNS-A-Records
Damit Ihre lokale Website unter http://joomla3test.IhrDomainName.de erreichbar ist, ergänzen Sie die Subdomain joomla3test als sogenannten A-Record in den DNS-Einstellungen Ihrer Domain-Verwaltung. Abbildung 2.42 ist ein Beispiel für solch eine Konfiguration, die sich bei allen Webhostern aber mehr oder weniger ähnelt. Im Zweifel kontaktieren Sie den Support.
Abbildung 2.42 Beispiel für einen DNS-Eintrag für die Subdomain »joomla3test« der Hauptdomain »joomla-handbuch.com« – unter »DATA« tragen Sie die externe IP ein, die Ihr Heimnetzwerk nach außen hat.
Beachten Sie, dass es nach dem neuen DNS-Eintrag eine Weile braucht, bis die neue Route funktioniert und aufgelöst wird. Nach dem Klick auf Hinzufügen wird die DNS-Maschinerie des gesamten Internets angeworfen und die Modifikation weltweit propagiert. Das dauert von einigen Minuten bis zu wenigen Stunden. Vielleicht aber auch mehrere Tage, wenn der Kollege, der sich Ihre Website ansehen soll, im Mount-Everest-Basislager sitzt und über das Mobiltelefon einen nepalesischen Domain Name Server benutzt.
IP-Aktualisierung per Dynamic DNS
Was aber, wenn Ihr Heimnetzwerk nach außen eine dynamische, sich ständig ändernde IP erhält? Ein bisschen komplizierter wird es, falls Ihr Internetprovider Ihrem Heimnetzwerk keine statische IP vergibt, wie es bei modernen Breitbandverbindungen üblich ist, sondern eine dynamische. Das bedeutet, dass jedes Mal, wenn sich Ihr Router neu mit dem Internet verbindet (in der Regel einmal täglich) Ihr Heimnetzwerk unter einer anderen IP erreichbar ist. In diesem Fall müsste die IP im DNS-Eintrag stets angepasst werden.
Doch auch für dieses Szenario gibt es passende Dienste: Dynamic oder dynamische DNS. Dabei meldet sich Ihr Router nach erfolgreicher Internetverbindung beim DDNS-Dienst an und teilt ihm die neue IP mit; der Dienst verknüpft diese IP dann mit der vorkonfigurierten Domain.
Abbildung 2.43 Beispiel für die Dynamic-DNS-Einstellungen bei einem Webhoster – die oben stehenden Informationen dienen zur Konfiguration Ihres Heimnetzwerk-Routers.
Abbildung 2.44 Beispiel für die Übernahme der vom Webhoster erhaltenen DDNS-Einstellungen in die Routerkonfiguration
Viele Webhoster bieten die DDNS-Option standardmäßig an, und so müssen lediglich zwei Konfigurationsformulare ausgefüllt werden, um die Verbindung herzustellen: eines beim Webhoster (siehe Abbildung 2.43), das andere in Ihrem Router (siehe Abbildung 2.44).
Alle Router-/Webhoster-Kombinationen vorzustellen sprengt leider den Umfang dieses Buchs; am besten wenden Sie sich an den Support Ihres Webhosters, um DDNS bei sich zu konfigurieren.
2.5.2 Geschummelten E-Mail-Versand unter Windows einrichten 

Joomla! verwaltet nicht nur Content, sondern verschickt auch gelegentlich E-Mails, z. B. wenn sich neue Benutzer registrieren. Das funktioniert bei der lokalen Installation aber nicht, da für den Mailversand ein Mailserver notwendig ist, der Installationsaufwand in der Entwicklungsumgebung aber den Nutzen nicht rechtfertigt.
Versendet eine in der XAMPP-Umgebung laufende Webapplikation eine Mail, so wird sie nicht verschickt, sondern landet im Ordner C:\xampp\mailoutput. So hat man immerhin stets die Möglichkeit, den Mailversand theoretisch zu testen und die Inhalte zu prüfen.
Unter Windows gibt es aber einen kleinen Trick, um trotzdem Mails zu versenden.
Während der Installation haben Sie eine Komponente mit ominös klingendem Namen markiert: Fake Sendmail. Das ist ein Programm, das ohne Mailserver einen von PHP initiierten Mailversand an den Postausgangs- oder SMTP-Server einer Ihrer E-Mail-Adressen weiterleitet.
Dazu benötigen Sie lediglich Ihren E-Mail-Benutzernamen, das Passwort, den SMTP-Server und etwas Geduld, denn bei der Vielzahl von Mailanbietern und -konfigurationen tüftelt man ein bisschen, bis alle Einstellungen stimmen. Bis auf den letzten Punkt erhalten Sie alles aus den Maileinstellungen Ihres Webhosters oder E-Mail-Anbieters.
Beispielkonfiguration unter Verwendung eines Google-Mail-Kontos
Öffnen Sie die Datei C:\xampp\sendmail\sendmail.ini zur Bearbeitung in einem Texteditor, und bearbeiten Sie die folgenden Zeilen; geben Sie dabei anstelle der Platzhalter Ihre E-Mail-Adresse und Ihr Passwort ein:
smtp_server=smtp.gmail.com
smtp_port=25
smtp_ssl=auto
auth_username=IhreGoogleMailAdresse@gmail.com
auth_password=IhrPasswort
force_sender= IhreGoogleMailAdresse@gmail.com
Nun bearbeiten Sie die PHP-Konfiguration in C:\xampp\php\php.ini. Suchen Sie in der Datei die Sektion mit den Maileinstellungen [mail function], und kommentieren Sie alle Zeilen mit einem vorangestellten Semikolon aus, außer den folgenden beiden:
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
mail.add_x_header=Off
Damit teilen Sie PHP mit, dass zum Mailversand besagtes Fake Sendmail (sendmail.exe) verwendet werden soll anstelle des Programms, das die Mails in den \mailoutput-Ordner schreibt.
Zum Testen legen Sie eine neue Datei mailtest.php im Ordner C:\xampp\htdocs\joomla3test\ an; auch hier ersetzen Sie den Platzhalter durch Ihre E-Mail-Adresse:
<?php
if (mail('IhreGoogleMailAdresse@gmail.com', 'Subject der Testmail aus XAMPP', 'Body der Testmail aus XAMPP')) {
print "Mailversand erfolgreich";
} else {
print "Mailversand nicht erfolgreich";
}
?>
Führen Sie den Test im Browser über die URL http://localhost:81/mailtest.php aus.
Falls der Mailversand nicht funktioniert, liegt das sehr wahrscheinlich an weiteren notwendigen Einstellungen in der sendmail.ini. Am besten schicken Sie eine Mail an den Support Ihres Webhosters, um die exakten Sendmail-Einstellungen anzufragen.