Nie działa alias dla plików użytkownika (apache2)

Witam.

Zainstalowałem sobie LAMPa pod lubuntu 13.04. Po wpisaniu w przeglądarce

localhost

pokazuje mi się strona,

It works!


This is the default web page for this server.


The web server software is running but no content has been added, yet.

więc teoretycznie jest git. Na próbę dodałem sobie do lokalizacji

/var/www/

plik index.php o następującej treści:

<?php

phpinfo(); 

?>

i po wpisaniu w adres przeglądarki

localhost/index.php

wszystko śmiga, jak należy. Chciałbym jednak, by pliki z lokacji

/home/wojcirej/www/

także były widoczne po wpisaniu

localhost/wojcirej/index.php

jednak dostaję 404 - Not Found. Próbując z tyldą,

localhost/~wojcirej/index.php

dostaję 403 - Forbidden. Alias utworzyłem w pliku

sudo gedit /etc/apache2/sites-available/default

następującym sposobem:

Alias /wojcirej/ „/home/wojcirej/www/”


		Options Indexes FollowSymLinks MultiViews

		AllowOverride None

		Order allow,deny

		allow from all

Co zrobiłem nie tak i co mam zrobić, aby to zadziałało poprawnie? Chciałbym zaznaczyć, że logowanie do phpmyadmin działa u mnie poprawnie.

chmod -R o+r /home/wojcirej/www/

find /home/wojcirej/www -type d -exec chmod o+x {} \;

(musisz nadać katalogowi i plikom w nim prawa do odczytu przez innych)

Uprawnienia nadane

drwxrwxrwx 2 wojcirej wojcirej 4096 maj 8 18:54 www

Sytuacja jednak bez zmian.

W sumie taka myśl mnie jeszcze naszła - czy to może mieć jakiś związek, że katalog home mam zaszyfrowany?

Raczej nie. Spróbuj jeszcze:

chmod o+x /home/wojcirej

Jednak tak jak patrzę, to raczej to nic nie zmieni, skoro dostajesz 404. Coś ciekawego widać w logach?

I czy po utworzeniu aliasu przeładowałeś Apache’a?

Do przeładowania użyłem komendy:

sudo /etc/init.d/apache2 restart

I nadal nic. Logi z

/var/log/apache2

z racji że są długie, wrzucam na dropboxa:

https://www.dropbox.com/s/bpljwd35azkboki/error.log

https://www.dropbox.com/s/ckzhuq9s824hkvt/access.log

Jeśli chcesz korzystać z katalogu public_html lub innego (jeśli inny, musisz to określić w konfiguracji mod_userdir) w katalogu domowym użytkowników, musisz aktywować moduł UserDir, czyli jeśli chcesz korzystać z localhost/~wojcirej, powinieneś wykonać takie polecenie.

sudo a2enmod userdir

Następnie restart Apache. Jeśli pojawi się komunikat already enabled, a serwer nie będzie czytał z katalogu domowego, wyłącz i włącz moduł. Jeśli chcesz stworzyć alias, to spróbuj tak.

Alias /wojcirej /home/wojcirej/public_html/



        Options Indexes FollowSymLinks MultiViews

        AllowOverride None

        Order allow,deny

        allow from all

Restart Apache. Możesz też stworzyć osobną konfigurację dla virtual hosta, żeby nie robić bałaganu w pliku default.

sudo a2dissite default

sudo nano /etc/apache/sites-available/wojcirej

Konfiguracja serwera.

DocumentRoot /var/www


Alias /wojcirej /home/wojcirej/public_html/



        Options Indexes FollowSymLinks MultiViews

        AllowOverride None

        Order allow,deny

        allow from all

Virtual Hosty mogą działać też na innych portach. Skrypty PHP w userdir nie są domyślnie wykonywane, aby to zmienić, w pliku /etc/apache2/mods-available/php5.conf zakomentuj poniższe linijki.

php_admin_value engine Off

I restart serwera. Jeśli nie chcesz korzystać z katalogu /var/www tylko z /home/wojcirej/www i nie chcesz korzystać z public_html oraz localhost/~wojcirej, to konfiguracja vhosta powinna wyglądać tak.

DocumentRoot /home/wojcirej/www


        Alias /wojcirej /home/wojcirej/www



                Options Indexes FollowSymLinks MultiViews

                AllowOverride None

                Order allow,deny

                allow from all

W tym przypadku konfiguracja php nie jest potrzebna, ona dotyczy tylko mod_userdir. U mnie obie konfiguracje działają, więc u Ciebie też powinno.

Zrestartowałem moduł UseDir i mój alias nie zadziałał. Alias stworzony przez ciebie zadziałał, z tym że zamiast katalogu “public_html” użyłem “www”. Na pierwszy rzut oka nasze kody niczym się nie różnią, ale po raz kolejny przekonuję się, że w Linuksie trzeba być pierońsko precyzyjnym. Bardzo dziękuję na pomoc, wszystko działa dokładnie tak, jak chciałem. :slight_smile: