Ändern Sie den Apache-Dokumentenstammordner in eine sekundäre Festplatte

28

Ich habe die Ubuntu 12.04 Server Edition für meinen Server-PC installiert. Ich hatte Lampenserver installiert. Ich muss den var / www-Speicherort auf meinen sekundären Festplattenspeicherort ändern. Ich war so oft auf gedit / etc / apache2 / sites-available / default konfiguriert, hier ist mein Code

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

und auch verwendet

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

und

chmod -R 755 /media/myserver/

Trotzdem konnte ich meinen / media / myserver nicht verbinden und mein Browser zeigt die folgende Meldung an

Forbidden

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

Bitte sagen Sie jedem, wie er meinen Server in meinem var / www einbinden soll, danke im Voraus

Kevin - Dhinesh Babu
quelle
Wurde das zweite Laufwerk formatiert und in das Verzeichnis / media / myserver eingebunden? Haben Sie einen fstab-Eintrag für dieses Laufwerk hinzugefügt?
Damien
Haben Sie überprüft, ob der abschließende Schrägstrich im Stammverzeichnis des Dokuments das Problem ist? Beachten Sie, dass dort, wo er auskommentiert ist, keiner vorhanden ist, bei Ihrer Bearbeitung jedoch.
Chris
Haben Sie versucht, die Datei apache2.conf zu ändern?
Golden_flash

Antworten:

40

Sie müssen das Dokumentenstammverzeichnis von Apache bearbeiten apache2.confund 000-default.confändern.

Der Apache-Server ist auf installiert. var/www/htmlDies ist das Standard-Stammverzeichnis von Apache.

Ändern Sie entweder das Stammverzeichnis von Apache oder verschieben Sie das Projekt in /var/www/html.

  1. Führen Sie Folgendes aus, um das Stammverzeichnis von Apache zu ändern:

    cd /etc/apache2/sites-available
    
  2. Dann öffnen Sie die 000-default.confDatei mit dem Befehl:

    nano 000-default.conf
    
  3. Bearbeiten Sie die DocumentRootOption:

    DocumentRoot /path/to/my/project
    
  4. Starten Sie dann den Apache-Server neu:

    sudo service apache2 restart
    

Wenn Sie Forbidden You don't have permission to access / on this servernach dem Ändern der Wurzel von Apache erhalten, gehen Sie folgendermaßen vor

  1. Finden Sie das gefundene apache2.confin /etc/apache2und öffnen Sie es mit:

    nano apache2.conf
    
  2. Benutze Ctrl+ Wund suche nach Directory (es sollte in Zeile 153 stehen)

  3. Es sollte so aussehen

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Ändern Sie es zu

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Starten Sie Apache neu

    sudo service apache2 restart
    

Ich habe ein Skript erstellt, das Apache Root in einem einzigen Befehl ändert. Du findest es auf meinem Github .

Harjot
quelle
Es ist eine Art Arbeit für mich, aber ich muss hinzufügen <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. In /etc/apache2/apahce2.confvor dem Neustart des Apache2-Dienstes.
15.
19

Vielleicht ein bisschen zu spät. Aber dennoch..

Sie sollten Ihre Verzeichnisberechtigungen in der apache.conf unter / etc / apache2 bearbeiten

Suche danach

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

und fügen Sie diesen Code darunter hinzu, der die Berechtigung zum Zugriff auf Ihr Verzeichnis gibt

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

Ändern Sie einfach den Dokumentenstamm in Ihrer aktivierten Konfiguration. /etc/apache2/sites-enabled/000-default und dann stellen Sie sicher, dass Sie Ihren Apache neu laden.

Also versuch es mal damit:

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

Dann sollte die entsprechende Erlaubnis wie folgt gegeben werden:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/
Achu
quelle
Ja, mein Freund, ich habe das schon getan. siehe den obigen Code Ich war Kommentar der Standard-Dokumentenstamm und fügte neue Dokumentenstamm. nach apache2 anhalten und starten. es hat nicht funktioniert. Es ist ein 403-Fehler und es wurde angezeigt, dass der Zugriff verweigert wurde und mein Browser
Kevin - Dhinesh babu
Hast du meine letzte Ausgabe gesehen?
Achu
Ja, ich habe das gesehen. nach wie vor ist es Ihnen zeigen Berechtigung zum Zugriff auf / auf diesem Server nicht haben
Kevin - Dhinesh Babu
2

Als schnelle Umgehung (sicher und schnell) können Sie den Einhängepunkt Ihres externen Festplattenlaufwerks auf das Standardstammverzeichnis (standardmäßig / var / www) setzen.

Das Zuweisen des Bereitstellungspunkts zu einem vorhandenen Verzeichnis ist sicher, aber der alte Inhalt kann nur erreicht werden, wenn Sie den Treiber abgemeldet haben.

Weitere Informationen zum Erstellen eines Montagepunkts finden Sie hier .

yahya tawil
quelle
Nach dieser Idee würde ich bestimmte Ordner einhängen, indem ich bindfswie hier beschrieben: askubuntu.com/a/1024308/566421
pa4080
1

sudo gedit etc/apache2/apache2.conf Diese Optionen hinzufügen Indizes FollowSymLinks MultiViews AllowOverride Keine Reihenfolge zulassen, Zulassen von allen verweigern

in der virtuellen Konfiguration:/etc/apache2/sites-available/site.conf

ServerAdmin [email protected]
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf

Anil Gupta
quelle
1

Für diejenigen, die VirtualBox-Gastzusätze nutzen und erhalten you don't have permission to access /on this server trotz allem oben Erwähnten bekommen:

Wenn Sie versuchen, den Apache-Dokumentenstammordner auf einen freigegebenen VirtualBox-Ordner festzulegen, und Sie haben alles oben ausprobiert, was nicht geholfen hat, gibt es einen weiteren Schritt.

Kurz gesagt, die Lösung besteht darin, der Gruppe 'vboxsf' den Benutzer 'www-data' hinzuzufügen:

sudo usermod -a -G vboxsf www-data

Sie können den Besitzer und / oder die Gruppe des freigegebenen VirtualBox-Ordners nicht ändern, aber die obige Lösung hat bei mir gut funktioniert.

Yuri Fedorov
quelle
1

Ich stoße auch auf das gleiche Problem und könnte es lösen!

Was Sie tun müssen, ist

  1. Sie ändern apache2.conf. Wechsle /var/www/zu deinem Weg: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Ändern Sie 000-default.conf:

    DocumentRoot /your/path/

  3. Ändern Sie den Besitz der Verzeichnisse in Ihrem Dateimanager oder Terminal (z. B. sudo chown pi: path). Andernfalls erhalten Sie die Meldung "Sie haben keine Berechtigung zum Zugriff auf / auf diesem Server". Fehlermeldung.

Das ist alles.

eatysweaty
quelle