Algunas palabras sobre los errores que obtienes que con suerte te salvarán de situaciones similares en el futuro.
En Linux, los puertos del 0 al 1024 están reservados para uso del sistema. Esto significa que para usar uno, debe tener la autoridad para cambiar: acceder a la configuración básica del sistema. El usuario root tiene tales privilegios y puede usar un puerto del rango 0 - 1024.
En su problema, como puede ver, el sistema a través de la respuesta de Apache2 indica la raíz del problema ([...] no se pudo vincular para abordar bla, bla, 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
Cuando se inicia el demonio http Apache2, intenta vincular el puerto 80, ya que es el puerto predeterminado para usar en HTTP see , que es un puerto dentro de los puertos asignados al sistema y, como tal, solo se puede acceder desde la raíz.
Ejecutó el comando de inicio como un usuario típico sin privilegios de root y provocó que no lo hiciera.
En palabras simples:
Tú:
Hola apache2. Soy Kongthap y te estoy diciendo que comiences ( /etc/init.d/apache2 start
)
Apache2:
OKAY. Estoy empezando (Iniciando el servidor web apache2)
Sistema, por favor dame el puerto 80 para usar y escuchar las conexiones.
Sistema:
OKAY. Un momento para comprobar ...
Ahh ... Lo siento, Apache2, pero no puedo dejarte correr en el puerto 80, es para uso personal.
Y no tiene los privilegios correctos para vincularlo. ( Operation not permitted
)
Apache2:
Ohh, Kongthap no pude iniciar, el sistema no me dejó hacerlo ( (13)Permission denied:[...]
)
Conclusión
Existen principalmente dos soluciones a este problema:
Ejecute el demonio HTTP Apache2 con privilegios de root usando sudo
:
sudo service apache2 start
o:
sudo /etc/init.d/apache2 start
Cambiar el puerto por defecto a partir 80
de algo más grande que 1024
, por ejemplo 2000
, 2500
, 9000
, etc. Un típico puerto de correr cuando en tal situación es8080
sudo vi /etc/apache2/ports.conf
busca o si no hay agrega:
Listen 8080
o cualquier otro puerto de su elección, como el puerto > 1024
y el puerto seleccionado no es utilizado por otro proceso.
service
el método preferido?Los siguientes son los comandos para iniciar / detener / reiniciar el servidor apache:
Para comenzar:
Para detener:
Para reiniciar:
fuente
Verifique el contexto del puerto selinux emitiendo un comando
Si está presente en la lista http_port_t, entonces está bien; de lo contrario, agregue su puerto
o algo que quieras asignar.
fuente
Este es un error de selinux, o al menos lo fue en mi caso. Cambie el valor booleano, desactive selinux o configúrelo como permisivo con
setenforce 0
.El cambio booleano requeriría que usted ejecute
getenforce -a | grep http
y busque "permitir la red http connect". Cópielo y reemplace "on" donde la lista dice "- off"fuente