Der Versuch, mit symbolischer link für das Verzeichnis/var / www/html
dies ist, was ich versuche zu erreichen: erstellen von symbolischen link von var/www/html
zu einem Verzeichnis in der Heimat (~
) Ordner. das Verzeichnis ich versuche zu symlink im home (~
) ist ein git-repository, falls das einen Unterschied macht. Ich habe eine index.html Datei in diesem Verzeichnis.
Habe ich einen symbolischen link auf/var /www/html auf einer Amazon EC2-instance mit diesem Befehl: ln -s ~/dirIWant/html
jedoch daraus ergeben sich die folgenden Fehler, wenn ich versuche, auf meiner Webseite: 403 Forbidden "You don't have permission to access /on this server."
ich bin mit apache.
Hat jemand anderes versucht, etwas ähnliches zu tun und bekommen es zu arbeiten?
Derzeit, wenn ich gehen Sie zu meiner website www.blah.com es zeigt diesen Fehler 403. Ich habe versucht, ändern Sie die Berechtigungen mit sudo chown -h apache:apache
aber es scheint nicht zu helfen. Haben Sie andere Ideen?
- Die
apache
Benutzer (oder gleichwertig) nicht gelesen haben, Dauerwellen, um Ihr home-Verzeichnis. Chmod/chown die target-dir zum erteilen von Berechtigungen für den entsprechenden Benutzer. BTW vielleicht finden Sie etwas mehr zu erzählen Botschaft in/var/log/httpd/error_log
oder wo auch immer Sie Ihre httpd-logs seine Fehler. - wenn ich versuchen, wechseln Sie zu apache-Benutzer mit sudo su apache, bekomme ich diese Meldung: Dieses Konto ist derzeit nicht verfügbar. Haben Sie erlebt?
- Ja. Sie können standardmäßig nicht su apache als apache-Benutzer in der Regel über die shell eingestellt
nologin
. Sie können ändern die shell des Benutzers in sh in/etc/passwd
aber das ist wohl generell eine Schlechte Idee. In der Regel, su-ing auf den apache-Server nicht notwendig sein sollte, vor allem, wenn Sie nur wollen, zu chown.sudo chown apache:apache ~/dirIWant/
genügt in deinem Fall, obwohl es wäre klüger, verschieben Sie das Verzeichnis aus Ihrem home-Verzeichnis. - Ich veränderte Ihre Befehl sudo chown -h apache:apache ~mydir und es funktioniert. Allerdings, wenn ich gehen Sie zu meiner website, es zeigt immer noch den Fehler 403. Haben Sie eine Idee, warum das so ist?? Nochmals vielen Dank!
- Wie ich schon sagte Dreen unten, das Verzeichnis, ich bin versucht, symlink im home (~) ist ein git-repository, falls dass einen Unterschied macht in Ihrer Antwort auf diese Frage...
- Sie müssen möglicherweise mit chown die Dateien im Verzeichnis, wie z.B.
sudo chown -R apache:apache ~mydir
. Wieder Schwanz Ihres apacheerror_log
für weitere Details. - hat nicht funktioniert entweder. Wie erhalte ich Zugriff auf die apache-error-log? es sieht nicht aus, als ob Sie in /var/log/httpd/_error_log...sorry für meine noobness hier.
- Ihre httpd.conf sollte Ihnen sagen, wo Ihre error_log ist
- Im Amazon Linux AMI, Apache-logs werden standardmäßig in
/etc/httpd/logs/
. Es kann mehr als ein Fehler-log-Datei.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist denn der apache läuft als apache Benutzer und die
/var/www/html
ist im Besitz von root im Amazon Linux AMI. Sie können ändern, ownership/permissions-so der Vorschlag von Frank, oder verwenden Sie userdirs.Scheint es mir, dass Sie möchten, dass der webserver-Ordner, um bequem von Ihrem home-Verzeichnis (
~
). Ich wollte so etwas auf meiner EC2-und entschied sich für die Verwendung Pro-Benutzer web-Verzeichnisse (mod_userdir).Dieser Funktion können Sie die Teile des HTTP-server, den Speicherplatz in einem Verzeichnis gehört einem Benutzer. Jeder Benutzer bekommt sein eigenes Verzeichnis, das sich standardmäßig in
/home/username/public_html
. Die Seiten, Skripten und anderen Dateien in diesem Verzeichnis sind für das internet zugänglich durch Anhängen/~username
zu Ihrer domain. Darüber hinaus können Sie ändern Sie den Namen des Ordners in httpd.conf auspublic_html
um etwas anderes, wiegitRepo
. In diesem Fall, wenn Sie haben eineindex.html
Datei in/home/ec2-user/gitRepo/index.html
ist, wird es zugänglich sein, um die öffentlichkeit überhttp://ec2-hostname.aws.amazon.com/~ec2-user/index.html
und der Besitz von "ec2-user", die bequem für die Bearbeitung von Dateien aus der Benutzer-Ebene.Setzen diese bis auf EC2 (vorausgesetzt, "gitRepo" für den Namen des Ordners, den Sie verwenden möchten), verwenden Sie
nano /etc/httpd/conf/httpd.conf
zu öffnen, die Apache-config-Datei und scrollen Sie nach unten, bis Sie sehen<IfModule mod_userdir.c>
. Dann ändern Sie diesen Abschnitt wie folgt Aussehen:Danach sollten Sie gut zu gehen, sondern sicherzustellen, dass die Berechtigungen korrekt festgelegt werden:
Und schließlich reload der web-server wie diesem:
sudo chown -R ec2-user /var/www/html
, aber aus deinen Beiträgen ist es nicht wirklich klar, was du versuchst zu erreichen, also ich bin nicht sicher, es wird genau das tun, was Sie wollenpublic_html
etwas anderes, also wenn Ihr git-repo ist in~/gitRepo/
können SieUserDir gitRepo
in der Konfiguration.index.html
oderindex.html.var
wenn Sie in dem Verzeichnis vorhanden. Sie können Dinge wieindex.php
wenn Sie möchten, dass diese standardmäßig geladen zu.