Na moim komputerze z systemem Mac OS 10.5 chciałbym skonfigurować podfolder ~/Documents
podobny ~/Documents/foo/html
do http: // localhost / foo .
Pierwszą rzeczą, o której pomyślałem, było użycie Aliasu w następujący sposób:
Alias /foo /Users/someone/Documents/foo/html
<Directory "/Users/someone/Documents/foo/html">
Options Indexes FollowSymLinks MultiViews
Order allow,deny
Allow from all
</Directory>
To mi 403 zabronione. W dzienniku błędów dostałem:
[error] [client ::1] (13)Permission denied: access to /foo denied
Omawiany podfolder ma dostęp do chmod 755. Próbowałem podać polubienia takie jak http: //localhost/foo/test.php , ale to też nie działało. Następnie spróbowałem trasy z dowiązaniem symbolicznym.
Wszedł /Library/WebServer/Documents
i zrobił dowiązanie symboliczne do ~/Documents/foo/html
. Katalog główny ma
Options Indexes FollowSymLinks MultiViews
To wciąż mnie 403 zabronione:
Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/foo
Czego jeszcze potrzebuję, aby to skonfigurować?
Rozwiązanie :
$ chmod 755 ~/Documents
Zasadniczo folder, który ma być udostępniony, i cały jego folder nadrzędny musi być widoczny www
dla użytkownika usługi.
źródło
Odpowiedzi:
Założę się, że jakiś katalog powyżej tego, do którego chcesz uzyskać dostęp, nie ma uprawnień pozwalających Apache na przechodzenie przez niego. Zostań użytkownikiem, na którym działa Apache jako (
sudo -i -u apache
lub cokolwiek innego), a następnie spróbuj przejść do katalogu zainteresowań ils
to. Jeśli nie możesz (zgodnie z oczekiwaniami), spróbuj wchodzić do katalogów powyżej, jeden po drugim, dopóki nie wpuścisz. Podkatalog tego katalogu musi byćo+x
ustawiony. Spłucz, spłucz, powtórz w razie potrzeby.źródło
sudo -i -u _www
z systemu OS X (ponieważ użytkownik Apache ma domyślną konfigurację Apache w systemie OS X), to robię towhoami
, nadal otrzymuję swoją nazwę użytkownika, a nie _wwwsudo - www-data
(dla Ubuntu).Posługiwać się
+FollowSymlinks
źródło
Sprawdź, czy przechowalnia plików nie jest włączona. Miałem ten sam problem. Próbowałem wszystkiego, co mogłem znaleźć. Nic nie działało. Ale po godzinie próby zrozumienia tego przypomniałem sobie, że mam włączoną przechowalnię plików.
Wyłączenie go rozwiązało problem.
źródło
Sprawdź własność dowiązania symbolicznego. Ponieważ korzystasz z systemu Mac OS X, właścicieli dowiązań symbolicznych można zmienić. W
/Library/WebServer/Documents
dols -l
Jeśli twój dowiązanie symboliczne
~/Documents/foo/html
jest wywoływanefoo
i ma uprawnienia takie jakNastępnie domyślnie na OS X Apache działa jako użytkownik _www i grupa _www, więc w wyżej wspomnianym przypadku nie będzie mógł przejść do dowiązania symbolicznego do
~/Documents/foo/html
Uruchom
man 8 chown
na terminalu systemowym lub spójrz na to online man chownZobaczysz, że użycie tej
-h
opcji zmieni własność samego dowiązania symbolicznego, a nie pliku, na który wskazuje (jego źródło). Następnie możesz zrobić coś takiegoSpowoduje to zmianę simlink na
a grupa Apache _www będzie mogła przejść przez link.
źródło
Sprawdź katalog / Users (ls -l / Users), aby zobaczyć prawa użytkownika (kogoś).
Czy katalog „Witryny” jest poprawnie dostępny na localhost / ~ kogoś?
źródło