Ich habe ein paar Probleme beim Verknüpfen meines /var/www/
mit einem neuen Webroot
Verzeichnis in meinem Home-Ordner. Ich denke, diese resultieren aus meinem Unverständnis der Linux-Berechtigungen.
Soweit mir bekannt ist, sollten Symlinks die Form des zu verlinkenden Verzeichnisses und des zu verlinkenden Verzeichnisses haben. In meinem Fall habe ich Folgendes ausgeführt:
sudo ln -s ~/Webroot/* /var/www/
dies hat irgendwie funktioniert, wenn ich laufe ls
auf /var/www/
i alle Dateien in meinem sehen Webroot
Verzeichnis.
Wann immer ich versuche, eine Datei auszuführen, die sich in meinem Webroot
Ordner befindet, erhalte ich eine Fehlermeldung mit der Berechtigung 403, weil die Dateien in meinem Webroot-Verzeichnis von mir erstellt wurden und die Apache-Instanz als WWW-Daten ausgeführt wird.
Wenn dies der Fall ist, würde dies bedeuten, dass ich die Berechtigungen für jede von mir erstellte Datei ändern muss, um sie auszuführen?
Ich habe zuvor eine lokale Apache-Instanz ausgeführt, indem ich das Stammverzeichnis meines vhost-Standards auf den Webroot
Ordner zeigte. In diesem Fall musste ich keine Berechtigungen ändern. Jede Hilfe wäre dankbar.
quelle
Antworten:
Dies ist keine gute Vorgehensweise, da ich mit Weboide einverstanden bin. Es gibt jedoch einen einfachen Weg, um dieses Ziel zu erreichen.
1). aktiviere das apache userdir modul.
Dadurch wird das Apache-Userdir-Modul aktiviert. Jetzt können Sie den Inhalt der Website in
~/Webroot/
oder in irgendetwas in Ihrem Home-Verzeichnis ablegen.Hinweis: Der Standardordner ist
~/public_html
2). Nehmen Sie die erforderlichen Änderungen an vor
/etc/apache2/mods-enabled/userdir.conf
.3). Starten Sie den Apache neu
Jetzt können Sie auf die Site zugreifen, indem Sie mit Ihrem Browser zu http: // ip-address / ~ username navigieren . Sie können für diese Site auch einen virtuellen Host festlegen.
Wenn Sie PHP-Dateien ausführen möchten, müssen Sie einen weiteren Schritt ausführen
Bearbeiten Sie die
/etc/apache2/mods-enabled/php5.conf
und kommentieren Sie die folgenden Zeilen:Starten Sie dann den Apache neu.
Das ist es. Du bist fertig.
Ref: https://wiki.ubuntu.com/UserDirectoryPHP
Hoffe das hilft. Wenn Sie auf Schwierigkeiten stoßen, können Sie diese hier posten.
quelle
Dies ist keine gute Praxis, um das zu erreichen, was Sie wollen.
Wenn Sie PHP verwenden, möchten Sie vielleicht einen Blick auf suexec , suphp oder php-fpm und fastcgi werfen .
Sie haben Recht mit Ihrem Problem. Dies ist ein Berechtigungsproblem, da Ihre
Webroot
Dateien einem anderen Benutzer gehören alswww-data
.Hier ist eine gar nicht so schlechte Lösung, um Ihr Problem zu umgehen. Beachten Sie, dass Sie wahrscheinlich sudo verwenden oder sich als root anmelden müssen. Vergewissern Sie sich, dass Sie alle auszuführenden Befehle vollständig verstanden haben !!
Ändern Sie Ihren
Webroot
Ordner sowie die Unterordner und Dateien, um die Gruppeneigentümerschaft festzulegenwww-data
und die richtigen Berechtigungen festzulegen:Bearbeiten: Beachten Sie, dass Sie diese Befehle auf jeden Fall erneut ausführen müssen, wenn Sie Dateien / Ordner mit Ihrem regulären Benutzerkonto hinzufügen.
quelle
Ich habe fast dasselbe mit Debian Lenny gemacht, aber ich habe in den Nicht-Hax-Modus gewechselt. Ich habe Apache korrekt konfiguriert. Aber mit symlink:
Ich denke, Sie sollten die Berechtigung von ~ und ~ / Webroot überprüfen . Ich denke, Ihr Verzeichnis (~) ist lesegeschützt. Ich meine, Sie müssen Folgendes ausführen:
Um die richtigen Berechtigungen festzulegen, verwenden Sie:
Ich denke, es sollte helfen, aber gib mir mehr Infos dazu. Ich schlage Ihnen vor, die Webroot aus Ihrem Verzeichnis zu entfernen, z. zu / nach Hause wie ich , weil es Sicherheitsproblem sein kann.
"#" bedeutet root-Berechtigung , z. schreibe sudo vor die Befehle; "$" bedeutet Einzelbenutzerberechtigung
quelle
Sie müssen die Berechtigungen nicht nur für Ihr Ziel überprüfen, sondern auch für die übergeordneten Ziele.
quelle
Ich war mit diesem Problem konfrontiert. Die Idee, die Gruppe meines Home-Verzeichnisses in www-data zu ändern, gefiel mir jedoch nicht. Dieses Problem kann einfach gelöst werden, indem die Konfigurationsdatei für den virtualHost geändert wird. Konfigurieren Sie einfach das Directory-Tag, um diese einzuschließen
Das
Require all granted
ist eine neue Funktion, denke ich; mit einem Standardwert vondenied
.Siehe diese Seite als Referenz: http://httpd.apache.org/docs/current/mod/core.html#directory
quelle