web-dev-qa-db-de.com

Wie ändere ich das Stammverzeichnis eines Apache-Servers?

Weiß jemand, wie man den Dokumentenstamm des Apache-Servers ändert? Grundsätzlich möchte ich, dass localhost aus /users/spencer/projects-Verzeichnis statt /var/www kommt.

Bearbeiten

Ich habe es herausgefunden. Einige schlugen vor, dass ich die httpd.conf-Datei ändere, aber ich fand schließlich eine Datei in /etc/Apache2/sites-available/default und änderte das Stammverzeichnis von /var/www in /home/myusername/projects_folder und das funktionierte. 

222
Spencer Cooley

Sie müssen die Einstellung DocumentRoot in Ihrer httpd.conf-Datei ändern. Die Chancen stehen dabei unter /etc/Apache2/conf/httpd.conf

Verwenden Sie Ihren bevorzugten Editor (ich empfehle Vim ) und suchen Sie nach der DocumentRoot und ändern Sie sie in /users/spencer/projects. Suchen Sie auch etwas weiter nach einer Einstellung, die wie folgt aussieht:

<Directory "/var/www">

Sie möchten auch, was in den Anführungszeichen steht, in Ihr neues Verzeichnis ändern. Auf diese Weise kann Apache aus diesem Verzeichnis lesen, wenn ein Benutzer eine Anforderung abruft.

Starten Sie nun Ihren Apache-Dienst (httpd -k restart) neu und Sie sollten sich auf den Weg machen.

Edit: Apache2-Site-Konfigurationsdateien werden jetzt normalerweise in /etc/Apache2/sites-available/ (Debian, Ubuntu usw.) gespeichert.

188
RDL

Bitte beachten Sie, dass dies nur für Ubuntu 14.04 LTS und neuere Versionen gilt.

In meinem Ubuntu 14.04 LTS wurde der Dokumentenstamm auf /var/www/html gesetzt. Es wurde in der folgenden Datei konfiguriert: 

/etc/Apache2/sites-available/000-default.conf

Also mach einfach ein

Sudo nano /etc/Apache2/sites-available/000-default.conf

und ändern Sie die folgende Zeile in das, was Sie möchten:

DocumentRoot /var/www/html

Mach auch ein 

Sudo nano /etc/Apache2/Apache2.conf

und finde das 

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

und ändern Sie /var/www/html in Ihr bevorzugtes Verzeichnis

und speichern Sie es.

Nachdem Sie Ihre Änderungen gespeichert haben, starten Sie einfach den Apache2-Webserver neu und Sie sind fertig :)

Sudo service Apache2 restart


Wenn Sie einen grafischen Texteditor bevorzugen, können Sie den Sudo nano durch einen gksu gedit ersetzen.

245
mozzbozz

Ich musste /etc/Apache2/sites-available/default bearbeiten. Die Zeilen sind die gleichen wie bei RDL.

42
Nick

Dies ist für Ubunutu 14.04:

In der Datei /etc/Apache2/Apache2.conf sollte es wie folgt ohne den Verzeichnisnamen stehen:

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

und in der Datei /etc/Apache2/sites-available/000-default.conf sollten Sie den benutzerdefinierten Verzeichnisnamen angeben, d. h. www:

DocumentRoot /home/username/www

Wenn nicht wie oben beschrieben, erhalten Sie beim Laden des Servers eine Fehlermeldung: Forbidden You don't have permission to access / on this server

19
androsfat

Der richtige Weg, um ein Verzeichnis zu wechseln oder von mehreren Verzeichnissen unter verschiedenen Ports für Apache2 auszuführen, ist wie folgt:

Für Apache2 befinden sich die Konfigurationsdateien unter /etc/Apache2 und verwenden wie in älteren Versionen keine einzige Konfigurationsdatei, sondern sind in kleinere Konfigurationsdateien aufgeteilt, wobei /etc/Apache2/Apache2.conf die Hauptkonfigurationsdatei ist. Um Dateien aus einem anderen Verzeichnis zu liefern, benötigen wir eine neue virtualhost-conf-Datei. Die Virtualhost-Conf-Dateien befinden sich in /etc/Apache2/sites-available (bearbeiten Sie keine Dateien innerhalb von Sites, die aktiviert sind). Die standardmäßige Apache-Installation verwendet die virtuelle Host-Konf-Datei 000-default.conf.

