10
votes

Passager / mod_rails ne parvient pas à initialiser dans Fedora 12 lors du démarrage Apache

Je suis en train de mettre en place un serveur pour exécuter une application Ruby sur Rails sur Fedora 12, à l'aide de passager.

Je suis au stade où j'ai installé le passager, le configurez comme prescrit, mais obtenez-le Les erreurs suivantes lorsque je redémarre Apache: xxx

Comme vous pouvez le constater, il existe un problème d'autorisations lorsque le passager tente d'initialiser: xxx

Lorsque Apache est démarre, il crée un fichier dans / TMP: xxx

si j'exécute l'application en tirant MONGREL directement avec MONGREL_RAILS Start -e Production , je vois ce qui suit: xxx

à nouveau sur les points d'erreur aux problèmes d'autorisation avec le / tmp répertoire.

Je suis à perte quant à la solution. Je ne sais pas si elle est liée à simplement des autorisations d'annuaire ou de la sécurité Selinux de Fedora.

Toute aide serait appréciée. Merci.


0 commentaires

5 Réponses :


2
votes

exécuté setenforce 0 Avant de démarrer vous permettra de tester si c'est Selinux. N'oubliez pas d'exécuter setenforce 1 ensuite.


4 commentaires

Merci. On dirait que c'est Selinux. Exécution Setenforce 0 Avant de redémarrer Apache a abouti à l'application de l'application. Y a-t-il quelque chose que je peux regarder pour ne pas désactiver Selinux, que je suppose n'est pas une bonne idée de désactiver, mais obtenez mon application en cours d'exécution, elle est activée?


Audit2Pourquoi et Audit2allow peut vous aider à proposer une stratégie SELINUX pour permettre l'accès, mais je envisagerais de mettre les fichiers ailleurs, par exemple. / var / run / passager, aussi.


Vous suggérez peut-être que la définition Passengertempdir dans le virtualhost de l'application dans l'Apache Conf à / var / run / passager ?


Je suppose. Je ne sais pas réellement passager: p



3
votes

J'ai le même problème dans Centos 5.4, Selinux entrez dans la voie du passager.

Réglage Passengertempdir To / Var / Var / Passenger vous donne simplement les mêmes erreurs d'autorisation dans le nouveau répertoire au lieu de / TMP: p> xxx pré>

i peut alors modifier le contexte de sécurité de / var / var / passager pour passer au-delà de cette erreur: p>

[Mon Feb 22 12:07:06 2010] [error] *** Passenger could not be initialized because of this error: Cannot create FIFO file /var/run/passenger/passenger.3686/.guard: Permission denied (13)


2 commentaires

Ert: C'est essentiellement là que j'étais aussi. En fin de compte, j'ai fini par Selinux pour que les choses fonctionnent. Pas idéal, mais ça va faire pour l'instant.


Je suis arrivé à la même conclusion.



3
votes

Vous avez besoin de plus que l'autorisation HTTPD_SYS_Content_T. J'utilise la technique suivante pour commencer les choses:

  • Démarrez une queue sur le journal d'audit: queue -f /var/log/audit/audit.log
  • Recharger Apache: Apachectl redémarrez
  • Aller au répertoire / TMP / TMP: CD / TMP
  • Si juste 1 ligne est ajouté, utilisez la commande: queue -1 /var/log/audit/audit.log | Audit2Alow -M httpdfifo
  • Notez que le nom 'httpdfifo' n'est qu'un nom choisi pour refléter le type d'erreur observé.
  • Cela créera un fichier nommé 'httpdfifo.pp'. Autoriser Apache de créer une FIFO à partir d'ici après avoir été envoyé la commande suivante: Smodule -i httpdfifo.pp
  • Continuez à le faire jusqu'à ce que toutes les erreurs d'audit aient été résolues (il a fallu 4 types d'autorisations différents sur mon système en cours d'exécution CENTOS 5.4)

0 commentaires

13
votes

J'ai fait la même chose que Fred, sauf que cela au lieu de le faire une erreur à la fois:

  1. Allez en mode permissive en exécutant Setenforce 0
  2. Redémarrez Apache et appuyez sur votre site et utilisez-le pendant un moment comme normal
  3. Exécuter grep httpd /var/log/audit/audit.log | Audit2Alow -M passager
  4. SEMODULE -I PASSAGER.PP
  5. Retour au mode d'application en exécutant setenforce 1
  6. Redémarrez Apache et testez votre site - j'espère que cela devrait tous travailler comme avant!

    Notez que ceci est fondamentalement un exemple spécifique de la procédure sur le Centos Selinux Aide - Vérifiez-le.


0 commentaires

0
votes

J'ai essayé ce que Dan Sketcher et Fred Appeman a suggéré, c'est-à-dire répéter ce qui suit: XXX PRE>

Mais après cela 5 ou 6 fois, je suis resté à venir contre de nouvelles erreurs, et EM> Certaines des mêmes erreurs sont venues même après que j'avais essayé de les autoriser avec "audit2allow". P>

à la fin, je viens de désactiver Selinux, avec: p>

echo 0 >/selinux/enforce


0 commentaires