Interner Serverfehler im Benutzerverzeichnis

0

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
Lal krishnan
quelle
Was ist in der error_log von Apache HTTPd?
Daniel B
@DanielB Wie kann ich Apache error_log sehen?
Lal krishnan
Anscheinend ist der Standardspeicherort /var/log/httpd/error_log.
Daniel B
@DanielB Jetzt können Sie mein Fehlerprotokoll sehen
Lal krishnan
Posten Sie Ihre /etc/httpd/httpd.conf
metacom

Antworten:

1

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.

vic
quelle
Ich bin viel ausprobiert. Immer noch zeigt Interner Serverfehler.
Lal krishnan
Bitte geben Sie error_logs an
vic
Jetzt können Sie mein Fehlerprotokoll sehen
Lal krishnan
1

Versuchen

<Directory />

   Options FollowSymLinks
   AuthType None
   AllowOverride None
   Order deny,allow
   Deny from all
</Directory>

<Directory "/opt/your_folder/*">

   Options FollowSymLinks MultiViews
   AllowOverride None
   AuthType None
   Order deny,allow
   Allow from all
</Directory>

Es scheint ein Berechtigungsfehler mit dem Ordner zu sein, den Sie im Webverzeichnis erstellt haben.

Renju Chandran chingath
quelle
Wo muss ich das platzieren?
Lal krishnan
In Ihrer httpd.conf. Kopieren Sie diese Zeilen nicht als solche. Sie müssen Ihre httpd.conf überprüfen und herausfinden, ob Sie die Berechtigung für den Ordner erteilt haben oder nicht. Aktivieren Sie Alle verweigern und Alle Zeilen in Ihrer Conf-Datei zulassen.
Renju Chandran chingath
Ich bin versucht aber keine änderung ..
Lal krishnan
0

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

metacom
quelle
-1

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:

vic
quelle
Antworten nicht plagiieren, zusammenfassen & amp; schreiben sie ihnen zu. rackspace.com/knowledge_center/article/… .
Sathyajith Bhat