apache2, warum Directory setzen und immernoch httpd.conf?

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von dmant » 24.10.2017 09:57:31

Hallo,

mein Apache2 funktioniert so wie er soll. Jedoch muss ich bei manchen vhost ein <Directory> setzen. Es funktioniert aber mich würde interessieren warum? Also was mir aufgefallen ist, ist das ich das nur bei Verzeichnissen machen muss die ich von Hand eingebunden haben.

Bei /secret handelt es sich um eine Luks verschlüsselte Partition.

Wenn ich z.b. owncloud oder phpmyadmin einbinde brauche ich dies nicht.

Code: Alles auswählen

#### phpmyadmin.dmant.ovh

<VirtualHost 5.135.191.37:80>
ServerName phpmyadmin.dmant.ovh
ServerAlias phpmyadmin.dmant.ovh
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>

<VirtualHost 5.135.191.37:443>
DocumentRoot /usr/share/phpmyadmin
ServerName phpmyadmin.dmant.ovh
SSLEngine on
SSLCertificateFile /secure/ssl/dmant.ovh.apache.crt
SSLCertificateKeyFile /secure/ssl/dmant.ovh.key
</VirtualHost>

#### cloud.dmant.ovh

<VirtualHost 5.135.191.37:80>
ServerName cloud.dmant.ovh
ServerAlias cloud.dmant.ovh
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>

<VirtualHost 5.135.191.37:443>
DocumentRoot /usr/share/owncloud/
ServerName cloud.dmant.ovh
SSLEngine on
SSLCertificateFile /secure/ssl/dmant.ovh.apache.crt
SSLCertificateKeyFile /secure/ssl/dmant.ovh.key
</VirtualHost>
Bei den Luks Verzeichnis

Code: Alles auswählen

#### nopaste.dmant.ovh

<VirtualHost 5.135.191.37:80>
ServerName nopaste.dmant.ovh
ServerAlias nopaste.dmant.ovh
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>

<VirtualHost 5.135.191.37:443>
DocumentRoot /secure/https/nopaste/
ServerName nopaste.dmant.ovh
SSLEngine on
SSLCertificateFile /secure/ssl/dmant.ovh.apache.crt
SSLCertificateKeyFile /secure/ssl/dmant.ovh.key

<Directory "/secure/https/nopaste">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
</Directory>
</VirtualHost>
Hier muss ich <Directory> mit angeben. Mich würde interessieren warum? Mich stört es nicht weiter da ich das einmal schreibe und mit der httpd.conf fertig bin aber der Verständnis halber.

Dann fällt mir immer mehr auf das nicht mehr mit der httpd.conf gearbeitet wird sondern jeder vhost einzeln in /etc/apache2/conf-enable/ gelegt wird.

Ist die Methode mit der httpd.conf veraltet? Auch gibt es NameVirtualHost in der httpd.conf nicht mehr. Bin da noch bisschen auf dem alten Stand. Meine httpd.conf sieht wie folgt aus

https://nopaste.dmant.ovh/?v=phahShaeL4oo

Danke euch

DeletedUserReAsG

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von DeletedUserReAsG » 24.10.2017 12:39:53

Mit der Directory-Direktive gibst du Optionen für das betreffende Verzeichnis mit. Näheres zu der Direktive und möglichen Optionen findet sich in der sehr guten Doku auf apache.org. Sollte eh jeder mal anschauen, der einen Apache-httpd betreibt.

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von dmant » 24.10.2017 12:55:05

Ja das ist mir schon klar nur warum muss ich die Optionen nur beim /secret Verzeichnis setzen?

DeletedUserReAsG

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von DeletedUserReAsG » 24.10.2017 21:21:53

Musst du? Was passiert denn, wenn du’s nicht machst?

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von dmant » 24.10.2017 22:37:34

Dann kriege ich ein 404 internal Server error

DeletedUserReAsG

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von DeletedUserReAsG » 24.10.2017 22:39:04

