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
$ aptitude install apache2 php5 mysql-server mysql-client
MySQL root Passwort: geheim
Bevor wir weiter installieren, informieren wir uns über unsere Apache und PHP5 Installation.
Im Browser gehen wir auf die Seite http://[IP-Adresse], erscheint "It works!", so läuft schon mal Apache.
Zum testen von PHP erstellen wir die Datei info.php in unserem Dokumenten-Root /var/www:
$ vi /var/www/info.php
<?
phpinfo();
?>
Im Browser gehen wir auf die Seite http://[IP-Adresse]/info.php
Hir können wir sehen welche Versionen und Einstellungen vorgenommen worden sind.
|
|
PHPMyadmin
PHPMyadmin ist nützlich zur Administration von MySQL-Datenbanken
$ aptitude install phpmyadmin
Für welche Zugriffe soll PHPMyadmin eingerichtet werden:
Ich wähle alles ausser apache.
Im Browser gehen wir auf die Seite http://[IP-Adresse]/phpmyadmin/
Als Benutzername geben wir "root" ein
Als Passwort geben wir das MySQL root Passwort ein: "geheim".
|
|
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
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.
Apache
In der Datei apache2.conf unter /etc/apache2/ den zu schützenden Bereich am Ende der Datei eintragen:
<Directory /var/www/ORDNER-SCHUTZ>
AllowOverride AuthConfig
</Directory>
Alle Internetseiten zu schützen macht keinen Sinn, da es den Server nur verlangsamt.
Jeder zu schützende Bereich muss somit hir angeleget weden.
Den Appache- Server neustarten:
$ /etc/init.d/apache2 restart
|
|
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
Tomcat
Wenn der Tomcat benötigt wird kann dieses so erledigt werden:
$ apttitude install sun-java5-jdk
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!
/*
Redirect Umleitunge ohne :8180
http://www.howtoforge.de/howto/xwiki-on-debian-4-etch-tomcat-mysql/
*/
?>
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.
weitere Ideen ...
- Vielleicht ein Mailserver mit Spam- Filter
- Für einen reinen Printserver sind bei 45 Watt grenzwertig.
- usw...
Weiter Anleitungen könnten somit noch folgen.
Gute Links: