Ich habe kürzlich versucht, einen Testserver mit Apache einzurichten. Die Site muss unter Domain ausgeführt werden www.mytest.com
. Ich bekomme immer einen 403 Forbidden
Fehler. Ich bin auf Ubuntu 10.10 Server Edition. Das Dokumentstammverzeichnis befindet sich unter dir /var/www
. Folgendes sind meine Einstellungen:
Inhalt von / var / www
ls -l /var/www/
total 12
drwxr-xr-x 2 root root 4096 2011-08-04 11:26 mytest.com
-rwxr-xr-x 1 root root 177 2011-07-25 16:10 index.html
Inhalt der Hostdatei auf dem Server (mit IP 192.168.2.5)
cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 americano
192.168.2.5 americano.mytest.com www.mytest.com
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Site-Konfiguration
<VirtualHost *>
ServerAdmin [email protected]
ServerName www.mytest.com
ServerAlias mytest.com
DocumentRoot "/var/www/mytest.com"
ErrorLog /var/log/apache2/mytest-error_log
CustomLog /var/log/apache2/mytest-access_log combined
#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/var/www/mytest.com">
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Ich habe keine .htaccess
Datei in meinem Dokumentstamm. Die Berechtigungen sind korrekt eingestellt (lesbar durch www-Daten).
Wenn ich die IP-Adresse von meinem Desktop aus eingebe, wird die Site korrekt angezeigt. Ich habe die Hosts-Datei auf meinem Desktop so geändert, dass sie www.mytest.com
auf die IP des Servers verweist. Wenn ich es benutze, bekomme ich 403
. Da viele Funktionen dieser Site vom Site-Namen abhängig sind, muss ich über den Domain-Namen auf die Site zugreifen können.
Eine andere seltsame Sache ist, dass alle Protokolldateien, selbst wenn sie ordnungsgemäß erstellt wurden, keine Informationen zu diesem Fehler enthalten.
Ich stecke fest. Kann jemand helfen?
quelle
sudo sh -c ". /etc/apache2/envvars; apache2 -S"
(Liste der Virtualhosts) und:sudo sh -c ". /etc/apache2/envvars; grep -R Listen /etc/apache2/*|grep -v \"#\"; grep -R NameVirtual /etc/apache2/*|grep -v \"#\""
VirtualHost configuration: 192.168.2.5:* www.mytest.com (/etc/apache2/sites-enabled/mytest.com:1) Syntax OK
Der zweite Befehl gibt zurück:/etc/apache2/ports.conf:Listen 80 /etc/apache2/ports.conf: Listen 443 /etc/apache2/ports.conf: Listen 443 /etc/apache2/conf.d/virtual.conf:NameVirtualHost *
Antworten:
Apache 2.4.3 (oder möglicherweise etwas früher) hat eine neue Sicherheitsfunktion hinzugefügt, die häufig zu diesem Fehler führt. Außerdem wird eine Protokollmeldung des Formulars "Client von Serverkonfiguration abgelehnt" angezeigt. Für die Funktion ist eine Benutzeridentität erforderlich, um auf ein Verzeichnis zugreifen zu können. Es wird von DEFAULT in der mit Apache gelieferten httpd.conf aktiviert. Sie können die Aktivierung der Funktion anhand der Direktive sehen
Dies bedeutet im Grunde, allen Benutzern den Zugriff zu verweigern. Um dieses Problem zu beheben, entfernen Sie entweder die abgelehnte Direktive (oder viel besser) und fügen Sie den Verzeichnissen, auf die Sie Zugriff gewähren möchten, die folgende Direktive hinzu:
wie in
quelle
/etc/apache2/apache2.conf
und es hat geholfen, danke!apache/conf/extra
innerhalb/etc/apache2
Für Apache Ubuntu 2.4.7 habe ich endlich festgestellt, dass Sie Ihren virtuellen Host in apache2.conf auf die weiße Liste setzen müssen
quelle
Dies kann ein Berechtigungsproblem sein.
Laut dieser Seite über Apache 403-Fehler.
Da Sie verwenden
Allow from all
, sollte Ihre Bestellung keine Rolle spielen, aber Sie können versuchen, sie zu ändernDeny,Allow
, um das Standardverhalten auf "Zulassen" zu setzen .quelle
Verschieben Sie die Directory-Klausel aus dem virtualhost und fügen Sie sie ein, bevor Sie den virtualhost deklarieren.
Hat mich auch lange verrückt gemacht. Ich weiß nicht warum. Es ist eine Debian-Sache.
quelle
Ich hatte das gleiche Problem mit einem virtuellen Host unter Ubuntu 14.04
Für mich hat folgende Lösung funktioniert:
http://ubuntuforums.org/showthread.php?t=2185282
Es wird nur ein
<Directory >
Tag hinzugefügt/etc/apache2/apache2.conf
quelle
Wenn Sie alles richtig gemacht haben, geben Sie einfach das Berechtigungs-Ausgangsverzeichnis wie folgt ein:
dann
quelle
Das Problem war, dass die Dateizugriffsberechtigung falsch war.
Ich habe die Berechtigungen des Verzeichnisses geändert und es hat funktioniert.
quelle
Ich hatte dieses Problem auch unter Arch Linux ... es kostet mich einige Zeit, aber ich bin froh, dass ich meinen Fehler gefunden habe:
Mein Verzeichnis mit den
.html
Dateien befand sich in meinem Konto.Ich habe alles eingestellt,
r+x
aber ich habe immer noch den403
Fehler.Dann ging ich komplett zurück und versuchte mein Home-Verzeichnis so einzustellen , dass es ausgeführt wurde, was mein Problem löste.
quelle
Ich habe gerade einige Stunden mit diesem dummen Problem verbracht
Ändern Sie zunächst die Berechtigungen, indem Sie diese im Terminal verwenden
Ich weiß nicht, was der Unterschied zwischen 664 und 775 ist. Ich habe beide 775 so gemacht. Außerdem benötigt htdocs den Verzeichnispfad, zum Beispiel für mich
Dies ist auch die andere dumme Sache
Stellen Sie sicher, dass Ihr Image-src-Link beispielsweise Ihr Domain-Name ist
Seien Sie sicher zu haben
Sie bearbeiten diese mit pico im Terminal
Ich habe auch ein Verzeichnis für Bilder erstellt, damit Sie beim Eingeben der Adressleiste des Browsers domainname.com/images eine Liste der Fotos erhalten, die heruntergeladen werden können und erfolgreich heruntergeladen werden müssen, um anzuzeigen, dass Bilddateien ordnungsgemäß funktionieren
Und das sind die Lösungen, die ich ausprobiert habe, jetzt habe ich funktionierende Bilder ... yay !!!
Auf die nächsten Probleme
quelle