Basado en ese mensaje, estoy asumiendo que usted está tratando de ejecutar como usuario. Usted necesita para iniciar Apache con privilegios elevados de manera que pueda acceder el directorio /private/var/log/apache2
y el archivo /private/var/log/apache2/error_log
.
Intente ejecutar como este lugar:
$ sudo apachectl start
O si ya está en ejecución:
$ sudo apachectl restart
Se ejecuta como root?
Si usted echa un vistazo a los resultados de la anterior apachectl
script debería verse algo como esto:
El httpd
proceso que se ejecuta como root no es el proceso que va a ser la aceptación de las conexiones, que va a iniciar más trabajador instancias de httpd
que va a hacer el mantenimiento de las conexiones TCP a los intentos de acceso a los puertos 80/443.
Esto aislará cualquier acceso, de modo que es a través de los trabajadores de los casos que se ejecuta como el usuario _www
, NO root
.
Este tipo de interacción es el típico con *ctl
secuencias de comandos que se requieren root
privilegios para acceder al sistema de ficheros para los registros y requieren privilegios elevados para enlazar un proceso a un puerto por debajo del 1024. Este es un semi-número mágico en los puertos TCP que denota algo que es del sistema relacionados, mientras que los puertos > 1024 cualquier usuario puede enlazar.
Lo _www?
Esto es lo que tradicionalmente se llama una cuenta de servicio o usuario del servicio. Esta cuenta tiene como única finalidad propia de los procesos que se ejecutan como servicios, tales como servidores web Apache (httpd
). De nuevo, esto es por la seguridad/permisos de aislamiento en la posibilidad de que algo malo sucede, sólo los archivos y el nivel de permisos que se conceden a este usuario, _www
, sería lo expuesto a robos.
Usted puede utilizar el id
comando en una terminal para ver los detalles acerca de este servicio de la cuenta.
$ id -a _www
uid=70(_www) gid=70(_www) groups=70(_www),12(everyone),61(localaccounts),701(com.apple.sharepoint.group.1),702(com.apple.sharepoint.group.2),100(_lpoperator)
Referencias