23 Jun |
|
|
[Update - 04.Juli 2010 - ich hab den Link zu einer Quelle (Webmin installieren) deaktiviert, weil die verlinkte Seite, derzeit mit Malware infiziert zu sein scheint. Also Copy&Paste und Nutzung auf eigene Gefahr.] [Update - 10. August 2010 - Da ich zur Zeit einen normalen PC als Webserver aufsetze sind mir noch ein paar ergänzende Details aufgefallen, die hier nicht fehlen sollten.] Ich betreibe mein Blog ja auf einem fertig installierten und konfigurierten Server eines Providers. Auf solch einem Server ein Content Management zu installieren ist ja nicht gerade die Schwierigkeit. Da ich jetzt auf Arbeit ein kleines Web-Projekt zu Testzwecken gestartet habe und somit keinen Provider hab, war ich "gezwungen" den Server vom Betriebssystem bis zur letzten Extension selbst aufzusetzen. Ich mach das natürlich nicht zum ersten Mal, aber zu behaupten, ich mach es regelmäßig und ohne Zwischenfälle, wäre glatt gelogen. So auch diesmal - ich hab wieder fleißig Google bemüht und in diversen Foren und Blogs die notwendigen Infos zusammengetragen oder die Fehler durch Trial & Error behoben. Aus diesem Grund will ich das ganze hier (kurz) dokumentieren. Besonderheit an meinem System war (für mich), dass ich das ganze nicht auf einem Standard-PC gemacht hab, der als "Server" verwendet wird, sondern auf einem HP Proliant ML370G5 - sicherlich mit Kanonen auf Spatzen geschossen, aber das gute Stück steht sonst nur ungenutzt rum, da kann es auch als Webserver sein Leben fristen. BetriebssystemDa ich der Auffassung bin, dass so ein Webserver ohne grafische Oberfläche auskommen muss und überhaupt: Auf einen Server gehört m.E. kein Windows. Im Zuge des Prozesses muss eine Netzwerkkarte konfiguriert werden. Sofern man nicht via DHCP versorgt wird, müssen hier also IP, Netzmaske, Gateway und DNS angegeben werden. HTTP-Proxy während der InstallationWie oben erwähnt, steht mein Server hinter einem HTTP-Proxy, an dem ich mich auch noch anmelden muss. Debian fragt den Nutzer während der Installation, ob so ein Proxy eingestellt werden soll. Da der Dialog sehr minimal ist, ist man leider gezwungen Benutzernamen und Passwort im Klartext in der Proxy-Adresse einzutragen: http://user:pw@host:port/ Aptitude - also die Paketverwaltung von Debian merkt sich diese Proxyangaben in der Datei /etc/apt/apt.conf im Klartext. FernadministrationDer Server wird in Zukunft in einem Serverraum stehen. Damit man nicht jedesmal dorthin muss und sich womöglich noch einen Schnupfen von der Klimaanlage holt, empfiehlt es sich, Möglichkeiten für die Fernadministration zu schaffen. Als erstes wäre da die Secure Shell zu nennen, mit der man von jedem anderen Rechner im Netzwerk (also auch von Windows-Rechnern aus) eine gesicherte Shell-Sitzung starten kann. Zu diesem Zweck reicht es mit dem Befehl server:~# apt-get install ssh das Stellvertreter-Paket ssh abzurufen. Mit diesem Paket werden automatisch weitere Bibliotheken etc. installiert. Nun noch mit server:~# /etc/init.d/ssh start den Dienst starten und schon kann man sich z.B. mit PuTTy auf dem Server anmelden. Um das Ganze noch etwas komfortabler zu machen - vor allem das Wuseln in Konfigurationsdateien - installiere ich gern Webmin. Webmin ist eine Administrationsschnittstelle auf Web-Basis. Es ist modular aufgebaut und bietet für System, Hardware und Serverdienste diverse Module. server:~# export http_proxy="http://user:pw@host:port" anschließend wget mit der Option -proxy=on aufrufen. Für den Rest der Sitzung ist nun der Proxy aktiviert. Mit den Optionen -proxy-user und -proxy-passwd kann man die Anmeldedaten losgelöst von der Proxyadresse angeben. Das ist dann zwar immernoch Klartext, steht dann aber nicht in mehr Umgebungsvariable drin. Mit der Option -proxy=off kann man die Nutzung des Proxys wieder abschalten. server:~# wget http://prdownloads.sourceforge.net/webadmin/webmin_XX.deb wobei XX durch die aktuelle Version von Webmin zu ersetzen ist. Anschließend das Paket mit server:~# dpkg --install webmin_XX.deb installieren. [Update] Bei der Installation, kann es sein, dass dpkg sich über nicht aufgelöste Abhängigkeiten beschwert. Da dpkg das nicht von selbst kann, muss man u.U. anschließend server:~# apt-get install -f ausführen. Dieser Befehl installiert fehlende Pakete nach und konfiguriert Webmin. Die Webminoberfläche ist nun über http://serverhost:10000/ erreichbar. In der Konfiguration von Webmin (auch dafür gibt es ein eigenes Modul) lässt sich der Zugriff auf diese Seite dann bequem auf einzelne IPs oder Adressbereiche beschränken (Vorsicht: Nicht sich selbst aussperren!). Betreibt man auf dem Webserver oder idealerweise sogar davor eine Firewall, kann man dies auch dort definieren: iptables -A INPUT -t tcp -d ziel-ip --dport 10000 -s quell-ip -j ACCEPT Diese Regel wäre für eine Firewall auf dem Webserver serlbst. Auf einer dedizierten Firewall würde man statt INPUT die FORWARD-Kette ansprechen. Serverdienste einrichtenMein CMS der Wahl ist Joomla. Damit hab ich schon viel gearbeitet und auch wenn ich kein PHP-Programmierer bin, find ich mich darin gut zurecht. Joomla läuft auf jedem Webserver mit MySQL und PHP. Der Apache2-Dienst wird bereits installiert, wenn man beim Aufsetzen des Servers den Rechner als Webserver einrichten lässt. Die aktuelle PHP-Version muss man u.U. in aptitude noch nachziehen. Die Daten für die Webseiten liegen dann standardmäßig im Ordner /var/www/ Für Joomla braucht man nun noch einen MySQL-Server. Mit server:~# apt-get install mysql-server wird dieser installiert. Wie bei ssh ist dies ein Stellvertreterpaket, dass die aktuelle MySQL-Version (bzw. die notwendige, wenn das Paket benötigt wird um Abhängigkeiten aufzulösen) installiert. Bei der Einrichtung noch ein root-Passwort vergeben (das ist dann der Superuser des Datenbanksystems) und der Rest lässt sich über Webmin machen. Bevor es an die Installation von Joola selbst geht, muss man PHP noch beibringen, dass es ein Datenbanksystem gibt. Mit server:~# apt-get install php5-mysql wird ein Paket eingerichtet, das genau das tut. Es stellt die Verbindung aus PHP-Skripten zur Datenbank her. Ist das Paket nicht installiert, beschwert sich Joomla bei der Installation, dass kein MySQL vorhanden wäre. Joomla installierenZu guter Letzt kann man nun ganz bequem aus der Konsole die aktuelle Joomla-Version auf deutsch herunterladen: server:~# wget http://www.joomla.de/images/eigene-dateien-joomla/↵ und mit server:~# unzip Joomla_1.5.18-Stable-Full_Package_German.zip -d /var/www/[ggf. Zielordner] direkt in den Zielordner im www-Verzeichnis entpacken. Dazu muss man ggf. noch unzip installieren. Da Joomla als Benutzer www-data agiert, kriegt das gesamte Verzeichnis noch einen neuen Besitzer und Gruppe und schließlich die Rechte zum Scheiben, Lesen und Ausführen: server:~# chgrp -r www-data /var/www/[ggf. Zielordner] Kurz zur Erklärung: chgrp ändert die besitzende Gruppe, chown den Besitzer und chmod die Rechte auf den angegebenen Ordner. Die Option -r führt diese Operation rekursiv auf alle Unterordner und enthaltenen Dateien aus. Bei chmod heißt diese Option -R, weil das kleine r für die Zuordnung vom Leserecht reserviert ist. Um den Befehl kurz zu halten, habe ich die Rechte im Oktal-Modi angegeben. Die drei Ziffern stehen also der Reihenfolge nach für Besitzer, Gruppe und Jeden. Man kann die Rechte Lesen (4), Schreiben (2) und Ausführen (1) vergeben. Durch aufaddieren der zu setzenden Rechte, erhält man die kennzeichnende eindeutige Ziffer. Der Besitzer der Dateien und Ordner darf alles (7=4+2+1=Lesen+Schreiben+Ausführen), die Gruppe und alle anderen dürfen Lesen und Ausführen (5=4+1=Lesen+Ausführen). Also im Ergebnis: 755. Ab jetzt kann man sich von der Konsole lösen und über den Browser der Wahl direkt auf die Joomla-Installation zugreifen. Wie man Joomla installiert ist beispielsweise hier ausführlich beschrieben und ansonsten selbsterklärend. SEO und mod_rewriteMöchte man lesbare Links (also SEF - Search Engine Friendly), aktiviert man dies in der Joomla-Konfiguration und benennt die htaccess.txt in .htaccess gem. Anleitung um. Ergebnis: es geht nichts mehr. Grund dafür ist, dass der jungfräuliche Apache das Modul rewrite noch gar nicht kennt. Dem Apache bringt man das wie folgt bei: server:~# updatedb Diese Befehle dienen erstmal dazu, das gesuchte Modul zu finden. Als Ergebnis sollte in etwa /usr/lib/apache2/modules/mod_rewrite.so herauskommen. Im nächsten Schritt wird die Datei rewrite.load im unten angegebenen Ordner angelegt und befüllt. server:~# cd /etc/apache2/mods-enabled/ In die Datei wird nun die Zeile LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so eingetragen. Unter Umständen variiert der angegebene Pfad, je nachdem, was locate weiter oben ausgegeben hat. Als nächstes mit server:~# vi /etc/apache2/sites-available/default die Einstellungen bearbeiten. Irgendwo in der geöffneten Datei gibt es die Zeilen Options Indexes FollowSymLinks MultiViews In der zweiten Zeile ersetz man nun None durch all, so dass dort steht Options Indexes FollowSymLinks MultiViews Die Datei speichern und abschließend den Webserver neu starten: server:~# /etc/init.d/apache2 restart Das war es und die Links sollten nun lesbar sein und funktionieren. Quellen sofern nicht im Text genanntUnd weil ich wie gesagt, kein Ober-Nerd bin und alles auswendig weiß, sind hier meine Quellen, die mir beim Aufsetzen geholfen haben: wget und die Sache mit dem Proxy mod_rewrite aktivieren Webmin installieren |
