Cambia la cartella principale del documento Apache sul disco rigido secondario


28

Ho installato Ubuntu 12.04 Server Edition per il mio PC server. avevo installato il server lampada. ho bisogno di cambiare la posizione var / www nella mia posizione del disco rigido secondario. sono stato configurato così tante volte su gedit / etc / apache2 / sites-available / default qui è il mio codice

<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>

e anche usato

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

e

chmod -R 755 /media/myserver/

ancora non sono riuscito a connettere il mio / media / myserver e il mio browser mostra il seguente messaggio

Forbidden

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

Per favore, dì a chiunque come montare myserver sul mio var / www, grazie in anticipo


la seconda unità è stata formattata e montata nella directory / media / myserver? hai aggiunto una voce fstab per quell'unità?
Damien,

Hai verificato se la barra finale del documento è il problema, nota dove non c'è uno commentato, ma sulla tua modifica c'è.
Chris,

Hai provato a cambiare il file apache2.conf?
Golden_flash,

Risposte:


40

Dovrai modificare apache2.confe 000-default.confcambiare la radice del documento di Apache.

Il server Apache è installato su var/www/html. Questa è la directory root predefinita di apache.

Modificare la directory principale di Apache o spostare il progetto in /var/www/html.

  1. Per modificare la directory principale di Apache, eseguire:

    cd /etc/apache2/sites-available
    
  2. Quindi aprire il 000-default.conffile utilizzando il comando:

    nano 000-default.conf
    
  3. Modifica l' DocumentRootopzione:

    DocumentRoot /path/to/my/project
    
  4. Quindi riavviare il server apache:

    sudo service apache2 restart
    

Se si ottiene Forbidden You don't have permission to access / on this serverdopo aver modificato la radice di Apache, attenersi alla seguente procedura

  1. Trova il apache2.conflocalizzato /etc/apache2e aprilo usando:

    nano apache2.conf
    
  2. Usa Ctrl+ We cerca Directory (dovrebbe essere nella riga 153)

  3. Dovrebbe sembrare come questo

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Modificalo in

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

    sudo service apache2 restart
    

Ho creato uno script che modifica la radice di apache in un singolo comando. Lo puoi trovare sul mio github .


È una specie di lavoro per me, ma devo aggiungere <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. Nella /etc/apache2/apahce2.confprima di riavviare il servizio di apache2.
r0ng

19

Forse un po 'in ritardo. Ma comunque ..

È necessario modificare le autorizzazioni della directory in apache.conf in / etc / apache2

Cerca questo

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

e aggiungi questo codice sotto di esso, che dà il permesso di accedere alla tua directory

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

3

Basta cambiare la radice del documento nella configurazione attivata. /etc/apache2/sites-enabled/000-default e quindi assicurati di ricaricare l'apache.

Quindi prova con questo:

<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>

Quindi il permesso appropriato dovrebbe essere dato in questo modo:

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

si amico mio, l'ho già fatto. vedere il codice sopra sono stato commentare la radice del documento predefinito e inserito la nuova radice del documento. dopo apache2 fermati e inizia. non ha funzionato. è un errore 403 e ha mostrato l'accesso negato e il mio browser
Kevin - Dhinesh babu,

Hai visto la mia ultima edizione?
Achu,

si l'ho visto. continua a mostrare che non hai il permesso di accedere / su questo server
Kevin - Dhinesh babu,

2

Come soluzione rapida (sicura e rapida) è possibile impostare il punto di montaggio del disco rigido esterno sulla directory principale predefinita (/ var / www per impostazione predefinita).

L'assegnazione del punto di montaggio a una directory esistente è sicura ma il vecchio contenuto non può essere raggiunto se non si è smontato il driver.

Per ulteriori informazioni su come creare un punto di montaggio, fare riferimento a questo .


Secondo quell'ideabindfs
monterei una

1

sudo gedit etc/apache2/apache2.conf aggiungi questa opzione Indici FollowSymLinks MultiViews AllowOverride Nessuno Ordina ordine, nega consenti da tutti

in configurazione virtuale:/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

Per coloro che utilizzano le aggiunte guest VirtualBox e ottengono you don't have permission to access /on this servernonostante tutto quanto sopra menzionato:

Se si sta tentando di impostare la cartella principale del documento Apache su una cartella condivisa VirtualBox e si è provato tutto quanto sopra e ciò non è stato d'aiuto, è necessario un altro passaggio.

In breve, la soluzione è aggiungere l'utente "www-data" al gruppo "vboxsf":

sudo usermod -a -G vboxsf www-data

Non è possibile modificare il proprietario e / o il gruppo della cartella condivisa VirtualBox, ma la soluzione sopra ha funzionato bene per me.


1

Ho riscontrato lo stesso problema e ho potuto risolverlo!

Quello che devi fare è

  1. si modifica apache2.conf. Scambia /var/www/sul tuo percorso: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Modifica 000-default.conf:

    DocumentRoot /your/path/

  3. modificare la proprietà delle directory su file manager o terminale (ad es. sudo chown pi: percorso) Senza questo si otterrà il "Non si dispone dell'autorizzazione per accedere / su questo server". messaggio di errore.

È tutto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.