Erstellen Sie zunächst eine neue Virtualhost-Datei, indem Sie die Standard-Virtualhost-Datei kopieren, die von der Standardinstallation von Apache verwendet wird (diejenige, die auf Port 80 bei localhost ausgeführt wird). Wechseln Sie in das Verzeichnis /etc/Apache2/sites-available und erstellen Sie dann eine Kopie mit Sudo cp 000-default.conf example.com.conf. Bearbeiten Sie nun die Datei mit Sudo gedit example.com.conf in:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /home/ubuntu/example.com    
</VirtualHost>

Ich habe die nicht wichtigen Zeilen aus Gründen der Kürze aus der obigen Datei gelöscht. Hier ist DocumentRoot der Pfad zu dem Verzeichnis, von dem aus die Websitedateien bereitgestellt werden sollen, z. B. index.html.

Erstellen Sie das Verzeichnis, von dem aus Sie die Dateien bereitstellen möchten, z. mkdir example.com und Besitzer und Standardgruppe des Verzeichnisses ändern, z. B. wenn Ihr angemeldeter Benutzername ubuntu ist, ändern Sie die Berechtigungen in Sudo chown ubuntu:www-data example.com. Dies gewährt uneingeschränkten Zugriff auf den Benutzer ubuntu und ermöglicht den Lese- und Ausführungszugriff auf die Gruppe www-data.

Bearbeiten Sie nun die Apache-Conf-Datei /etc/Apache2/Apache2.conf, indem Sie den Befehl Sudo gedit Apache2.conf ausgeben. Suchen Sie die Zeile <Directory /var/www/>. Unter dem schließenden Tag </Directory> fügen Sie Folgendes hinzu:

<Directory /home/ubuntu/example.com>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

Nun gibt es zwei Befehle zum Aktivieren oder Deaktivieren der Virtualhost-Konfigurationsdateien, nämlich a2ensite und a2dissite. Da unsere example.com.conf-Datei denselben Port (80) verwendet, der von der Standardkonfigurationsdatei (000-default.conf) verwendet wird, müssen Sie die Standardkonfigurationsdatei deaktivieren, indem Sie den Befehl Sudo a2dissite 000-default.conf ausgeben, und die virtuelle Host-Konfigurationsdatei durch Sudo a2ensite example.com.conf aktivieren

Starten Sie den Server jetzt neu oder laden Sie ihn erneut mit dem Befehl Sudo service Apache2 restart. Jetzt stellt Apache Dateien aus dem Verzeichnis example.com unter localhost auf dem Standardport von 80 bereit.

Der Befehl a2ensite erstellt im Wesentlichen einen symbolischen Link zur conf-Datei im Site-fähigen Verzeichnis

Bearbeiten Sie keine Dateien in Sites, die mit einer Site (oder * -aktiviert) verbunden sind, wie in dieser Antwort angegeben. https://stackoverflow.com/a/41568701/2532763

So ändern Sie den Port und führen ihn aus mehreren Verzeichnissen an verschiedenen Ports aus:

Wenn Sie das Verzeichnis an einem anderen Port ausführen müssen, ändern Sie die Portnummer von 80 in 8080, indem Sie die virtuelle Hostdatei wie folgt bearbeiten:

<VirtualHost *:8080>
    ServerAdmin [email protected]
    DocumentRoot /home/ubuntu/work
</VirtualHost>

/etc/Apache2/ports.conf bearbeiten und bearbeiten Listen 8080 direkt unter der Zeile Listen 80

Jetzt können wir die Standard-Virtualhost-Conf-Datei aktivieren, die auf Port 80 ausgeführt wird, da das Verzeichnis example.com Port 8080 als Sudo a2ensite 000-default.conf verwendet.

Starten Sie den Server jetzt neu oder laden Sie ihn erneut mit dem Befehl Sudo service Apache2 restart. Nun kann auf beide Verzeichnisse von localhost und localhost:8080 zugegriffen werden.

8
lordvcs

Für Apache2 on Linux Mint 17.3 Cinnamon 64-Bit funktioniert Folgendes:

  1. Öffnen Sie in /etc/Apache2/sites-available/ die 000-default.conf-Datei und ändern Sie den Document Root in den absoluten Pfad Ihres Verzeichnisses.

    Sudo vim /etc/Apache2/sites-available/000-default.conf

  2. Öffnen Sie in /etc/Apache2/httpd.conf und fügen Sie ein <Directory>-Tag hinzu, das auf Ihr Verzeichnis verweist und die exakt die gleichen Einstellungen wie das Tag für var/www enthält. 

    Sudo vim /etc/Apache2/Apache2.conf

    Auf meinem Rechner sah es so aus:


