it-swarm.com.de

Problem beim Ändern des Dokumentenstamms in Ubuntu 16.04

Ich bin kürzlich von Windows auf Ubuntu 16.04 umgestiegen und versuche, eine Web-Entwicklungsumgebung einzurichten. Ich habe Apache, MySQL und PHP erfolgreich installiert und sowohl HTML als auch PHP (erstellt ein Testskript über Sudo Nano) werden perfekt von /var/www gerendert.

Dann habe ich versucht, eine neue Datei durch erhabenen Text im Verzeichnis /var/www zu erstellen, nur um zu erkennen, dass das Speichern der Datei einen Fehler verursachte, der den Zugriff verweigerte. Dies führte mich zu einem neuen Artikel über Berechtigungen usw. und mir wurde klar, dass es wahrscheinlich keine gute Idee ist, die Berechtigungen für dieses Verzeichnis zu ändern.

Ich habe Artikel darüber nachgeschlagen, wie man Apache Document Root an einen anderen Ort verschiebt. Dann habe ich unter /home/user ein neues Projekt-/Webverzeichnis erstellt und den DocumentRoot in /etc/Apache2/sites-available/000-default.conf geändert (ich verwende Apache 2.4.18). Ich habe die relevanten Änderungen im /etc/Apache2/Apache2.conf vorgenommen, um auch den <Directory> -Pfad zu ändern. Neustart von Apache und DocuemntRoot wurde geändert, aber es wird kein PHP gerendert. Sogar phpmyadmin, das früher mit url http: // localhost/phpmyadmin gearbeitet hat, funktioniert nicht mehr.

  • geändert in /etc/Apache2/sites-available/000-default.conf:
    DocumentRoot /var/www/html
    zu
    DocumentRoot /home/{user}/projects/web

  • Geändert in /etc/Apache2/Apache2.conf:
    <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
    zu
    <Directory /home/{user}/projects/web/> Options Indexes FollowSymLinks AllowOverride None Require all granted</Directory>

Kann mir jemand helfen, wie ich DocumentRoot ändern kann und immer noch PHP und Phpmyadmin arbeiten?

1
A. Munir

Repariere zuerst die kaputten Apaches2

Du hast anscheinend Apache2 kaputt gemacht. Sie sollten die Standard-Hosteinstellungen verwenden und einen virtuellen Host für das gewünschte benutzerdefinierte Stammverzeichnis erstellen. Entfernen Sie die von Ihnen bearbeiteten Konfigurationsdateien oder benennen Sie sie um und stellen Sie die ursprünglichen Dateien wieder her.

Verwenden Sie die Standarddatei 000-default.conf als Vorlage. Kopieren Sie es in einen Namen für Ihren virtuellen Host und nehmen Sie Änderungen an Ihrer benutzerdefinierten Datei vor.

Sie können die Dateien folgendermaßen umbenennen:

$ cd /etc/Apache2/sites-available
$ Sudo mv 000-default.conf mysite.conf
$ cd /etc/Apache2
$ Sudo mv Apache2.conf Apache2.conf.test

Stellen Sie jetzt die Standarddateien mit dieser Befehlszeile wieder her:

$ Sudo apt -o Dpkg::Options::="--force-confmiss" install --reinstall Apache2

Erstellen Sie jetzt Ihren virtuellen Host "mysite.com". Sie können den /home/web/mysite in ein beliebiges Verzeichnis ersetzen. In Ihrem Fall können Sie /home/{user}/projects/web verwenden.

$ cd /etc/Apache2/sites-available
$ Sudo cp 000-default.conf mysite.conf
$ Sudo mkdir -p /home/web/mysite/www
$ Sudo mkdir -p /home/web/mysite/log

Wenn der Host mysite.com nicht existiert, erstellen Sie ihn lokal mit:

$ gksudo gedit /etc/hosts

Fügen Sie es der hosts -Datei hinzu:

127.0.0.1  mysite.com

Bearbeiten Sie nun Ihre mysite.conf Datei, um auf Ihre Document Root Auswahl zu verweisen.

$ pksudo gedit /etc/Apache2/sites-available/mysite.conf

Nehmen Sie die folgenden Änderungen an dieser Datei vor. Dies ist der Unterschied zwischen der 000-default.conf -Datei und Ihrer neu erstellten mysite.conf -Datei. Der Unterschied wird durch fett hervorgehoben.

 & ltVirtualHost *: 80> 
 # Die Anweisung ServerName legt das Anforderungsschema, den Hostnamen und den Port fest, mit dem sich der Server 
 # identifiziert. Dies wird beim Erstellen von 
 # Umleitungs-URLs verwendet. Im Kontext von virtuellen Hosts gibt der Servername 
 # An, welcher Hostname im Host: -Header der Anforderung erscheinen muss, damit 
 # Mit diesem virtuellen Host übereinstimmt. Für den virtuellen Standardhost (diese Datei) ist dieser Wert 
 # Nicht entscheidend, da er unabhängig von 
 # Als Last-Resort-Host verwendet wird. Sie müssen ihn jedoch explizit für jeden weiteren virtuellen Host festlegen. 
 Servername mysite.com 
 
 ServerAdmin webmaster @ localhost 
 DocumentRoot/home/web/mysite/www& ltDirectory />
 Options + FollowSymLinks + ExecCGI + Includes 
 Erfordert alle gewährten 
 </ Directory>
 
 
 # Verfügbare Versionen: trace8, ..., trace1, debug, info, notice, warn, 
 # Error, crit, alert, emerg. 
 # Es ist auch möglich, den loglevel für bestimmte 
 # Module zu konfigurieren, zB 
 #LogLevel info ssl: warn 
 
 ErrorLog /home/web/mysite/log/error.logCustomLog /home/web/mysite//access.log kombiniert
 
 # Für die meisten Konfigurationsdateien von conf-available /, die auf globaler Ebene 
 # Aktiviert oder deaktiviert sind, kann 
 # Eine Zeile eingefügt werden für nur einen bestimmten virtuellen Host. Beispielsweise aktiviert die folgende Zeile 
 # Die CGI-Konfiguration für diesen Host nur 
 # Nachdem sie mit "a2disconf" global deaktiviert wurde. 
 #Include conf-available/serve-cgi -bin.conf 
 </ VirtualHost> 
 
 # vim: syntax = Apache ts = 4 sw = 4 sts = 4 sr noet 

Aktivieren Sie nun die neue Site mit:

$ Sudo a2ensite mysite.conf

Wenn Sie eine Änderung an den Apache Konfigurationsdateien vornehmen, starten Sie den Dienst neu mit:

$ Sudo systemctl restart Apache2

Schreibrechte für das Verzeichnis und die Dateien des VirtualHost:

Mit den Befehlen chown und chgrp können Sie den Eigentümer der Dateien und Ordner von /home/web/mysite/www ändern. Wenn sie Ihrer Benutzer-ID gehören, haben Sie Lese- und Schreibzugriff auf die Dateien und Ordner.

Sie können auch eine bestimmte Gruppe erstellen und Benutzer zu dieser bestimmten Gruppe hinzufügen, sodass Benutzer dieser Gruppe Lese-/Schreibzugriff auf die Dateien und Ordner haben.

Die Verwendung der letzteren Überlegung kann eine bessere Sicherheitsalternative sein, als anderen Benutzergruppen Zugriff auf Dateien und Ordner in Ihrem /home -Platz zu gewähren.

1
L. D. James