4 Stimmen

Starten Sie Apache mit Passenger/mod_rails erfolgreich, wenn Fedora hochgefahren wird.

VORAUSSETZUNG und ZWECK

Es gibt diesen Thread über Passagier/mod_rails scheitert beim Initialisieren in Fedora 12 beim Starten von Apache. Im Grunde genommen liegt das Problem an den Berechtigungen, und du kannst dies vermeiden, indem du folgendes aufrufst

setenforce 0 

bevor du ausführst

service httpd start

und danach aufrufst

setenforce 1

um es zurückzusetzen. Es funktioniert gut, aber ich möchte, dass die Abfolge automatisch abläuft, wenn Fedora neu gestartet wird.

PROBLEM

Ich habe mir /etc/init.d/httpd angesehen und festgestellt, dass es einfach auf etc/rc.d/init.d/functions umleitet, und der entscheidende Aufruf ist

systemctl_redirect $0 $1

Also dachte ich einfach, dass es funktionieren würde, wenn ich diesen Aufruf einfach mit setenforce-Aufrufen umgebe.

setenforce 0
systemctl_redirect $0 $1
setenforce 1

Aber es funktioniert nicht. Es gibt einen neuen Fehler aus (im httpd Fehlprotokoll) :

Kann das Verzeichnis '/tmp/passenger.1.0.8581/generation-0/buffered_uploads' nicht auf seine UID auf 48 und GID auf 48 ändern: Operation nicht erlaubt (1)

Wenn ich das letzte setenforce 1 weglasse, dann funktioniert es endlich! Aber offensichtlich möchte ich es irgendwo zurücksetzen.

FRAGE

Wie kann ich diese setenforce 0- und setenforce 1-Aufrufe an die Bootsequenz von httpd anhängen? Ich habe das Gefühl, dass der beste Weg wäre, mein eigenes /etc/init.d/httpd-Skript zu schreiben, das nicht systemctl verwendet, aber ich möchte das vermeiden, da es wie ein steiniger Weg aussieht... Aber wenn ich falsch liege und wenn du einen einfachen Weg vorschlagen kannst, um mein eigenes etc/init.d/httpd-Skript zu schreiben, würde ich das auch schätzen.

0voto

Paulo Fidalgo Punkte 20626

Sie verwenden einen falschen Ansatz für Ihr Problem. Sie sollten SELinux nicht auf Ihrem System deaktivieren. Was Sie tun müssen, ist zu versuchen, das Problem mithilfe des SELinux-Troubleshooters zu ermitteln und eine Regel hinzuzufügen, um den gewünschten Vorgang zuzulassen. Normalerweise geben sie Ihnen die Befehle, die Sie ausführen müssen.

Stellen Sie zunächst sicher, dass Sie die neuesten verfügbaren Versionen verwenden. Wenn das Problem weiterhin besteht, erwägen Sie bitte die Erstellung eines Fehlerberichts hier, dort erhalten Sie Unterstützung von den Entwicklern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X