<Directory /home/my_user_name/php/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Hinweis: Im ersten Schritt möchten Sie wahrscheinlich Document Root in der default-ssl.conf-Datei auch für SSL-Zwecke ändern. Soweit ich das beurteilen kann, ist dies jedoch nicht erforderlich, um eine allgemeine Entwicklungsumgebung zum Laufen zu bringen.

4
stackato

Ich habe mit LAMP gearbeitet und Um den Dokumentenstammordner zu ändern Ich habe Standard die Datei bearbeitet befindet sich im Ordner / etc/Apache2/sites-available. Wenn Sie dasselbe tun möchten, bearbeiten Sie es wie folgt

DocumentRoot /home/username/new_root_folder
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/username/new_root_folder>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

Wenn Sie danach localhost in den Browser eingeben, wird */home/username/new_root_folder * content geladen.

4
Shashidhara

Wenn Sie http.conf nicht finden konnten und Nicks Weg folgten. 

Apache neu starten mit Sudo service Apache2 restart

3
Nitin

In diesem Fall verwenden Sie Ubuntu 16.04 . Aktualisieren Sie bitte die Datei 000-default.conf im Verzeichnis/etc/Apache2/sites-available.

hier -> ServerAdmin webmaster @ localhost DocumentRoot/var/www/html/YourFolder

2
Shashank Saxena

Ich hatte /var/www als Softlink zum erforderlichen Verzeichnis (z. B. /users/username/projects) erstellt und danach waren die Dinge in Ordnung.

Natürlich muss das Original /var/www gelöscht oder umbenannt werden.

1
maan81

In Apache Version 2.4.18 (Ubuntu).

1. Gehen Sie zu dieser Datei /etc/Apache2/Apache2.conf Suchen Sie nach <Directory /var/www/> und ersetzen Sie sie in Ihrem Verzeichnis ......

2. Gehen Sie zu /etc/Apache2/sites-available/000-default.confsuche nach DocumentRoot /var/www/html und ersetzen Sie es in Ihrem DocumentRoot ....

1
habibun

Wenn jemand LAMP im /opt-Ordner installiert hat, ist /etc/Apache2 nicht das, wonach Sie suchen.

Suchen Sie nach httpd.conf-Datei in /opt/lampp/etc/httpd.conf.

Ändern Sie die Zeile in diesem Ordner und speichern Sie sie vom Terminal aus.

1
nextgtech

Gilt für Ubuntu 14.04 und spätere Versionen. Stellen Sie sicher, dass Sie die folgenden Dateien sichern, bevor Sie Änderungen vornehmen.

1. Öffnen Sie /etc/Apache2/Apache2.conf und suchen Sie nach <Directory /var/www/>-Direktive und ersetzen Sie den Pfad durch /home/<USERNAME>/public_html. Sie können * anstelle von verwenden.

2. Öffnen Sie /etc/Apache2/sites-available/000-default.conf und ersetzen Sie die DocumentRoot-Werteigenschaft von /var/www/html bis /home/<USERNAME>/public_html..__ sowie <Directory /var/www/html> bis <Directory /home/<USERNAME>/public_html.

3. Öffnen Sie /etc/mods-available/php7.1.conf. Suchen und kommentieren Sie folgenden Code

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

php_admin_flag engine OFF-Flag nicht einschalten, da im Kommentar über dem Richtliniencode der Grund angegeben ist. Auch die PHP-Version kann 5.0, 7.0 oder alles sein, was Sie installiert haben.

Erstellen Sie das public_html-Verzeichnis in home/<USERNAME>.

Starten Sie den Apache-Dienst neu, indem Sie den Befehl Sudo service Apache2 restart ausführen.

Testen Sie, indem Sie ein Beispielskript auf dem Server ausführen.

0
user1184294

In RedHat 7.0: /etc/httpd/conf/httpd.conf

0
ehacinom

Wenn Sie Linux Mint verwenden (persönliche Meinung, aus allen Bezirken macht mich das glücklich), folgen Sie diesen Anweisungen:

1- Gehen Sie zu/etc/Apache2/sites-available und bearbeiten Sie 000-default.conf 2- Suchen Sie nach DocumentRoot. Beispiel: DocumentRoot/var/www/html, das Sie in Ihr entsprechendes Verzeichnis ändern und geben Sie Folgendes ein: Sudo-Dienst Apache2-Neustart

EDITED ----- Ich erkenne, dass Sie in Mint /etc/Apache2/Apache.conf wählen,/var/www in den entsprechenden Pfad eintauschen und den Server neu starten (Schritt 3).

Das ist es.

0