Webserver unter Lenny |
|
erstellt 06.2007
angepasst 07.2008 / 03.2009
Ein leistungsstarker Webserver unter Linux ist meist ein LAMP- System.
Linux
Apache
MySQL
PHP
Diese Komponenten lassen sich leicht und schnell in Lenny installieren.
Alternativ gibt es auch Zusammenstellungen von diesen und weiteren Paketen die sehr einfach installiert
werden können wie
XAMPP.
Diese erhalten sehr viele Programme, die aber oft nicht benötigt werden, außerdem wollen wir ja was lernen.
Apache Apache MySQL
Installieren eines einfachen Apache Webservers mit Apache, MySQL
|
![]() |
PHPMyadmin
PHPMyadmin ist nützlich zur Administration von MySQL-Datenbanken
|
![]() |
Anpassungen
Um einige "alte" Programme zum laufen zu bekommen, habe ich die Variablen in der Datei
etc/php5/apache2/php.ini register_globals, safe_mode_gid von Off auf On
gestellt. Sollte nur durchgeführt werden, wenn Bedarf besteht, die Sicherheit der Scripts wird stark herabgesetzt!
Bei Entwicklungsumgebungen sollte dieses nie eingestellt werden, da es eigentlich nicht mehr Stand der Technik ist.
Bei einer Installation von Apache2, musste in der /etc/apache2/apache2.conf AddDefaultCharset ISO-8859-1
wieder aktivieren um die deutschen Umlaute auf der Webseite wieder zu erhalten.
Um bei schreibenden PHP-Programmen (CMS) keine Berechtigungsprobleme zu bekommen, kann
in /etc/apache2/apache2.conf das schreiben/lesen von User und Group auf intranet umgestellt werden
User intranet
Group intranet
Natürlich muss dieser User erst mal angelegt worden sein (Siehe unten).
Um die Einstellungen wirksam werden zu lassen müssen diese neue gestartet werden.
$ /etc/init.d/apache2 restart
Windowsanbindung
Um von einem Windowssystem aus anständig Intranetseiten basteln zu können, ist eine Freigabe auf
/var/www nötig:
Legen wir hierzu erst mal einen User intranet an
adduser intranet
Lege Benutzer »intranet« an ...
Lege neue Gruppe »intranet« (1001) an ...
Lege neuen Benutzer »intranet« (1001) mit Gruppe »intranet« an ...
Erstelle Home-Verzeichnis »/home/intranet« ...
Kopiere Dateien aus »/etc/skel« ...
Enter new UNIX password: geheim
Retype new UNIX password: geheim
passwd: Kennwort erfolgreich geändert
Ändere Benutzerinformationen für intranet
Geben Sie einen neuen Wert an oder ENTER für den Standardwert
Name [intranet]: intranet
Raumnummer []: 123
Telefon geschäftlich []: 123
Telefon privat []: 123
Sonstiges []: Intranet User
Sind die Informationen korrekt? [j/N] j
SMB benötigt noch sein eigenes Passwort
cd /etc/samba
smbpasswd -a intranet
New SMB password: geheim
Retype new SMB password: geheim
Added user intranet.
Die smb.conf unter etc/samba mit dem Inhalt
[intranet]
comment = Intranet
path = /var/www
read only = No
create mask = 0777
erweitern.
Die bestehenden Berechtigungen auf Dateien/Odenern in der Freigabe anpassen.
$ chmod 0777 -R /var/www
Um unsere Änderungen wirksam werden zu lassen, wird Samba neu gestartet.
$ /etc/init.d/samba restart
Sicherung der Datenbank
In unserem Beispiel sichern wir einfach alle Datenbanken auf den Webserver/mysql-sicherung.
$ mkdir /var/www/mysql-sicherung
Sicherungsordner erstellen.
$ /usr/bin/mysqldump --opt --add-drop-table --user=root --password=geheim --all-databases > /var/www/mysql-sicherung/alles.sql
ACHTUNG: eine Zeile!
Nur die Datenbank "db-test" sichern.
$ /usr/bin/mysqldump --opt --add-drop-table --user=root --password=geheim db-test > /var/www/mysql-sicherung/db-test.sql
Wenn keine Fehlermeldung zu sehen ist, sollte nach ein paar Sekunden im Verzeichnis /var/www/mysql-sicherung eine
alles.sql zu finden sein die alle Datenbanken enthält. Eine Sicherung dieser Datei ist über Samba leicht möglich.
Dieses ist nur ein Beispiel und sollte nicht auf den Webserver zu sehen sein! Eine Automatisierung ist mit croon möglich.
$ $ crontab -e
00 20 * * * /usr/bin/mysqldump --opt ........ (der endgültig Befehl)
In diesem eingenen Editor von crontab kommen Sie schon zurecht!
Tägliche Sicherung um 20Uhr.
Eine Sicherung ist kein Selbstzweck, sondern dient zur Wiederherstellung der Daten.
Somit sollte eine Wiederherstellung auch getestet werden!
Stellen Sie sich immer vor, der gesamte Rechner ist nicht mehr vorhanden.
Erstellen Sie sich ein Sicherungskonzept.
Wiederherstellung einer Datenbank.
Für testzecke kann die gesicherte Datenbank in PHPMyadmin umbenannt werden. Natürlich klappt das einspielen
kleiner Datenbanken auch über die Weboberfläche, aber die Begrenzung liegt bei 2MByte, die schnell erreicht sind.
$ /usr/bin/mysql -p -u <user> db-test < /var/www/mysql-sicherung/db-test.sql
Nützliche Zusätze zur LAMP Installation
Die bekannte PHP Erweiterung PEAR
$ aptitude install php-pear
GD-Support für Apache zwecks Grafikverarbeitung
$ aptitude install php5-gd
Synchronisierung der Systemuhr.
Es ist gut, die Systemuhr über das Internet mit einem NTP-Server (Network Time Protocol) abzugleichen.
$ aptitude -y install ntp ntpdate
Sun Java 2 Platform
Für manche Webanwendung wird die Sun Java 2 Platform Standard Edition 5.0 JRE (Java Runtime Environment) und der JDK (Java Developer Kit) benötigt.
Sun Java 2 ist in der "non-free" Sektion der Debian Repositories verfügbar. Damit auf diese Sektion zugegriffen werden kann, muss das non-free repository in der apt sources Datei verfügbar gemacht werden.
Die sources.list unter /etc/apt/ um die Werte contrib non-free erweitern.
Meine soureces.list schaut wie folgt aus:
deb http://ftp.de.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.de.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
Nun die Quellen aktualisiere:
$ aptitude update
$ aptitude upgrade
Java Debian Pakete installieren:
$ aptitude install sun-java5-jre
Beantworten Sie die Fragen und stimmen der Lizenzbedingung zu.
Jetzt kann auch noch das Java SDK installiert werden:
$ aptitude install sun-java5-jdk
Wenn alles geklappt hat sollte der Befehl java -version folgendes ausgeben.
$ java -version
java version "1.5.0_14"
Java(TM) 2 Runtime Eviroment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode, sharing)
Sollte diese Ausgabe nicht passen, so ist vermutlich neben Suns Java noch eine weitere JVM installiert
(z.B. GIJ, Sablevm, Kaffe oder Jamvm). Soll in Zukunft Suns Java als Standard verwendet werden, kann dies so erreicht werden.
$ update-alternatives --config java
Es gibt 3 Alternativen, die »java« bereitstellen
Auswahl Alternative
--------------------------------------------------
1 /usr/bin/gij-wrapper-4.1
*+ 2 /usr/lib/jvm/java-gcj/jre/bin/java
3 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
Drücken Sie die Eingabetaste, um die Vorgabe[*} beizubehalten,
oder geben Sie die Auswahlnummer ein: 3
Für die JVM und mit
$ update-alternatives --config javac
JAVA_HOME muss gesetzt sein, sonst findet Tomcat die JAVA Umgebung nicht.
Dafür habe ich in die Datei /etc/bash.bashrc den folgenden Eintrag eingefügt:
$ vi /etc/bash.bashrc
# Setup Jave environment 5
export JAVA_HOME=/usr/lib/jvm/java-5-sun/
Ein reboot währe nach der Installation nicht schlecht!
Datenschutz mit .htaccess
.htaccess ermöglicht Zugriffschutz über Client-IP oder Passwort und weitere Einstellungen auf Appache die nur lokal wirken.
Da die IP-Adresse kein wirklicher Schutz ist und dieser unter Citrix nicht funktionieren kann, setze ich nur noch
den Passwortschutz ein.
|
![]() |
Passwortdatei
Die Passwortdatei sollte ausserhalb vom Webbereich mit dem ersten User anlegen:
$ htpasswd -c /etc/apache2/users lug
Weitere Paßwörter anlegen mit:
$ htpasswd /etc/apache2/users wulff
.htaccess
Im zu sichernden Ordner muß als root die Datei ".htaccess" erzeugt werden mit den Inhalt:
AuthType Basic
AuthName "Nur für registrierte Benutzer"
AuthUserFile /etc/apache2/users
require valid-user
· Die Zeile AuthType Basic legt die Autorisierungsmethode fest.
· In der zweiten Zeile bekommt die Passwortabfrage einen Klartext zugewiesen.
· In der Zeile drei wird die Autorisierungsdatei festgelegt.
· Im Beispiel wird jeder Anwender reingelassen der eine gültige Autorisierung besitzt.
Mit require user lug wulff mueller meier
werden nur die angegebenen User
zugelassen. (Strukturierung möglich!)
Wollen Sie die User/Passwort Erstellung Ihren Webseitenbetreiber übergeben, können Sie die Passwortdatei auch in
das Webverzeichnis als ".htpasswd" verlegen.
.htpasswd Generator
mod_rewrite
Das Appachemodul mod_rewrite wird benötigt um aus Suchmaschinen unfreundlichen Links
(index.php?option=com_content&view=article&id=5&Itemid=2) lesbare Links verwenden zu können
(/joomla-overview.html). Die entsprechende .htaccess Datei muss vorhanden sein.
Der Einrichtungsteil von Apache2 wird hier beschrieben.
Schauen wir mal wo unser Datei liegt.
$ locate mod_rewrite.so
/usr/lib/apache2/modules/mod_rewrite.so
Legen wir im Verzeichnis /etc/apache2/mods-enabled die Datei rewrite.load mit dem Inhalt
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so an.
$ cd /etc/apache2/mods-enabled
$ vi rewrite.load
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Es kann sein, das die Datei schon richtig vorhanden ist!
In der Datei /etc/apache2/sites-available/default schlaten wir nun mod_rewrite ein.
$ vi /etc/apache2/sites-available/default
An der Postion von
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
auf
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
Apache neustarten.
$ /etc/init.d/apache2 restart
/usr/lib/apache2/modules/mod_rewrite.so
$ vi rewrite.load
Tomcat 5.5
Wenn der Tomcat benötigt wird, muss JAVA von SUN installiert sein und kann so erledigt werden:
$ aptitude install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps
Nach einem reboot können wir uns Tomcat im Browser betrachten
http://localhost:8180
Die Zugangsdaten für den Tomcat-Administrator sind in der folgenden Datei zu finden:
$ vi /var/lib/tomcat5.5/conf/tomcat-users.xml
Home-Verzeichnis »/usr/share/tomcat5.5«
Installing »/var/lib/tomcat5.5/conf/tomcat-users.xml«
WebApps-Verzeichnis »/var/lib/tomcat5.5/webapps/«
Es hat sich als Sinnvoll erwiesen, die Tomcat Sicherheit im Intranet auszuschalten.
vi /etc/init.d/tomcat5.5
TOMCAT5_SECURITY=no
Die entsprechende Aplikation (PROGS.war) ins Verzeichnis /var/lib/tomcat5.5/webapps/ kopieren
Tomcat restarten mit /etc/init.d/tomcat5.5 restart
Aufruf mit http://MyIP:8180/PROGS
Dieses in Kleinschrift ist nur ein Kochrezept aus dem Kopf und noch keine Anleitung!
Wichtige Dateien und Verzeichnisse.
/etc/apache
httpd.conf
beinhaltet die Konfiguration von Apache
/var/www
Ist das Document_Root und ist als Intranet im Samba freigegeben.
/home/lug
Ist eine Freigabe die ausserhalb des Apache laufen.
Fertig
Nach ca.: einer guten Stunde haben Sie einen funktionstüchtigen Server aus einem alten Rechner gemacht, der nicht mehr in der Ecke steht, sondern wirklich gute Dienste leisten kann.
- Die Dateiablage könnte mit Samba zentral durchgeführt werden.
- Die meisten Internetprogramme könnten installiert werden.
Ein Auswahl ist nicht leicht zu treffen, Groupware, CMS, usw.. stehen zur Auswahl.
Eventuell auch nur zum erstellen und testen von eigenen Webseiten.
Ein Auswahl ist nicht leicht zu treffen, Groupware, CMS, usw.. stehen zur Auswahl.
Eventuell auch nur zum erstellen und testen von eigenen Webseiten.