GNU/Linux >> Tutoriales Linux >  >> Linux

reiniciar apache

Es posible que deba reiniciar Apache® cuando desee que los cambios que realice surtan efecto, o cuando necesite que el uso de recursos de Apache vuelva a su rango normal. Sin embargo, a veces Apache no se reinicia. Este artículo le muestra cómo verificar sus ajustes de configuración y reiniciar Apache cuando falla.

Nota :Antes de utilizar las siguientes instrucciones y realizar cualquier cambio en sus archivos de configuración, le recomendamos que haga una copia de seguridad de los archivos existentes.

Verificar la sintaxis

La causa del error podría ser simplemente una palabra mal escrita o un punto (.) fuera de lugar. Ejecute el siguiente comando para verificar la sintaxis:

    [user@server ~]$ httpd –S

Debería ver el siguiente resultado:

    Syntax OK

Si recibe un mensaje de error similar al que se muestra en el siguiente ejemplo, debe corregir el error antes de intentar reiniciar Apache:

    Syntax error on line 51 of /etc/httpd/conf/httpd.conf:
    Invalid command 'erverRoot', perhaps misspelled or defined by a module not included in the server configuration

Consulte los registros de errores de Apache

Si resuelve esos errores y Apache aún no se reinicia, verifique los registros de errores de Apache. Usar dos ventanas podría ser útil. En una ventana, use el comando tail contra el registro de errores ejecutando el siguiente comando:

    tail –f /var/log/httpd/error_log

En la otra ventana, intente reiniciar Apache ejecutando el siguiente comando:

    # For RHEL/CentOS 6
    [user@server ~]$ sudo /etc/init.d/httpd restart
    # For Ubuntu 14/Debian 8
    [user@server ~]$ sudo /etc/init.d/apache2 restart
    # For RHEL/CentOS 7+
    [user@server ~]$ sudo systemctl restart httpd
    # For Ubuntu 16+/Debian 9+
    [user@server ~]$ sudo systemctl restart apache2

Mire la primera ventana mientras reinicia Apache para ver los errores que se generan en los registros.

Es posible que Apache tampoco se reinicie si hay otro servicio vinculado al puerto que Apache está tratando de usar, como se muestra en el siguiente resultado:

    Stopping httpd:                                           [FAILED]
    Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 2001:4801:7824:103:9ed:a5a8:3301:d53a for ServerName
    [Wed Sep 10 20:48:11 2014] [warn] NameVirtualHost *:443 has no VirtualHosts
    [Wed Sep 10 20:48:11 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
    (98)Address already in use: make_sock: could not bind to address [::]:80
    (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
    no listening sockets available, shutting down
    Unable to open logs

Este resultado muestra que Apache no puede iniciarse porque otro servicio ya está asignado al puerto 80.

Puede cambiar el puerto al que está asignado Apache o verificar si el otro servicio que está asignado a este puerto debería estar en el puerto 80. Ejecute netstat comando para identificar el otro servicio que está usando ese puerto, como se muestra en el siguiente ejemplo:

    [user@server ~]$ sudo netstat –plnt

El resultado debe ser similar al siguiente ejemplo:

    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address             Foreign Address             State      PID/Program name
    tcp       0     0 0.0.0.0:80                  0.0.0.0:*                   LISTEN     5272/sshd
    tcp       0     0 127.0.0.1:25                0.0.0.0:*                   LISTEN     1581/master
    tcp       0     0 0.0.0.0:3306                0.0.0.0:*                   LISTEN     5835/mysqld
    tcp       0     0 :::80                                       :::*        LISTEN     5272/sshd
    tcp       0     0 ::1:25                                      :::*        LISTEN     1581/master

En este ejemplo, el resultado muestra que Secure Shell (SSH) está escuchando en el puerto 80, lo que no debería ser el caso. Puede rectificar esta situación modificando el archivo de configuración para que SSH escuche en un puerto diferente y luego reinicie Apache.

También puede ver el siguiente error:

    httpd dead but subsys locked, but pid exists

Este error significa que Apache se estaba ejecutando, pero falló. Cuando inicia Apache, crea un archivo de bloqueo para indicar que se está ejecutando. El archivo de bloqueo ayuda a evitar que se ejecuten varias instancias. Cuando detiene Apache, este archivo de bloqueo se elimina. Sin embargo, cuando falla, el archivo de bloqueo todavía existe pero el proceso no. Si ve este error, debe eliminar el archivo de bloqueo ejecutando los siguientes comandos:

    # For RHEL/CentOS based distributions
    [user@server ~]$ sudo rm /var/lock/subsys/httpd
    # For Ubuntu/Debian based distributions
    [user@server ~]$ sudo rm /var/lock/subsys/apache2

    # For RHEL/CentOS 6
    [user@server ~]$ sudo /etc/init.d/httpd restart
    # For Ubuntu 14/Debian 8
    [user@server ~]$ sudo /etc/init.d/apache2 restart
    # For RHEL/CentOS 7+
    [user@server ~]$ sudo systemctl restart httpd
    # For Ubuntu 16+/Debian 9+
    [user@server ~]$ sudo systemctl restart apache2

La ejecución de estos comandos elimina el archivo de bloqueo no utilizado para que Apache pueda crear uno nuevo cuando se reinicie.


Use la pestaña Comentarios para hacer cualquier comentario o hacer preguntas. También puede iniciar una conversación con nosotros.


Linux
  1. apache mod_rewrite

  2. Usando mod_cluster en Apache

  3. ¿Cómo reiniciar Apache?

  4. Instalar Apache en CentOS 8

  5. Instalar Apache en Debian 10

Cómo reiniciar Apache en Ubuntu 20.04 Focal Fossa

Comando de reinicio (reinicio) de Linux

Cómo iniciar, detener o reiniciar Apache

Servidor web Apache

Cómo instalar Apache en Ubuntu 20.04

Cómo reiniciar la red en Ubuntu 22.04