a) ist 404 kein Internal Server Error (das wäre 500) – wäre also gut zu wissen, was für ein Fehler denn nun tatsächlich kommt, und b) steht dann im Errorlog, was genau falsch ist.

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von dmant » 24.10.2017 22:41:58

Stimmt

Code: Alles auswählen

Forbidden

You don't have permission to access / on this server.
Apache/2.4.10 (Debian) Server at nopaste.dmant.ovh Port 443
Und im error.log

Code: Alles auswählen

[Tue Oct 24 22:41:13.453101 2017] [authz_core:error] [pid 9849] [client 92.224.124.2:47495] AH01630: client denied by server configuration: /secure/https/nopaste/
[Tue Oct 24 22:41:13.568078 2017] [authz_core:error] [pid 9849] [client 92.224.124.2:47495] AH01630: client denied by server configuration: /secure/https/nopaste/favicon.ico, referer: https://nopaste.dmant.ovh//

DeletedUserReAsG

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von DeletedUserReAsG » 24.10.2017 22:48:46

Options Indexes sorgt dafür, dass ein Index zurückgeben wird, wenn die URL auf ein Verzeichnis zeigt. Ist Indexes nicht gesetzt, hat der User nicht das Recht, den Verzeichnisinhalt aufzurufen. Wenn du eine leere index.html anlegst, sollte die an dieser Stelle ausgeliefert werden, so dass kein Fehler mehr auftritt.

Edit (zum nachgeschobenen Errorlog): Wozu Require all granted gut sein könnte, kannst du selbst in der Doku nachschlagen. Oder in den Apache-Channel im IRC gehen – glaube, die haben ’nen Dokubot. Dieses Forum hat keinen :)
Zuletzt geändert von DeletedUserReAsG am 24.10.2017 22:51:57, insgesamt 1-mal geändert.

dmant
Beiträge: 251
Registriert: 09.10.2017 10:28:29

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von dmant » 24.10.2017 22:51:12

Ne. Ob ich da eine Index habe oder das Verzeichnis leer ist. Der Fehler kommt solange bis ich Directory setze.

DeletedUserReAsG

Re: apache2, warum Directory setzen und immernoch httpd.conf?

Beitrag von DeletedUserReAsG » 24.10.2017 23:02:12

Ne. Ob ich da eine Index habe oder das Verzeichnis leer ist.
Ja, hatte meinen Beitrag geschrieben, als das Fehlerlog noch nicht da war. War das Naheliegendste.


Dir scheint ein wenig Grundverständnis zu fehlen: du „setzt“ kein Directory, du legst lediglich fest, für welches Verzeichnis die Optionen in diesem Block gelten. Ergo wird’s auch nicht funktionieren, wenn du lediglich einen leeren <Directory></Directory>-Block anlegst, die Optionen sind von Bedeutung.

Du könntest mal in der Hauptconfig schauen, ob da nicht vielleicht schon genau diese Optionen für Verzeichnisse festgelegt sind, und der Unterschied zwischen deinen vHosts, bei denen es geht, und denen, bei denen es nicht geht, darin liegt, dass bei Ersteren das DocRoot unterhalb dieser Verzeichnisse liegt, und bei Letzteren außerhalb (die daher die Optionen für / erben) …

Code: Alles auswählen

<Directory />  
        Options FollowSymLinks 
        AllowOverride None  
        Require all denied
</Directory>                                                                                                                                                                                 
                                                                                                                                                                                             
<Directory /usr/share>
        AllowOverride None  
        Require all granted   
</Directory>         


Nachtrag:
Apache Doku hat geschrieben:Require all
The all provider mimics the functionality that was previously provided by the 'Allow from all' and 'Deny from all' directives. This provider can take one of two arguments which are 'granted' or 'denied'. The following examples will grant or deny access to all requests.

Code: Alles auswählen

Require all granted

Code: Alles auswählen

Require all denied
(zukünftig bitte selbst nachlesen)

Antworten