ubuntuusers.de

Apache2/htaccess

Status: Gelöst | Ubuntu-Version: Server 10.04 (Lucid Lynx)
Antworten |

gma

Anmeldungsdatum:
7. August 2007

Beiträge: 106

Hallo,

würde gerne meinen Apache2 mittels .htaccess absichern. Meine Webseiten liegen unter /var/www, in der apache2.conf ist als ServerRoot aber /etc/apache2 angegeben (da liegen auch die meissten meiner Webapplikationen).

Erstens möchte ich den Ordner /var/www nur für bestimmte Nutzer zugänglich machen, dafür habe ich eine .htaccess und eine .htpasswd Datei in diesem Ordner angelegt, allerdings ohne Wirkung.

In der apache2.conf steht als ServerRoot wiegesagt /etc/apache2, und für AccessFileName steht dort ".htaccess".

Wo wird denn dem Apache erklärt, das unter /var/www meine Webseiten liegen?

Ich müsste in der apache2.conf doch etwas wie

<Directory "/var/www/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

finden, oder muss ich die Sektion komplett selbst anlegen?

Ich habe zum Test meine apache2.conf um den obigen Block erweitert, aber ohne Wirkung.

Was ich überhaupt nicht verstehe, wie Webseiten unter /var/www überhaupt angezeigt werden können, wenn ich diese im Browser mit http://localhost/seitenname aufrufe. Das muss doch irgendwo konfiguriert sein!???

Wer klärt mich auf! gma

Bearbeitet von redknihgt:

Ubuntuversion nachgetragen und Titel angepasst.

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21848

Wohnort: Lorchhausen im schönen Rheingau

Erstens gehört das in

/etc/apache2/httpd.conf

zweitens musst du es selbst anlegen und drittens hab ich mal für dich die Ubuntuversion nachgetragen. Es gibt da so schicke Auswahlboxen, die man bei Erstellen des Threads nutzen kann

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Hallo,

gma schrieb:

Hallo,

würde gerne meinen Apache2 mittels .htaccess absichern. Meine Webseiten liegen unter /var/www, in der apache2.conf ist als ServerRoot aber /etc/apache2 angegeben (da liegen auch die meissten meiner Webapplikationen).

der ServerRoot gibt nur den Ablageort der Konfigurationsdateien an. Das Verzeichnis, in dem deine Webseiten liegen, wird immer mit DocumentRoot angegeben. Im Auslieferungszustand ist beim Apache ein entsprechender virtueller Host in der Datei /etc/apache2/sites-available/default definiert.

Ich habe zum Test meine apache2.conf um den obigen Block erweitert, aber ohne Wirkung.

Im Prinzip brauchst du in /etc/apache2/sites-available/default nur die Option für Basic-Authentisierung hinzufügen:

<Directory /var/www>
  AuthType Basic
  AuthUserFile /var/www/.htpasswd
  Require valid-user
</Directory>

Gruß

gma

(Themenstarter)

Anmeldungsdatum:
7. August 2007

Beiträge: 106

Hallo,

vielen Dank erstmal, dass ich durch eure Hilfe wieder etwas Orientierung habe (checkbox werde ich nächstes mal sicherlich beachten!)

Nachdem ich einige entsprechende Änderungen vorgenommen habe, passiert auch etwas, allerdings bekomme ich jetzt, wenn auf Seiten, die unter /var/www zugreifen möchte, einen 403 acces denied Fehler.

Ich bekomme keinen Prompt für die Eingabe der Login Details!

Aufrufen der Seite mit

http://user:password@Seite

geht auch nicht:

"You are about to log in to the site "localhost" with the username "admin", but the website does not require authentication. This may be an attempt to trick you.
Is "localhost" the site you want to visit?")

Sites-available/default sieht so aus:

<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		AuthType Basic
		AuthUserFile /var/www/.htpasswd
		Order allow,deny
	#	allow from all
		require valid-user
	</Directory>

Unter var/www liegen .htaccess mit folgendem Inhalt:

AuthUserFile /var/www/.htpasswd
#AuthGroupFile /dev/null
AuthName Private Area
AuthType Basic
#<Limit GET>
require valid-user
#</Limit>

und .htpasswd:

admin:JPYmvdFjI8kcg

Da muss wohl irgendwas falsch sein! Nur was?

Edit:

habe gerade in meine Mac OS X httpd.conf geschaut, bei der das alles funktioniert. Habe obiges dementsprechend geändert, und es funktioniert!!!

<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
		AuthType Basic
		AuthUserFile /var/www/.htpasswd
		Order allow,deny
		allow from all

	</Directory>

Anscheinend braucht man die Angabe "require valid-user" nicht, geht aber auch mit, wichtig war wahrscheinlich das AllowOverride All und ich hatte auch das allow from all gelöscht! gma

Antworten |