Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Both sides previous revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:apache [2012/07/11 15:44] khopf [Virtuelle Hosts und Direktiven] |
software:apache [2013/01/15 12:37] (aktuell) khopf [Konfiguration des Webservers] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Apache Webserver ====== | ====== Apache Webserver ====== | ||
+ | //<- Zurück zum Artikel [[:software]]// | ||
+ | |||
Apache ist ein weit verbreiteter Webserver. | Apache ist ein weit verbreiteter Webserver. | ||
Zeile 22: | Zeile 24: | ||
Die zentrale Konfigurationsdatei befindet sich unter /etc/apache2/apache2.conf. Darin werden die Konfigurationsdaten für die Module (mods-enabled/*) und die Konfigurationsdateien für die einzelnen Webseiten (sites-enabled/*) geladen. Die zentrale Konfigurationsdatei wird demnach nur selten abgeändert. | Die zentrale Konfigurationsdatei befindet sich unter /etc/apache2/apache2.conf. Darin werden die Konfigurationsdaten für die Module (mods-enabled/*) und die Konfigurationsdateien für die einzelnen Webseiten (sites-enabled/*) geladen. Die zentrale Konfigurationsdatei wird demnach nur selten abgeändert. | ||
- | * [[Virtuelle Hosts]] | + | * [[software:apache:Virtuelle Hosts]] |
- | ===== Konfiguration der SSL-Verschlüsselung ===== | + | * [[software:apache:SSL]] |
- | Apache Modul laden, wenn es nicht bereits geladen ist: | + | * [[software:apache:Authentifizierung]] |
- | + | * [[software:apache:Subversion]] | |
- | $ a2enmod ssl | + | * [[software:apache:CGI]] |
- | + | * [[software:apache:WebDAV]] | |
- | In /etc/apache2/ports.conf muss der Port 443 mit dem Befehl Listen 443 im Bereich <IfModule modssl.c> eingetragen werden. | + | |
- | + | ||
- | Es muss noch die Direktive (= Anweisung, Auftrag, Befehl, Richtlinie) NameVirtualHost *:443 in diesem Bereich eingetragen werden und in der | + | |
- | /etc/apache2/sites-available/default-ssl die VirtualHost-Direktive zu <VirtualHost *:443> geändert | + | |
- | werden, damit virtuelle Hosts mit SSL genutzt werden können. | + | |
- | + | ||
- | # /etc/init.d/apache2 restart | + | |
- | + | ||
- | ==== Erstellen eines neuen Zertifikates ==== | + | |
- | Da der Nutzer des Verzeichnisses /srv/www/vhosts/[Domain]/ vom aktuell eingeloggten unterschiedlich ist, ist es zweckmäßig, | + | |
- | die Zertifikaterstellung zunächst im Home-Verzeichnis vorzunehmen und dann in das Vhost-Verzeichnis zu kopieren. | + | |
- | + | ||
- | Also: | + | |
- | + | ||
- | # openssl req -new > [Zertifikat-Dateiname].csr | + | |
- | + | ||
- | Schlüssel erzeugen: | + | |
- | + | ||
- | # openssl rsa -in privkey.pem -out [Zertifikat-Dateiname].key | + | |
- | + | ||
- | Öffentliches Zertifikat erstellen: | + | |
- | + | ||
- | $ openssl x509 -in [Zertifikat-Dateiname].csr -out [Zertifikat-Dateiname].crt -req -signkey [Zertifikat-Dateiname].key | + | |
- | + | ||
- | Mit der Option --days [Tage] kann eine Gültigkeitsdauer in Tagen angegeben werden. | + | |
- | + | ||
- | Weitere Informationen: | + | |
- | [[http://httpd.apache.org/docs/2.0/mod/core.html#%20namevirtualhost|Virtual Host Direktiven]] | + | |
- | [[http://mrfoo.de/archiv/347-Howto-Apache2-SSL-Zertifikat-erstellen-und-aktivieren.html|Tutorium: SSL-Zertifikat erstellen]] | + | |
- | + | ||
- | + | ||
- | ==== Einbinden des Zertifikats in die Apache (VHost-)Konfiguration ==== | + | |
- | In der VHost-Konfiguration für den Port 443 (SSL-Port) folgende Zeilen hinzufügen: | + | |
- | + | ||
- | # SSLEngine On | + | |
- | # SSLCertificateKeyFile /srv/www/vhosts/[vhost-Ordner]/[Dateiname].key | + | |
- | # SSLCertificateFile /srv/www/vhosts/[vhost-Ordner]/[Dateiname].crt | + | |
- | # #Bei verifizierten Zertifikaten muss hier noch das SSLCACertificate der Zertifizierungsstelle eingebunden werden | + | |
- | + | ||
- | + | ||
- | ====== Apache Module ====== | + | |
- | ===== Einfache Authentifizierung (mod_auth) ===== | + | |
- | ==== .htaccess-Datei ==== | + | |
- | Uber folgenden Befehl kann man einer .htpasswd-Datei neue Nutzer hinzufügen. Die Option -c legt eine | + | |
- | neue Datei an. | + | |
- | + | ||
- | # htpasswd -b [dateiname] [nutzername] [passwort] | + | |
- | + | ||
- | Die .htpasswd Datei sollte nicht im DocumentRoot liegen. | + | |
- | + | ||
- | ==== Passwort zu einem Benutzer hinzufügen ==== | + | |
- | + | ||
- | Hinzufügen eines Passworts zu einem Nutzer | + | |
- | htpasswd -b [password-file] [username] [password] | + | |
- | ===== MySQL-Authentifizierung (mod_auth_mysql) ===== | + | |
- | Man kann neben dem Zugriffsschutz, der über die .htaccess-Datei möglich ist, auch die Nutzer aus einer Datenbank mittels SQL auslesen. Das zugeh¨orige Modul holt man mit: | + | |
- | # apt-get install libapache2-mod-auth-mysql | + | |
- | + | ||
- | Apache Modul aktivieren: | + | |
- | # a2enmod auth mysql | + | |
- | # service apache2 restart | + | |
- | + | ||
- | MySQL-Tabellen anlegen | + | |
- | mysql -uroot -p | + | |
- | + | ||
- | mysql> grant all on auth.* to auth_user@localhost identified by '<password>'; | + | |
- | + | ||
- | mysql> flush privileges; | + | |
- | + | ||
- | mysql> create database auth; | + | |
- | + | ||
- | CREATE TABLE `clients` ( | + | |
- | `username` varchar(25) NOT NULL default '', | + | |
- | `passwd` varchar(25) NOT NULL default '', | + | |
- | `groups` varchar(25) NOT NULL default '', | + | |
- | PRIMARY KEY (`username`), | + | |
- | KEY `groups` (`groups`) | + | |
- | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; | + | |
- | + | ||
- | INSERT INTO `clients` VALUES ('<username>', '<password>', '<group>'); | + | |
- | + | ||
- | ===== WebDav (mod_dav) ===== | + | |
- | Webdav ermöglicht einen Dateiupload und die Integration von entfernten Verzeichnissen in die Dateistruktur von Clients. | + | |
- | $ a2enmod dav | + | |
- | $ a2enmod dav fs | + | |
- | # service apache2 restart | + | |
- | + | ||
- | ===== Fast CGI (mod_fcgi / mod_fastcgi) ===== | + | |
- | Die Apache-Module ''mod_fastcgi'' (offenbar Fremdmodul) und ''mod_fcgi'' bieten eine schnellere Implementierung von CGI-Scripts. ''mod_fcgi'' ist wohl eine neuere Implementierung. | + | |
- | + | ||
- | Zur Installation: | + | |
- | # apt-get install libapache2-mod-fcgi | + | |
- | # service apache2 reload | + | |
- | + | ||
- | + | ||
- | ===== Subversion (dav_svn) ===== | + | |
- | Mittels ''# apt-get subversion libapache2-svn apache2-mpm-prefork'' kann man sich den Apache SVN-Server holen. Um über den Apache Webserver Zugriff auf das Repository zu erlangen, muss man noch das entsprechende Apache-Modul aktivieren: ''# a2enmod dav_ svn''. Weitere Informationen unter[http://wiki.ubuntuusers.de/subversion]. | + | |
- | + | ||
- | ==== Anpassen der Webserverkonfiguraion ==== | + | |
- | Die Datei ''/etc/apache2/mods-enabled/dav_svn.conf'' steuert die Konfiguration und muss bei mehreren Repositories wie folgt angepasst werden: | + | |
- | + | ||
- | <Location /svn> | + | |
- | DAV svn # Aktiviert den Zugriff | + | |
- | SVNPath /var/local/svn # Pfad zu den Repos | + | |
- | AuthType Basic # Authentifizierung | + | |
- | AuthName "Subversion repository" | + | |
- | AuthUserFile /etc/apache2/dav_svn.passwd | + | |
- | <LimitExcept GET PROPFIND OPTIONS REPORT> | + | |
- | Require valid-user | + | |
- | </LimitExcept> | + | |
- | </Location> | + | |
- | + | ||
- | ==== Anlegen eines Repositories ==== | + | |
- | In einem Verzeichnis, das nicht das Document Root-Verzeichnis des Webservers ist, kann dann angelegt werden (z.B. /srv/svn/repo1). Mittels | + | |
- | + | ||
- | /srv/svn/# svnadmin create nameDesRepositories | + | |
- | + | ||
- | Wird dann ein Repository erzeugt. Um das Verzeichnis auch aus dem Internet erreichbar zu machen, muss man den Dateibesitz zu ''www-data:www--data'' ändern und dem Webserver ggf. Schreibrechte geben. | + | |
- | ==== Benutzer hinzufügen und Berechtigung erteilen ==== | + | |
- | Informationen unter: http://wiki.ubuntuusers.de/Subversion#Zentrale-Zugriffsbeschraenkung-mehrerer-Projekte | + | |
- | + | ||
- | Allg.: Für alle Repositories mit direktem Bezug zum Studium wurde der Übersicht wegen ein Meta-Repository "wibaStud" erstellt. Diesem untergeordnet liegen alle SVN-Ordner, die als eigenständige Repositories betrachtet werden. | + | |
- | + | ||
- | Für einen SVN-Zugang muss **kein** Benutzer auf der Ubuntu-Maschine angelegt werden, sondern nur in der Datei unter | + | |
- | + | ||
- | # /etc/apache2/dav_svn.authz | + | |
- | + | ||
- | Dort werden anfangs Gruppen definiert, die als Berechtigte einem Repository zugeordnet werden können. Es ist zudem möglich, einzelne Benutzern bestimmte Rechte zu geben. | + | |
- | + | ||
- | Schließlich muss das Password eines Nutzers angelegt/geändert werden mit | + | |
- | + | ||
- | # htpasswd -b dav_svn.passwd <NUTZER> | + | |
- | + | ||
- | Das Passwordfile für SVN liegt bei uns unter | + | |
- | **/etc/apache2/dav_svn.passwd** | + | |
- | ==== Repositories Verwalten ==== | + | |
- | === Repositories dumpen (incl. aller Revisionen) === | + | |
- | svnadmin dump /srv/svn/repo/ > ~/repo.dump | + | |
- | + | ||
- | === Repository Dump einspielen === | + | |
- | svnadmin load /srv/svn/neuesRepo/ < ~/repo.dump | + | |
- | + | ||
- | Ein Dump kann auch in ein anderes Repository eingespielt werden: | + | |
- | svnadmin load /srv/svn/neuesRepo/ --parent-dir /unterverzeichnis/ < ~/repo.dump | + | |
- | + | ||
- | Somit können Repositories auch zusammengefasst werden ((http://www.anrichter.net/2009/01/subversion-repositories-zusammenfassen/)) | + | |
+ | ====== Performance-Verbesserungen des Webservers (und seiner Komponenten) ====== | ||
+ | * APC(alternative page cache) als PHP accelerator installeren((http://curltable.the-yard.net/blog/install-apc)) | ||
+ | {{tag>apache webserver server}} |
Bei Verwendung dieses Wikis erklären Sie sich mit dem Haftungsausschluss, Nutzungsbedingungen und der Datenschutzerklärung dieses Wikis einverstanden. Impressum.