Les partenaires publicitaires:

Comment permettre à apache de se connecter à une base de données distante sous selinux

SELinux est un excellent outil qui doit être utilisé sur chaque serveur Web accessible au public, et sur tout serveur d'entreprise où vous avez un besoin pour sécuriser les données.


SELinux sécurise les services jusqu'à ce que vous lui dites que les autres services et les connexions sont autorisées. Son restrictive par la nature et doit être configuré selon vos besoins.


Il est assez courant pour les entreprises d'utiliser un serveur séparé pour abriter une base de données, bases de données ou peut-être partagés pour les clients séparée de machines web hébergé.


Si cela vous ressemble:
"Je dois obtenir le problème PHP / Apache sur le serveur Linux pour travailler avec la base de données Mysql externe. Connection à partir de scripts PHP pour la base de données à distance échoue toujours. Nous avons fait un petit script php qui essaie simplement de se connecter à la base de données distante. Lors de l'exécution du script PHP dans ssh sur le serveur web, il fonctionne très bien. Mais lorsqu'il est exécuté dans Apache nous obtenons un échec de connexion, peu importe ce que nous faisons. "


Ensuite, nous nous pencherons sur la façon de résoudre ce problème :)

Choses que vous devez

  • Accès SSH à votre serveur
  • accès root

Instructions



  1. Nous devons d'abord vérifier que SELinux est activé.

    Code Promo:
    [@ Racine www ~] # getenforce

    Vous devriez voir quelque chose qui ressemble à dos
    Application




  2. Si vous voyez un résultat différent, essayez:
    Code Promo:
    [Root @ www ~] # 1 setenforce

    Si vous obtenez une erreur, alors vous ne devez pas SELinux allumé. Vous aurez besoin d'aller dans / etc / selinux / config et modifier le fichier pour permettre SELinux.

    Une fois que vous activez cette fonction (ou éteignez d'ailleurs), vous devrez redémarrer le serveur Linux pour les chagnes prennent effet comme elles sont faites pendant le chargement du noyau.

  3. Une fois SELinux est activé, procédez comme suit

    Réglez SELinux pour permettre les connexions à distance pour HTTP

    Code Promo:
    setsebool -P httpd_can_network_connect = 1

  4. C'est tout! Votre tout fait. Certaines personnes aiment à redémarrer pour forcer un rechargement, mais son pas nécessaire, sauf si vous voulez.

Conseils & Avertissements

  • Il ya d'autres restrictions de SELinux qui peuvent affecter le serveur à l'avenir. Vous pouvez obtenir la liste complète avec la commande 'getsebool -a'
  • Pas toutes les distributions ou "saveurs" de linux utiliser la même version. Certaines versions plus récentes ne pas utiliser ce booléen et d'avoir ce comportement mis en RBACs place.
» » » » Comment permettre à apache de se connecter à une base de données distante sous selinux