J'essaie de démarrer le serveur httpd sur centos 6. Il génère l'erreur suivante:
[root@machine ~]# service httpd start
Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:88
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:88
no listening sockets available, shutting down
Unable to open logs
[FAILED]
J'ai également vérifié pour le port 88, il n'est pas utilisé .. .. J'ai également vérifié avec semanage , mais cela n'a pas aidé.
Toute aide serait appréciée.
On dirait que vous l'exécutez pas en tant que "root". Seul root peut se connecter à ce port (80). Vérifiez votre configuration dans le fichier conf/httpd.conf, ligne d’écoute, et remplacez le port par un port supérieur.
Il m'est arrivé de rencontrer ce problème à cause de des autorisations SELinux manquantes . Par défaut, SELinux a uniquement autorisé Apache/httpd à se connecter aux ports suivants:
80, 81, 443, 488, 8008, 8009, 8443, 9000
Ainsi, la liaison avec mon port HTTP httpd.conf
- configuré Listen 88
et mon port config.d/ssl.conf
- configuré Listen 8445
TLS/SSL échouerait avec cette configuration SELinux par défaut.
Pour résoudre mon problème, j'ai dû ajouter les ports 88 et 8445 à la configuration SELinux de mon système:
semanage
: Sudo yum -y install policycoreutils-python
Sudo semanage port -a -t http_port_t -p tcp 88
Sudo semanage port -a -t http_port_t -p tcp 8445
Au terminal, exécutez cette commande avec l’autorisation root:
Sudo /etc/init.d/Apache2 start
Vous devez être root pour démarrer un serveur Web, sinon vous obtiendrez une erreur similaire.
Avec mon installation centos 6.7, non seulement le problème était lié au démarrage de httpd avec root, mais également à xauth (obtention de /usr/bin/xauth: timeout in locking authority file /.Xauthority
avec des erreurs de permission refusée sous-jacentes)
# setenforce 0
Correction des deux problèmes.
C'est un ajout à la réponse d'Abdull quelque part dans ce fil de discussion:
J'ai dû modifier au lieu d'ajouter un port
semanage port -m -t http_port_t -p tcp 5000
parce que je reçois cette erreur en ajoutant le port
ValueError: Port tcp/5000 already defined
Dans mon cas, j'ai essayé d'utiliser d'abord le port 88 à la place, et même dans ce cas, le httpd ne démarre pas.
J’ai utilisé la commande ci-dessous, c’est-à-dire modifier au lieu d’ajouter, comme l’a suggéré l’un des utilisateurs, et j’ai pu exécuter httpd.
semanage port -a -t http_port_t -p tcp 88
Désactiver SELinux
Désactiver SELinux temporairement
Sudo setenforce 0
Redémarrez le service httpd
service httpd restart
Désactiver SELinux de manière persistante (après le redémarrage)
vi /etc/selinux/config
Ajouter une ligne et sauvegarder
SELINUX=disabled
Commencez par l'utilisateur root ou par Sudo, cela fonctionne bien, voici un exemple de sortie:
[ec2-user@ip-172-31-12-164 ~]$ service httpd start
Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
**[FAILED]**
[ec2-user@ip-172-31-12-164 ~]$ Sudo service httpd start
Starting httpd: [ OK ]
[ec2-user@ip-172-31-12-164 ~]$ Sudo service httpd status
httpd (pid 3077) is running...