Mam kilka problemów z symlinkowaniem mojego /var/www/
do nowego Webroot
katalogu w moim katalogu domowym. Myślę, że wynikają one z mojego niezrozumienia uprawnień do systemu Linux.
O ile mi wiadomo, dowiązania symboliczne powinny mieć postać katalogu, do którego chcesz się połączyć, i katalogu, z którym chcesz się połączyć, więc w moim przypadku uruchomiłem:
sudo ln -s ~/Webroot/* /var/www/
to jest jakby pracował, jeśli biegnę ls
na /var/www/
widzę wszystkie pliki w moim Webroot
katalogu.
Ilekroć próbuję uruchomić plik, który znajduje się w moim Webroot
folderze, pojawia się błąd uprawnień 403, czy to dlatego, że pliki w moim katalogu Webroot są tworzone przeze mnie, a instancja apache jest uruchamiana jako www-data?
w takim przypadku, czy to oznacza, że muszę zmienić uprawnienia do każdego pliku, który tworzę, aby go uruchomić?
Wcześniej uruchomiłem lokalną instancję apache, wskazując katalog główny mojego domyślnego vhosta na Webroot
folder, w tym przypadku nie musiałem zmieniać żadnych uprawnień. Każda pomoc będzie mile widziana.
źródło
Odpowiedzi:
To nie jest dobra praktyka, zgadzam się z Weboide. Istnieje jednak prosty sposób na osiągnięcie tego celu.
1). włączyć moduł apache userdir.
to włączy moduł apache userdir. Teraz możesz umieścić zawartość strony internetowej
~/Webroot/
lub cokolwiek w swoim katalogu domowym.Uwaga: Domyślnym folderem jest
~/public_html
2). Wprowadź niezbędne zmiany w
/etc/apache2/mods-enabled/userdir.conf
.3). Uruchom ponownie apache
Teraz możesz uzyskać dostęp do strony, przechodząc do przeglądarki na http: // adres ip / ~ nazwa użytkownika . Możesz również ustawić wirtualny host dla tej witryny.
Jeśli chcesz uruchomić pliki php, musisz zrobić jeszcze jeden krok
edytuj
/etc/apache2/mods-enabled/php5.conf
i komentuj następujące linie:Następnie uruchom ponownie apache.
Otóż to. Gotowe.
Patrz: https: //wiki.ubuntu.com/UserDirectoryPHP
Mam nadzieję że to pomoże. Jeśli napotkasz jakiekolwiek trudności, opublikuj go tutaj.
źródło
To nie jest dobra praktyka, aby osiągnąć to, czego chcesz.
Jeśli używasz PHP, możesz rzucić okiem na suexec , suphp lub php-fpm i fastcgi .
Masz rację co do swojego problemu, jest to problem z uprawnieniami, ponieważ Twoje
Webroot
pliki są własnością innego użytkownika niżwww-data
.Oto niezłe rozwiązanie problemu. Pamiętaj, że prawdopodobnie będziesz musiał użyć sudo lub zalogować się jako root. Upewnij się, że w pełni rozumiesz wszystkie polecenia, które będziesz wykonywać !!
Zmień
Webroot
folder, podfoldery i pliki, aby ustawić własność grupy nawww-data
i ustawić odpowiednie uprawnienia:Edycja: Pamiętaj, że z pewnością będziesz musiał ponownie uruchomić te polecenia, jeśli dodasz pliki / foldery za pomocą zwykłego konta użytkownika.
źródło
Zrobiłem prawie to samo z Debianem Lennym, ale zmieniłem tryb na inny niż hax, poprawnie skonfigurowałem apache. Ale z dowiązaniem symbolicznym:
Myślę, że powinieneś sprawdzić uprawnienia ~ i ~ / Webroot , myślę, że twój katalog (~) jest chroniony przed odczytem, to znaczy, musisz uruchomić to:
Aby ustawić odpowiednie zezwolenia, użyj:
Myślę, że to powinno pomóc, ale daj mi więcej informacji na ten temat. Sugeruję, abyś wyszedł z katalogu głównego, np. do / home jak ja , ponieważ może to być problem z bezpieczeństwem.
„#” oznacza zezwolenie na rootowanie , np. napisz sudo przed poleceniami; „$” oznacza zezwolenie dla jednego użytkownika
źródło
Musisz sprawdzić uprawnienia nie tylko dotyczące miejsca docelowego, ale także jego rodziców.
źródło
Miałem do czynienia z tym problemem. Ale nie podobał mi się pomysł zmiany grupy mojego katalogu domowego na www-data. Ten problem można po prostu rozwiązać, modyfikując plik konfiguracyjny dla virtualHost. Wystarczy skonfigurować tag Directory, aby je uwzględnić
To
Require all granted
chyba nowa funkcja; o wartości domyślnejdenied
.Zobacz tę stronę w celach informacyjnych: http://httpd.apache.org/docs/current/mod/core.html#directory
źródło