Zmień folder główny dokumentu Apache na dodatkowy dysk twardy


28

Zainstalowałem edycję serwera Ubuntu 12.04 dla mojego serwera PC. zainstalowałem serwer lamp. muszę zmienić lokalizację var / www na lokalizację drugiego dysku twardego. Byłem skonfigurowany tak wiele razy na gedit / etc / apache2 / sites-available / default tutaj jest mój kod

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

i również używane

sudo chown -R var/www /media/myserver/

i

chmod -R 755 /media/myserver/

wciąż nie mogłem połączyć mojego / media / myserver i moja przeglądarka wyświetla następujący komunikat

Forbidden

You don't have permission to access / on this server.

Proszę powiedzieć każdemu, jak zamontować mój serwer na moim var / www, z góry dzięki


czy drugi dysk został sformatowany i zamontowany w katalogu / media / myserver? dodałeś wpis fstab dla tego napędu?
damien

Czy sprawdziłeś, czy problem stanowi ukośnik końcowy w katalogu głównym dokumentu, zauważ, że nie ma go w komentarzu, ale w twojej edycji jest.
Chris

Czy próbowałeś zmienić plik apache2.conf?
Golden_flash

Odpowiedzi:


40

Będziesz musiał edytować apache2.confi 000-default.confzmienić katalog główny apache.

Serwer Apache jest zainstalowany na var/www/html. Jest to domyślny katalog główny Apache.

Zmień katalog główny Apache lub przenieś projekt do /var/www/html.

  1. Aby zmienić katalog główny Apache, uruchom:

    cd /etc/apache2/sites-available
    
  2. Następnie otwórz 000-default.confplik za pomocą polecenia:

    nano 000-default.conf
    
  3. Edytuj DocumentRootopcję:

    DocumentRoot /path/to/my/project
    
  4. Następnie zrestartuj serwer Apache:

    sudo service apache2 restart
    

Jeśli pojawi się Forbidden You don't have permission to access / on this serverpo zmianie katalogu głównego Apache, wykonaj następujące kroki

  1. Odnaleźć apache2.confsię w /etc/apache2i otwórz go za pomocą:

    nano apache2.conf
    
  2. Użyj Ctrl+ Wi wyszukaj katalog (powinien być w linii 153)

  3. To powinno wyglądać tak

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Zmień to na

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Uruchom ponownie apache

    sudo service apache2 restart
    

Zrobiłem skrypt, który zmienia root apache w jednym poleceniu. Możesz go znaleźć na moim githubie .


To dla mnie trochę pracy, ale muszę dodać <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. W /etc/apache2/apahce2.confprzed ponownym uruchomieniem usługi apache2.
r0ng

19

Może trochę za późno. Ale nadal…

Powinieneś edytować uprawnienia do katalogu w apache.conf w / etc / apache2

Wyszukaj to

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

i dodaj poniższy kod, który daje uprawnienia dostępu do twojego katalogu

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>

3

Po prostu zmień katalog główny dokumentu w aktywowanej konfiguracji. /etc/apache2/sites-enabled/000-default a następnie Upewnij się, że ponownie ładujesz swój apache.

Spróbuj tego:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Następnie należy udzielić odpowiedniego pozwolenia w następujący sposób:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/

tak przyjacielu już to zrobiłem. zobacz powyższy kod skomentowałem domyślny katalog główny dokumentu i wstawiłem nowy katalog główny. po apache2 zatrzymaj się i uruchom. to nie zadziałało. to błąd 403, i pokazał odmowę dostępu, a moja przeglądarka
Kevin - Dhinesh babu

Czy widziałeś moją ostatnią edycję?
Achu

tak, widziałem to. wciąż pokazuje, że nie masz uprawnień dostępu / na tym serwerze
Kevin - Dhinesh babu

2

Jako szybkie obejście (bezpieczne i szybkie) możesz ustawić punkt montowania zewnętrznego dysku twardego w domyślnym katalogu głównym (domyślnie / var / www).

Przypisanie punktu podłączenia do istniejącego katalogu jest bezpieczne, ale nie można uzyskać dostępu do starej zawartości, chyba że odmontowano sterownik.

Aby dowiedzieć się więcej, jak utworzyć punkt montażowy, zapoznaj się z tym .


Zgodnie z tym pomysłem zamontowałbym określony folder, używając bindfs, jak opisano tutaj: askubuntu.com/a/1024308/566421
pa4080

1

sudo gedit etc/apache2/apache2.conf dodaj to Opcje Indeksy FollowSymLinks MultiViews AllowOverride Brak Zamów zezwolenie, odmowa zezwolenia od wszystkich

w konfiguracji wirtualnej:/etc/apache2/sites-available/site.conf

ServerAdmin anilrmg@localhost.com
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf


1

Dla tych, którzy korzystają z dodatków gości VirtualBox i otrzymują you don't have permission to access /on this serverpomimo wszystkiego, co wspomniano powyżej:

Jeśli próbujesz ustawić folder główny dokumentu Apache na folder współdzielony VirtualBox, a wypróbowałeś wszystko powyżej i to nie pomogło, jest jeszcze jeden krok.

Krótko mówiąc, rozwiązaniem jest dodanie użytkownika „www-data” do grupy „vboxsf”:

sudo usermod -a -G vboxsf www-data

Nie możesz zmienić właściciela i / lub grupy folderu współdzielonego VirtualBox, ale powyższe rozwiązanie działało dobrze dla mnie.


1

Mam również ten sam problem i mogę go rozwiązać!

Musisz tylko to zrobić

  1. modyfikujesz apache2.conf. Wymień /var/www/na swoją ścieżkę: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Zmodyfikuj 000-default.conf:

    DocumentRoot /your/path/

  3. zmień własność katalogów na siebie z menedżera plików lub terminala (np. sudo chown pi: path) Bez tego otrzymasz „Nie masz uprawnień dostępu / na tym serwerze”. Komunikat o błędzie.

To wszystko.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.