Aufsetzen des Apache-Servers: Unterschied zwischen den Versionen

Aus Lawsuit - Wiki
Wechseln zu: Navigation, Suche
(Optional: Zertifikat für Localhost erstellen)
(Optional: Ein Zertifikat für localhost erstellen)
(40 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 35: Zeile 35:
 
{{Shell|> su}}
 
{{Shell|> su}}
 
Geben Sie nach der Passwortbestätigung den folgenden Befehl ein:
 
Geben Sie nach der Passwortbestätigung den folgenden Befehl ein:
{{Shell|# zypper in apache2 apache2-doc perl-Apache-DBI apache2-mod_perl apache2-mod_php5 apache2-mod_python}}
+
{{Shell|# zypper in apache2 apache2-doc perl-Apache-DBI apache2-mod_perl apache2-mod_php5 apache2-mod_python firewalld-rpcbind-helper}}
 +
 
 +
=== Nutzung der Yast-Funktion ===
 +
 
 +
Die weiteren Einstellungen lassen sich zunächst vereinfachen, indem man die Yast-Funktionen für die Servereinrichtung nutzt. Laden Sie dafür das entsprechende Modul nach. Erfahrungsgemäß ist dieser Zwischenschritt jedoch nicht nötig, wenn man die Konfiguration in den nächsten Punkten sorgfältig durchführt.
 +
{{Shell|# zypper in yast2-http-server apache2-mod_wsgi-python3}}
 +
Unter ''yast2'' wählen Sie >HTTP-Server und klicken sich durch den Installationsprozess. Es müssen keine Anpassungen vorgenommen werden. Nach Abschluss der Installation verschieben Sie Ihre eigene Installation aus <tt>/ect/apache2/vhosts.d/YaSTsave</tt> wieder ins obere Verzeichnis <tt>/ect/apache2/vhosts.d</tt>.
 +
 
 +
Nach Abschluss der Einrichung kann das Hilfsprogramm ''yast2-http-server'' wieder entfernt werden.
 +
{{Shell|# zypper rm yast2-http-server}}
  
 
=== Anpassung der Firewall ===
 
=== Anpassung der Firewall ===
Zeile 42: Zeile 51:
 
Die folgenden Schritte müssen dazu weiterhin als Root ausgeführt werden.  
 
Die folgenden Schritte müssen dazu weiterhin als Root ausgeführt werden.  
 
* bis [http://de.opensuse.org/Portal:42.3 Leap 42.3]
 
* bis [http://de.opensuse.org/Portal:42.3 Leap 42.3]
{{Shell|# sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2<br># sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2-ssl<br># rcSuSEfirewall2 restart }}
+
{{Shell|# sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2<br>&nbsp; sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2-ssl<br>&nbsp; sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT http<br>&nbsp; sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT https<br>&nbsp; rcSuSEfirewall2 restart }}
 
Die Einstellungen finden sich jedoch auch unter ''YaST'' und können dort im '''etc/sysconfig-Editor''' mit den Einträgen ''apache2'' und ''apache2-ssl'' aktiviert werden, indem sie diese durch Leerzeichen getrennt im Feld ''FW_CONFIGURATIONS_EXT'' in <tt>/etc/sysconfig/SuSEfirewall2 </tt> einsetzen. Diese Konfigurationsvariable findet sich unter:
 
Die Einstellungen finden sich jedoch auch unter ''YaST'' und können dort im '''etc/sysconfig-Editor''' mit den Einträgen ''apache2'' und ''apache2-ssl'' aktiviert werden, indem sie diese durch Leerzeichen getrennt im Feld ''FW_CONFIGURATIONS_EXT'' in <tt>/etc/sysconfig/SuSEfirewall2 </tt> einsetzen. Diese Konfigurationsvariable findet sich unter:
 
  Network > Firewall > SuSEfirewall2
 
  Network > Firewall > SuSEfirewall2
Zeile 53: Zeile 62:
 
<br clear=all>
 
<br clear=all>
 
Alternativ ist die Auswahl per Shell möglich:
 
Alternativ ist die Auswahl per Shell möglich:
{{Shell|# firewall-cmd --zone internal --permanent --add-interface&#61;eth0<br># firewall-cmd --zone internal --permanent --add-service&#61;apache2<br># firewall-cmd --zone internal --permanent --add-service&#61;apache2-ssl<br># firewall-cmd --reload}}
+
{{Shell|# firewall-cmd --zone internal --permanent --add-interface&#61;eth0<br>&nbsp; firewall-cmd --zone internal --permanent --add-service&#61;apache2<br>&nbsp; firewall-cmd --zone internal --permanent --add-service&#61;apache2-ssl<br>&nbsp; firewall-cmd --zone internal --permanent --add-service&#61;nfs<br>&nbsp; firewall-cmd --zone internal --permanent --add-service&#61;http<br>&nbsp; firewall-cmd --zone internal --permanent --add-service&#61;https<br>&nbsp; firewall-cmd --reload}}
  
 
=== Aktivierung des Servers ===
 
=== Aktivierung des Servers ===
 
Starten Sie den Server und aktivieren Sie ihn in einem Bootverzeichnis, damit er mit dem Rechner hochgefahren wird:
 
Starten Sie den Server und aktivieren Sie ihn in einem Bootverzeichnis, damit er mit dem Rechner hochgefahren wird:
{{Shell|# rcapache2 start<br># chkconfig -a apache2}}
+
{{Shell|# rcapache2 start<br>&nbsp; chkconfig -a apache2}}
 
Sie können diese Einstellungen jederzeit unter ''YaST'' ändern im Untermenü
 
Sie können diese Einstellungen jederzeit unter ''YaST'' ändern im Untermenü
 
  YaST > Dienste-Verwaltung
 
  YaST > Dienste-Verwaltung
Zeile 63: Zeile 72:
 
=== Hinzufügen von Apache-Modulen===
 
=== Hinzufügen von Apache-Modulen===
 
Um benötigte Apache-Module zu laden, können wir die Konfigurationsvariable ''APACHE_MODULES'' in <tt>/etc/sysconfig/apache2</tt> editieren. Schneller geht es jedoch mit den nachfolgenden Befehlen. Nach der Änderung muss der Server neu gestartet werden. Auch für die folgenden Befehle sind wieder die Rechte eines Superusers vonnöten.
 
Um benötigte Apache-Module zu laden, können wir die Konfigurationsvariable ''APACHE_MODULES'' in <tt>/etc/sysconfig/apache2</tt> editieren. Schneller geht es jedoch mit den nachfolgenden Befehlen. Nach der Änderung muss der Server neu gestartet werden. Auch für die folgenden Befehle sind wieder die Rechte eines Superusers vonnöten.
{{Shell|# a2enmod mod_perl<br># a2enmod mod_php5<br># a2enmod mod_python<br># a2enmod -l<br># rcapache2 restart}}
+
{{Shell|# a2enmod mod_perl<br>&nbsp; a2enmod mod_env<br>&nbsp; a2enmod mod_ssl<br>&nbsp; a2enmod mod_php5<br>&nbsp; a2enmod mod_python<br>&nbsp; a2enmod -l<br>&nbsp; rcapache2 restart}}
  
 
== Virtual Hosts ==
 
== Virtual Hosts ==
Zeile 90: Zeile 99:
  
 
* Neustart von Apache
 
* Neustart von Apache
{{Shell | > sudo systemctl start httpd.service}}
+
{{Shell | > sudo service apache2 restart}}
  
 
=== Anpassen der Konfiguration ===
 
=== Anpassen der Konfiguration ===
Zeile 99: Zeile 108:
 
== Optional: Ein Zertifikat für localhost erstellen ==
 
== Optional: Ein Zertifikat für localhost erstellen ==
 
Wenn Sie eine besonders sichere Verbindung für Mandantendaten wünschen, bietet sich die Erstellung eines lokalen Zertifikats für den lokalen Server ''localhost'' an:
 
Wenn Sie eine besonders sichere Verbindung für Mandantendaten wünschen, bietet sich die Erstellung eines lokalen Zertifikats für den lokalen Server ''localhost'' an:
{{Shell | > openssl req -x509 -out localhost.crt -keyout localhost.key<br> -newkey rsa:2048 -nodes -sha256<br> -subj &apos;&#47;CN&#61;localhost&apos; -extensions EXT -config <&#40;<br> printf &quot;&#91;dn&#93;&#92;nCN&#61;localhost&#92;n&#91;req&#93;&#92;ndistinguished_name &#61; dn&#92;n&#91;EXT&#93;&#92;nsubjectAltName&#61;DNS:localhost&#92;nkeyUsage&#61;digitalSignature&#92;&#92;nextendedKeyUsage&#61;serverAuth&quot;&#41;}}
+
{{Shell |&#35; mkdir /etc/apache2/ssl<br>&nbsp; openssl req -new -x509 -days 3650 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem}}
Aus diesem Zertifikat können Sie nun eine PKS#12-Datei ziehen, die sowohl den privaten SCchlüssel, als auch das X.509 Zertifikat enthält:
+
Als '''Common Name''' geben Sie bitte "localhost" an.
{{Shell |&#35; openssl pkcs12 -export -out localhost.pfx -inkey localhost.key -in localhost.crt}}
+
Das Zertifikat wird anschließend wie folgt verlinkt und eingebunden:
 +
{{Shell |&#35; ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/&#96;/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem&#96;.0<br>&nbsp; chmod 600 /etc/apache2/ssl/apache.pem<br>&nbsp; a2enmod ssl<br>&nbsp; service apache2 force-reload}}
 +
Die Apache-Konfigurationsdatei in <tt>/etc/apache2/vhosts.d/lawsuit-httpd.conf</tt> muss dann folgende zusätzliche Zeichen erhalten:
 +
<IfDefine SSL>
 +
  <IfDefine !NOSSL>
 +
  <Virtualhost *:443>
 +
    SSLEngine On
 +
    SSLCertificateFile /etc/apache2/ssl/apache.pem
 +
    DocumentRoot /home/IHRBENUTZERNAME/lawsuit/
 +
  </Virtualhost>
 +
  </IfDefine>
 +
</IfDefine>
  
Unter Firefox kann diese Datei abschließend unter
+
Unter Firefox kann das selbstgezeichnete Zertifikat nun verwendet werden. Bitte beachten Sie, dass für jede Apache-Konfigurrationsdatei ein anderer Port geöffnet werden muss, "443" also nur einmal verwendet werden kann. Sie können alternativ z.B. "4443" verwenden.
> Einstellungen > Datenschutz & Sicherheit > Zertifikate > Zertifikate anzeigen > Ihre Zertifikate
 
importiert werden
 
  
 
== Problembehebung ==
 
== Problembehebung ==

Version vom 3. November 2021, 11:40 Uhr

Kompatibilität mit openSUSE openSUSE-Themen Weiterführende Artikel Suse.png


Einführung

Diese Dokument gibt eine rasche Einführung, wie ein Apache-Server auf dem lokalen Rechner aufgesetzt werden kann, der die Lawsuit-Programmteile bereitstellt.


Warnung!
Die Kurzanleitung geht nicht vertieft auf mögliche Experten-Einstellungen des Servers ein. Insbesondere bleiben hier Sicherheitseinstellungen unberücksichtigt, die für den Betrieb als öffentlich zugänglicher Netzserver unumgänglich wären. Die nachfolgenden Schritte sind für Anwender gedacht, die Lawsuit intern auf dem Kanzleirechner hinter einer Firewall betreiben möchten.



Allgemeine Rechner-Konfiguration

Die Software benötigt eine funktionierende Netzwerkumgebung. Einstellungen hierzu können Sie mit YaST unter der Rubrik "Netzwerkeinestellungen" vornehmen. Achten Sie insbesondere bei der Nutzung von DHCP darauf, dass weitere Rechner der Kanzlei von YaST tatsächlich im selben Nummernraum wie dieser PC eingetragen wurden, auf dem Apache nun installiert werden soll. Ansonsten können diese Rechner später nicht auf die Kanzleisoftware zugreifen.

Als Zweites sollte der PC auf dem aktuellen Softwarestand sein. Prüfen Sie diesen gegebenenfalls mit YaST in der Sektion Online update nach .

Installation der Apache-Pakete

Der Apache-Server und das optionale Perl-Modul können mit zypper installiert werden. Öffnen Sie dazu ein Terminal-Fenster und wechseln Sie wie folgt in den Superuser-Modus:

> su

Geben Sie nach der Passwortbestätigung den folgenden Befehl ein:

# zypper in apache2 apache2-doc perl-Apache-DBI apache2-mod_perl apache2-mod_php5 apache2-mod_python firewalld-rpcbind-helper


Nutzung der Yast-Funktion

Die weiteren Einstellungen lassen sich zunächst vereinfachen, indem man die Yast-Funktionen für die Servereinrichtung nutzt. Laden Sie dafür das entsprechende Modul nach. Erfahrungsgemäß ist dieser Zwischenschritt jedoch nicht nötig, wenn man die Konfiguration in den nächsten Punkten sorgfältig durchführt.

# zypper in yast2-http-server apache2-mod_wsgi-python3

Unter yast2 wählen Sie >HTTP-Server und klicken sich durch den Installationsprozess. Es müssen keine Anpassungen vorgenommen werden. Nach Abschluss der Installation verschieben Sie Ihre eigene Installation aus /ect/apache2/vhosts.d/YaSTsave wieder ins obere Verzeichnis /ect/apache2/vhosts.d.

Nach Abschluss der Einrichung kann das Hilfsprogramm yast2-http-server wieder entfernt werden.

# zypper rm yast2-http-server


Anpassung der Firewall

Die Firewall ist so voreingestellt, dass sie über Port 80 auf den Rechner eingehende Daten grundsätzlich sperrt. Folglich müssen die Firewall-Einstellungen so angepasst werden, dass aus dem Lokalen Netzwerk über Port 80 eingehender Datenstrom akzeptiert wird. Die folgenden Schritte müssen dazu weiterhin als Root ausgeführt werden.

# sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2
  sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2-ssl
  sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT http
  sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT https
  rcSuSEfirewall2 restart

Die Einstellungen finden sich jedoch auch unter YaST und können dort im etc/sysconfig-Editor mit den Einträgen apache2 und apache2-ssl aktiviert werden, indem sie diese durch Leerzeichen getrennt im Feld FW_CONFIGURATIONS_EXT in /etc/sysconfig/SuSEfirewall2 einsetzen. Diese Konfigurationsvariable findet sich unter:

Network > Firewall > SuSEfirewall2

Die Variablen können per YaST unter

Networt > Firewall 

unter der Listenauswahl Permanent wir folgt eingestellt werden:

Firewall-Einstellungen für den Apache-Server


Alternativ ist die Auswahl per Shell möglich:

# firewall-cmd --zone internal --permanent --add-interface=eth0
  firewall-cmd --zone internal --permanent --add-service=apache2
  firewall-cmd --zone internal --permanent --add-service=apache2-ssl
  firewall-cmd --zone internal --permanent --add-service=nfs
  firewall-cmd --zone internal --permanent --add-service=http
  firewall-cmd --zone internal --permanent --add-service=https
  firewall-cmd --reload


Aktivierung des Servers

Starten Sie den Server und aktivieren Sie ihn in einem Bootverzeichnis, damit er mit dem Rechner hochgefahren wird:

# rcapache2 start
  chkconfig -a apache2

Sie können diese Einstellungen jederzeit unter YaST ändern im Untermenü

YaST > Dienste-Verwaltung

Hinzufügen von Apache-Modulen

Um benötigte Apache-Module zu laden, können wir die Konfigurationsvariable APACHE_MODULES in /etc/sysconfig/apache2 editieren. Schneller geht es jedoch mit den nachfolgenden Befehlen. Nach der Änderung muss der Server neu gestartet werden. Auch für die folgenden Befehle sind wieder die Rechte eines Superusers vonnöten.

# a2enmod mod_perl
  a2enmod mod_env
  a2enmod mod_ssl
  a2enmod mod_php5
  a2enmod mod_python
  a2enmod -l
  rcapache2 restart


Virtual Hosts

Allgemeines

Das Verzeichnis für alle Virtual Host ist /etc/apache2/vhosts.d/. Wie Sie sehen gibt es zwei Konfigurationsdateien - eine mit ssl, die andere ohne ssl. Wir benutzen die Vorlage ohne Secure Sockets Layer. Nur Dateien mit dem Suffix ".conf" werden automatisch in die Apachekonfiguration einbezogen.

Vorabhinweis
Wenn Sie neben Lawsuit einen weiteren eigenen Virtual Host hinzufügen möchten, ersetzen Sie in den folgenden Zeilen bitte Domainname durch ihren Verzeichnisnamen oder Ihre IP-Adresse.


  • Es gibt mehrere Varianten für die Struktur, mit welcher der eigenen Server auf dem Rechner aufgesetzt werden kann. Folgende Optionen bieten sich an:
  • Sei können für Ihre Verzeichnisse die Vorlage vhost.template kopieren und als Ihre {DOMAINNAME}.conf speichern. Hier hinein tragen Sie anschließend die Unterverzeichnisse für Ihren Virtual Host ein.

Einstellungen für Lawsuit

Für Lawsuit wird die Konfigurationsdatei jedoch im Unterverzeichnis lawsuit/settings bereits fertig zur Verfügung gestellt. Sie müssen lediglich in der genannten Datei den Platzhalter durch den eigenen Nutzernamen ersetzen und die fertige Datei in das Vhosts-Verzeichnis verlinken. Wechseln Sie in das Unterverzeichnis lawsuit/settings. Wenn Sie Lawsuit in Ihrem Nutzerhauptverzeichnis installiert haben, gelangen Sie mit diesem Befehl dorthin:

> cd ~/lawsuit/settings

Erstellen Sie dort eine Konfigurationsdatei aus der Vorlage lawsuit-httpd.template und ersetzen Sie den darin enthaltenen Platzhalter meinpfad dabei durch Ihren Pfad zum aktuellen Verzeichnis. Dies erfolgt automatisiert durch diese Befehle:

> pfad=`pwd | sed 's/\/lawsuit.*//' | sed 's/\//\\\\\//g'`
> sed "s/meinpfad/$pfad/g" lawsuit-httpd.template > lawsuit-httpd.conf

Falls Ihr Pfad zum Ordner Documents nicht mit dem soeben ermittelten Pfad für lawsuit identisch ist, passen Sie diese Einstellungen für das Verzeichnis Documents bitte in der lawsuit-httpd.conf mit einem Editor wie kate von Hand an.

Abschließend kopieren Sie die erstellte Konfigurationsdatei als Superuser in das Verzeichnis der Virtual Hosts von Apache:

> sudo cp lawsuit-httpd.conf /etc/apache2/vhosts.d/


  • Neustart von Apache
> sudo service apache2 restart


Anpassen der Konfiguration

Um Ergänzungen oder Änderungen einheitlich für alle Virtual Hosts an der Datei /etc/apache2/default-server.conf vorzunehmen, editieren Sie die Konfigurationsvariable APACHE_CONF_INCLUDE_FILES mithilfe von

YaST > etc/sysconfig-Editor

oder arbeiten direkt in der Textdatei /etc/sysconfig/apache2. Zum Verständnis der Hierarchie und des Layouts um Dateien einzubeziehen, lesen Sie die Kommentierung im Kopf der httpd.conf. Die ursprüngliche, einfache Konfigurationsdatei mit nur 40K findet sich notfalls unter /usr/share/doc/packages/apache2/httpd-std.conf-prefork.

Optional: Ein Zertifikat für localhost erstellen

Wenn Sie eine besonders sichere Verbindung für Mandantendaten wünschen, bietet sich die Erstellung eines lokalen Zertifikats für den lokalen Server localhost an:

# mkdir /etc/apache2/ssl
  openssl req -new -x509 -days 3650 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem

Als Common Name geben Sie bitte "localhost" an. Das Zertifikat wird anschließend wie folgt verlinkt und eingebunden:

# ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem`.0
  chmod 600 /etc/apache2/ssl/apache.pem
  a2enmod ssl
  service apache2 force-reload

Die Apache-Konfigurationsdatei in /etc/apache2/vhosts.d/lawsuit-httpd.conf muss dann folgende zusätzliche Zeichen erhalten:

<IfDefine SSL>
 <IfDefine !NOSSL>
  <Virtualhost *:443>
   SSLEngine On
   SSLCertificateFile /etc/apache2/ssl/apache.pem
   DocumentRoot /home/IHRBENUTZERNAME/lawsuit/
  </Virtualhost>
 </IfDefine>
</IfDefine>

Unter Firefox kann das selbstgezeichnete Zertifikat nun verwendet werden. Bitte beachten Sie, dass für jede Apache-Konfigurrationsdatei ein anderer Port geöffnet werden muss, "443" also nur einmal verwendet werden kann. Sie können alternativ z.B. "4443" verwenden.

Problembehebung

Lesen Sie wenn möglich die Fehlermeldungen nach dem Start des Servers. Versuchen Sie Fehler ggf. zu reproduzieren und vergleichen Sie die Einträge in den Log-Dateien. Den Einblick auf die dortigen Meldungen können Sie mit dem folgenden Befehl auf den neuesten Stand reduzieren::

# tail -F /var/log/apache2/*


Da die Error-Messages schnell sehr großen Umfang einnehmen, der am Ende sogar den Systemstart blockieren kann, empfiehlt es sich, mit Logrotate den Bestand unter Kontrolle zu halten. Installieren Sie dazu, falls noch nicht vom System geschehen:

# zypper in logrotate

Sie können die Einstellungen in der Konfigurationsdatei

/etc/logrotate.conf

ändern. Eine typische Konfiguration von logrotate.conf sieht z.B. wie folgt aus:

# see "man logrotate" for details


# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# remove rotated logs older than <count> days
maxage 90

# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
compress
# comment these to switch compression to use gzip or another
# compression scheme
compresscmd /usr/bin/xz
uncompresscmd /usr/bin/xzdec
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d


Sollten Sie einen Fehler gefunden haben, berichten Sie ihn bitte.

Weiterführende Informationen

Verwandte Artikel

  • openSUSE Firewall
  • Package documentation and example configuration files in /usr/share/doc/packages/apache2/

Externe Links