Quelques mots sur les erreurs que vous obtenez et qui, espérons-le, vous éviteront des situations similaires à l'avenir.
Sous Linux, les ports de 0 à 1024 sont réservés à l'utilisation du système. Cela signifie que pour en utiliser un, vous devez avoir le droit de modifier - accéder aux paramètres système de base. L'utilisateur root dispose de tels privilèges et peut réellement utiliser un port compris entre 0 et 1024.
Dans votre problème comme vous pouvez le voir, le système via la réponse Apache2 indique la racine du problème ([...] n'a pas pu se lier à l'adresse blah blah 80 ):
(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
Lorsque le démon http Apache2 démarre, il essaie de lier le port 80 car il s'agit du port par défaut à utiliser dans HTTP see , qui est un port dans les ports affectés au système et en tant que tel, il n'est accessible que par root.
Vous avez exécuté la commande de démarrage en tant qu'utilisateur standard sans privilèges root et vous avez échoué.
En termes simples:
Toi:
Salut Apache2. Je m'appelle Kongthap et je vous dis de commencer ( /etc/init.d/apache2 start
)
Apache2:
D'ACCORD. Je démarre (Démarrage du serveur web apache2)
Système, veuillez me donner le port 80 à utiliser et écouter les connexions.
Système:
D'ACCORD. Un instant pour vérifier ...
Ahh ... Désolé Apache2 mais je ne peux pas vous laisser courir au port 80, c'est pour un usage personnel.
Et vous ne disposez pas des privilèges appropriés pour le lier. ( Operation not permitted
)
Apache2:
Ohh, Kongthap, je n'ai pas réussi à démarrer, le système ne m'a pas laissé le faire ( (13)Permission denied:[...]
)
Conclusion
Il existe principalement deux solutions à ce problème:
Exécutez le démon HTTP Apache2 avec les privilèges root en utilisant sudo
:
sudo service apache2 start
ou:
sudo /etc/init.d/apache2 start
Changer le port par défaut de 80
quelque chose plus que 1024
, disons 2000
, 2500
, 9000
, etc. Un port typique de courir quand dans une telle situation est8080
sudo vi /etc/apache2/ports.conf
chercher ou sinon y ajouter:
Listen 8080
ou tout autre port de votre choix tel que le port > 1024
et le port sélectionné n'est pas utilisé par un autre processus.
service
la méthode préférée?Voici les commandes pour démarrer / arrêter / redémarrer le serveur apache:
Commencer:
Arrêter:
Recommencer:
la source
Vérifiez le contexte du port selinux en émettant une commande
S'il est présent dans la liste http_port_t, c'est OK, sinon ajoutez votre port en
ou quelque chose que vous souhaitez attribuer.
la source
C'est une erreur selinux, ou du moins c'était dans mon cas. Modifiez le booléen, désactivez selinux ou définissez-le sur permissive avec
setenforce 0
.Le changement booléen nécessiterait que vous exécutiez
getenforce -a | grep http
et recherchez le "autoriser le réseau de connexion http". Copiez-le et remplacez "on" où la liste indique "- off"la source