Heute versuche ich, httpd und mysql auf meinem fedora 14 PC zu installieren. Das funktioniert gut. Danach versuche ich, einen public_html-Ordner im Benutzerverzeichnis zu erstellen und php den Zugriff auf diesen Ordner zu erlauben. Dafür bin ich diesem Link folgen . Wenn ich jetzt versuche, auf diesen Ordner zuzugreifen, wird dies angezeigt forbidden
Nachricht in meinem Browser. Um dies zu vermeiden, googelte ich mein Problem, das mich gab dieser Link . Wenn ich es versuche setsebool -P httpd_enable_homedirs=1
Nun zeigt mein Browser Internal server error
.
Mein ERROR LOG
[Tue Apr 01 09:01:28 2014] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Apr 01 09:01:28 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Apr 01 09:01:28 2014] [notice] Digest: generating secret for digest authentication ...
[Tue Apr 01 09:01:28 2014] [notice] Digest: done
[Tue Apr 01 09:01:30 2014] [notice] Apache/2.2.17 (Unix) DAV/2 PHP/5.3.8 configured -- resuming normal operations
[Tue Apr 01 09:08:45 2014] [crit] [client 127.0.0.1] configuration error: couldn't perform authentication. AuthType not set!: /~BON4/
[Tue Apr 01 09:08:52 2014] [crit] [client 127.0.0.1] configuration error: couldn't perform authentication. AuthType not set!: /~BON4/HH.php
[Tue Apr 01 09:08:52 2014] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico
error_log
von Apache HTTPd?/var/log/httpd/error_log
.Antworten:
Legen Sie einige Inhalte (wie index.php oder index.html) in das Verzeichnis public_html entsprechend Ihrer Konfiguration des Webservers ein. Und es wäre hilfreich, wenn Sie Fehlerprotokolle bereitstellen.
quelle
Versuchen
Es scheint ein Berechtigungsfehler mit dem Ordner zu sein, den Sie im Webverzeichnis erstellt haben.
quelle
Der Link, den Sie gefolgt haben, wurde für Version 2.2 und 2.4 angegeben. Ich vermute, Sie müssen entfernen
Require all granted
von/etc/httpd/conf.d/userdir.conf
da Fedora 14 mit Apache 2.2 ausgeliefert wird.Ich würde auch das Lesen empfehlen http://httpd.apache.org/docs/2.2/mod/mod_userdir.html für einen besseren Überblick über mod_userdir in Apache 2.2
quelle
Die Website, die Sie ausführen möchten, muss so sein, wie sie in Ihrem Link erwähnt wurde (mithilfe von selinux und in / home / user / public_html). Wenn dies nicht der Fall ist, deaktivieren Sie bitte den selinux und versuchen Sie, einige Inhalte in / var / www / html zu platzieren und das userdir-Modul zu kommentieren. Wenn Sie es in der Datei / home / user / public_html konfigurieren möchten, beachten Sie bitte den Eintrag vhosts (virtualhost) in Ihrer httpd.conf-Datei. Im Fall von aktiviertem Selinux müssen Sie Richtlinien festlegen, was zugelassen wird und was nicht.
Vhost-Setup:
Da die Standardberechtigungen uns, dem Benutzer 'Demo', nur das Durchsuchen unseres Home-Ordners ermöglichen, geben wir zunächst Apache Zugriff auf diesen Ordner:
chmod 755 / home / demo
OK, jetzt müssen wir die Verzeichnisstruktur für unsere Sites erstellen.
Erstellen Sie in Ihrem Home-Verzeichnis einen Ordner 'public_html':
cd ~ mkdir public_html
Erstellen Sie nun für jede Domäne, die wir hosten möchten, einen Ordner mit einem Standardsatz von Unterordnern:
mkdir -p public_html / domain1.com / {public, privat, log, cgi-bin, backup}
Dadurch werden die Ordner public, private, log, cgi-bin und backup für jede unserer Domains (domain1.com) erstellt.
index.html
Der Inhalt des Öffentlichen Ordners liegt ganz bei Ihnen, aber für dieses Beispiel verwende ich eine sehr einfache HTML-Datei, damit wir überprüfen können, ob die virtuellen Hosts ordnungsgemäß funktionieren:
Erstellen Sie für jede Domäne die index.html-Datei:
vi public_html / domain1.com / public / index.html
Machen wir weiter und kommentieren Sie den generischen NameVirtualHost in der Apache-Konfiguration.
Navigieren Sie zum Verzeichnis / etc / httpd / conf und öffnen Sie die Hauptkonfigurationsdatei von Apache (httpd.conf):
sudo vi httpd.conf
Jetzt können wir Apache neu starten, um die Änderungen einzuleiten:
sudo /etc/init.d/httpd neu starten
Benutzerdefinierte virtuelle Hosts
Wir haben die Grundlagen eingerichtet und jetzt können wir unsere eigenen virtuellen Hosts hinzufügen, damit wir unsere Domains bedienen können.
Erstellen Sie den vhost für domain1:
sudo vi /etc/httpd/conf/httpd.conf
Am Ende der Datei httpd.conf müssen wir Folgendes hinzufügen:
# Admin-E-Mail, Servername (Domänenname) und Aliasnamen ServerAdmin [email protected] ServerName domain1.com ServerAlias www.domain1.com
# Document Root (wo sich die öffentlichen Dateien befinden) DocumentRoot /home/demo/public_html/domain1.com/public # Speicherorte für benutzerdefinierte Protokolldateien LogLevel warnen ErrorLog /home/demo/public_html/domain1.com/log/error.log CustomLog /home/demo/public_html/domain1.com/log/access.log kombiniert
OK gut, jetzt müssen wir Apache neu laden:
sudo /etc/init.d/httpd neu laden
Navigiere jetzt zu deiner Site:
quelle