Apache 2.0 public_html

Fórumok

Nem akar működni a felhasználók által készített weblapok megjelenítése, ha http://ipcím/~user kérés érkezik.
A felhasználó könyvtárában a public_html könyvtárban benne van egy weboldal index.html névvel, de nem akar működni.
Elvileg apache 2.0-ban alapértelmezésben működnie kellene, de nem megy.
Van valakinek valami ötlete, hogy mit hagyhattam figyelmen kívül ?
Segítségül itt az userdir.conf-om :


#
# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#

<IfModule mod_userdir.c>
	# Note that the name of the user directory ("public_html") cannot easily be
	# changed here, since it is a compile time setting. The apache package
	# would have to be rebuilt. You could work around by deleting
	# /usr/sbin/suexec, but then all scripts from the directories would be
	# executed with the UID of the webserver.
	# 
	# To rebuild apache with another setting you need to change the 
	# %userdir define in the spec file. 

	# not every user's directory should be visible:
	UserDir disabled root

	# to enable UserDir only for a certain set of users, use this instead:
	#UserDir disabled
	#UserDir enabled user1 user2

	# the UserDir directive is actually used inside the virtual hosts, to 
	# have more control
	UserDir public_html

	<Directory /home/*/public_html>

		AllowOverride FileInfo AuthConfig Limit Indexes
		Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec

		<Limit GET POST OPTIONS PROPFIND>
			Order allow,deny
			Allow from all
		</Limit>

		<LimitExcept GET POST OPTIONS PROPFIND>
			Order deny,allow
			Deny from all
		</LimitExcept>

	</Directory>

</IfModule>

Hozzászólások

Biztos, hogy a DirectoryIndex jo?
Kapott az apache usere jogokat a konyvtarakra?

Nincs valakinek valami ötlete a fenti problémára ?
Esetleg a virtual-host beállításainál nem lehet valami beállítás ? A vhosts.template-ben találtam az user_dir-re vonatkozó sorokat, de nem tudtam mit kezdeni vele:


# UserDir: The name of the directory that is appended onto a user's home
    # directory if a ~user request is received.
    #
    # To disable it, simply remove userdir from the list of modules in APACHE_MODULES
    # in /etc/sysconfig/apache2.
    #
    <IfModule mod_userdir.c>
	# Note that the name of the user directory ("public_html") cannot simply be
	# changed here, since it is a compile time setting. The apache package
	# would have to be rebuilt. You could work around by deleting
	# /usr/sbin/suexec, but then all scripts from the directories would be
	# executed with the UID of the webserver.
	UserDir public_html
	# The actual configuration of the directory is in
	# /etc/apache2/mod_userdir.conf.
	Include /etc/apache2/mod_userdir.conf
	# You can, however, change the ~ if you find it awkward, by mapping e.g.
	# http://www.example.com/users/karl-heinz/ --> /home/karl-heinz/public_html/
	#AliasMatch ^/users/([a-zA-Z0-9-_.]*)/?(.*) /home/$1/public_html/$2
    </IfModule>

Ha a böngészőbe beírom, hogy: http://ip-cím/~user,
akkor ezt dobja vissza :
Access forbidden!
You don't have permission to access the requested object. It is either read-protected or not readable by the server.
If you think this is a server error, please contact the webmaster.
Error 403
192.168.1.222
Tue Dec 12 18:42:45 2006

Megnéztem a logokat:

1)***Az ACESS_LOG erre vonatkozó sora:
192.168.1.222 - - [13/Dec/2006:19:24:03 +0100] "GET /~hydra HTTP/1.1" 403 1022 "-" "Mozilla/5.0 (X11; U; Linux i686; hu; rv:1.8.0.8) Gecko/20060911 SUSE/1.5.0.8-0.2 Firefox/1.5.0.8"

Ebből igazán nem derül ki számomra semmi csak a 403-as hibakód.

2)***Az ERROR_LOG tartalma ugyanerre a kérésre pedig:
[Wed Dec 13 19:24:03 2006] [error] [client 192.168.1.222] client denied by server configuration: /home/hydra/public_html

Azt látom, hogy a szerverkonfiggal van a baj, csak nem tudom, hogy mi az ?

/home/hydra/public_html
/home/hydra

Milyen chmod van ezeken?
A másodiknak 711-nek kéne lenni!

----------------------------------------------------------------
"Értem én hogy villanymotor, de mi hajtja!?

Naiv kérdés, de be van töltve a userdir modul?

Ez a "LimitExcept"-es resz eleg szarul nez ki... de legalabbis a GET-et torold ki belole. Az error log is azt mondja, hogy "client denied by server configuration: /home/hydra/public_html".

hello,

egyelőre használd a konkrét felhasználónevekre megadott

userdir enabled felhasználónév formulát

szerintem.

andras.dhost.hu

A public_html egész elérési útvonalára a 755-ös jogok vannak beállítva, a benne lévő index.html-re pedig 644-es.

Az user_dir modul be van töltve.

Hiába veszem ki a LimitExcept-es részt, sőt az egész home-ra vonatkozó Directory direktívát akkor se megy.

Az userdir enabled "felhasználónév" formulával se megy. Azt már próbáltam.

Nem tudom mit szeretnél, de nálam ezzel a beállítással megy. Talán segít...


# UserDir is now a module
UserDir public_html
#UserDir disabled root

<Directory /home/*/public_html>
	AllowOverride FileInfo AuthConfig Limit
	Options Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>

Megnéztem, de ezzel se megy...lehet, hogy nem az userdir_conf fájlban van a baj.
Na mindegy keresem tovább a megoldást a configfájlokban :?

Egyátalán mi alapján kezeli az apache a ~user kéréseket ? Minden felhasználói kéréskor külön virtual hostot indít ?
De a virtual hostok konfig fájljában csak a fentiekben leírt sorokat találtam az userdir-re vonatkozóan.
A sysconfig-ban is benne van az apache moduljai közt !

MŰXIK....akkor már csak finomítani kell.
Tényleg van egy ilyen beállítás a http_conf-ban, de azt hittem, hogy ezt felüldefiniálja az userdir_conf-ban lévő direktíva.
Erre írtam át a httpd_conf-ot:


<Directory />
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

De ez biztonsági szempontból nem túl katasztrófális ?
Mivel így megengedtem, hogy bárki hozzáférjen az egész fájlrendszeremhez nem ?
Nem volna jobb megoldás a /home/user/public_html-ben egy .htacess fájl az alapbeállítások felülírására ?
Az apache is valami ilyesmire utal..

Ha csak annyit változtatok, hogy az egész fájlrendszerre vonatkozó fentebbi direktívában az AllowOverride-ot átállítom All-ra és ezáltal elvileg engedélyezem ezen direktíva felülírását, akkor ilyen formában nem megy.Pedig az userdir_conf-ban van egy felülkonfiguráló direktíva...még megpróbálom a .htaccess-t is.

Pont erre gondoltam én is :)) a konfigfájlokat nézegetve, majd beleírtam a http.conf-ba az userdir include-olást és lám működött.
Nem is gondoltam, hogy nincs betöltve, mivel a yast azt írta, hogy be van töltve az userdir.
Úgyhogy a probléma megoldódott!

Köszönöm mindenkinek a hozzászólásokat!