1 votos

Apache ganó ' parada t, ganó ' t reiniciar, ganó ' t aceptar la nueva configuración en MacOS Sierra

Recientemente he instalado PHP-7.1 a través de homebrew en MacOS Sierra, y todo dejó de funcionar. Impar de errores, problemas de permisos, y así sucesivamente. Ahora estoy tratando de dejar de Apache (que se incluye con la Sierra) y Apache simplemente no va a morir.

Matar:

$ sudo apachectl stop
AH00557: httpd: apr_sockaddr_info_get() failed for My-MacBook-Pro.local
AH00558: httpd: Could not reliably determine the server's fully
qualified domain name, using 127.0.0.1. Set the 'ServerName' directive
globally to suppress this message
httpd (no pid file) not running

Compruebe si se está ejecutando:

$ sudo lsof -i:80
COMMAND   PID USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
httpd    3722 _www    4u  IPv6 0x123456789abcdef      0t0  TCP *:http (LISTEN)
httpd    3724 _www    4u  IPv6 0x123456789abcdef      0t0  TCP *:http (LISTEN)
httpd    3725 _www    4u  IPv6 0x123456789abcdef      0t0  TCP *:http (LISTEN)
httpd   56048 root    4u  IPv6 0x123456789abcdef      0t0  TCP *:http (LISTEN)
httpd   56055 _www    4u  IPv6 0x123456789abcdef      0t0  TCP *:http (LISTEN)

Hit Apache con un control del estado:

$ apachectl status
Go to http://localhost:80/server-status in the web browser of your choice.
Note that mod_status must be enabled for this to work.

Vamos a tratar de que el enlace:

$ curl http://localhost:80/server-status
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /server-status
on this server.<br />
</p>
</body></html>

Está bien, entonces vamos a tratar de arreglar httpd.conf y reiniciar Apache:

$ sudo nano /etc/apache2/httpd.conf
$ sudo apachectl restart
AH00557: httpd: apr_sockaddr_info_get() failed for My-MacBook-Pro.local
AH00558: httpd: Could not reliably determine the server's fully 
qualified domain name, using 127.0.0.1. Set the 'ServerName' directive 
globally to suppress this message

Ah, y para confirmar en /etc/apache2/httpd.conf tengo tanto de estas líneas sin comentarios:

ServerName localhost

LoadModule status_module libexec/apache2/mod_status.so

Lo que está mal con Apache, y cómo hago para dejar todo así que puedo empezar de nuevo?

1voto

moonpoint Puntos1857

Si usted logra detener Apache con el comando sudo apachectl stop, usted todavía podrá ver la salida que vio cuando se emitió el apachectl status comando. E. g., Puedo ver que Apache está escuchando en el puerto 80 de mi OS X El Capitan del sistema con el netstat comando, detenerlo, compruebe el estado, que muestra el mismo mensaje que has publicado, pero comprobar que Apache no está escuchando en el puerto 80.

$ netstat -an | grep '.80' | grep -i Listen
tcp46      0      0  *.80                   *.*                    LISTEN
$ sudo apachectl stop
Password:
$ apachectl status
Go to http://localhost:80/server-status in the web browser of your choice.
Note that mod_status must be enabled for this to work.
$ netstat -an | grep '.80' | grep -i Listen
$

Así que viendo que la salida de apachectl status no significa que Apache se está ejecutando. Se puede comprobar que ya no está escuchando en el puerto 80 con el comando netstat -an | grep '.80' | grep -i Listen o comprobar si el Apache proceso httpd se ejecuta como se muestra a continuación.

$ ps aux | grep httpd | grep -v grep
_www            45379   0.0  0.0  2509492   1084   ??  S     6:27PM   0:00.00 /usr/sbin/httpd -D FOREGROUND
root            45376   0.0  0.1  2511540  11292   ??  Ss    6:27PM   0:00.19 /usr/sbin/httpd -D FOREGROUND
$ sudo apachectl stop
Password:
$ ps aux | grep httpd | grep -v grep
$

El "403 Forbidden" mensaje de error puede deberse a un archivo de permisos de problema. Si se coloca un poco de html archivo en el directorio DocumentRoot con acceso de lectura garantizados para todos, por ejemplo, chmod 644 index.html y tratar de acceder a él, ¿qué ves? Usted también puede encontrar una pista para el problema que está experimentando examinando el archivo de registro de errores de Apache. Usted puede ver la ubicación para el archivo utilizando el apachectl -S comando. E. g.:

$ apachectl -S
AH00557: httpd: apr_sockaddr_info_get() failed for GSSLA15122293
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   myserver.example.com (/private/etc/apache2/extra/httpd-vhosts.conf:24)
ServerRoot: "/usr"
Main DocumentRoot: "/Library/WebServer/Documents"
Main ErrorLog: "/private/var/log/apache2/error_log"
Mutex proxy: using_defaults
Mutex default: dir="/private/var/run/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex proxy-balancer-shm: using_defaults
PidFile: "/private/var/run/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="_www" id=70 not_used
Group: name="_www" id=70 not_used

El resultado anterior es lo que yo veo en mi sistema. Aunque Apache está quejándose de que "no se Puede determinar de forma fiable el servidor del nombre de dominio completamente cualificado", puedo acceder a el index.html archivo que he puesto en mi directorio DocumentRoot a través de http://localhosta pesar de que me establezca ServerName y DocumentRoot en un VirtualHost sección en /private/etc/apache2/extra/httpd-vhosts.conf. El "no se Puede determinar de forma fiable el servidor completamente nombre de dominio completo" no quiere decir que Apache no está a la escucha de conexiones. Es que si usted consigue el "403 Forbidden" error cuando se intenta acceder a una página en el servidor, debido a que es un mensaje de error devuelto por el servidor web.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: