En este tutorial vamos a ver cómo instalar Apache en macOS. Para ello utilizaremos Homebrew. Antes de comenzar, has de saber que Apache ya viene preinstalado por defecto con la mayor parte de las instalaciones de macOS. Sin embargo, es mejor deshabilitarlo e instalarlo manualmente por temas de compatibilidad, ya que de este modo funcionará tanto con la actual como con las futuras versiones de macOS.
Este tutorial funcionará con todas las versiones de macOS, independientemente de si ha sido instalado recientemente o no. Se han reportado algunos casos de archivos que se han eliminado con alguna actualización del sistema, pero no son comunes.
Para seguir este tutorial necesitarás tener unos conocimientos básicos de la línea de comandos de macOS.
Contenidos
Qué es Apache
Apache es un servidor web capaz de atender peticiones HTTP, pudiendo también servir una respuesta a las mismas. Cada vez que accedes a un a URL en tu navegador estás enviando una petición a un servidor, que podrá ser Apache, Nginx o cualquier otro servidor web.
Apache es capaz de devolver tanto archivos en formato HTML como hojas de estilos CSS, scripts, imágenes, vídeos o cualquier otro tipo de archivo. Apache se limita a actuar de interfaz entre el cliente que realiza la petición y el sistema de destino.
A menudo, como desarrollador web, querrás instalar Apache tanto en tu servidor web como en tu sistema local, ya que de este modo podrás desarrollar y probar las aplicaciones localmente antes de ponerlas en producción.
Instalación de Homebrew
Para instalar Apache usaremos Homebrew, el famoso gestor de paquetes de macOS. Para ver cómo instalar Homebre en detalle y saber cómo funciona, consulta el tutorial de introducción a Homebrew. Para una instalación rápida, sigue estos pasos:
- Para instalar Homebrew necesitas instalar las Command Line Tools si es que no están ya instaladas en tu sistema.. Para ello, abre una ventana de línea de comandos e introduce el siguiente comando, aceptando la instalación de las Command Line Tools en caso de que se muestre un mensaje de confirmación:
xcode-select --install
- Luego introduce el siguiente comando para instalar Homebrew, introduciendo tu contraseña de administrador en caso de que se te pregunte por ella:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- Finalmente, ejecuta el comando
brew doctor
para verificar que la instalación ha concluido con éxito.
De haber algún error, seguramente tengas que actualizar macOS.
Cómo instalar Apache
macOS ya trae Apache preinstalado. Sin embargo, es recomendable instalar otra versión para evitar problemas de compatibilidad con futuras versiones de macOS. Tras instalar Apache seguramente querrás instalar PHP y MySQL. Por ello, opcionalmente puedes usar alguna herramienta todo en uno como MAMP.
- Instalación de MAMP: Cómo instalar MAMP en macOS
Sin embargo, en este tutorial nos centraremos en la instalación de Apache por separado. Seguidamente, en otro tutorial, también veremos cómo instalar PHP en macOS. Para instalar Apache en macOS mediante Homebrew sigue los pasos que se describen a continuación:
- En caso de que Apache esté funcionando o si no estás seguro de su estado, tendrás que parar la ejecución de Apache. Para ello, usa este comando:
sudo apachectl stop
- Puede que Apache se reinicie debido a algún script que se siga ejecutando. Usa el siguiente comando para desactivarlos:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
- Luego introduce el siguiente comando para instalar Apache mediante Homebrew:
brew install httpd
- Una vez finalizada la instalación, introduce el siguiente comando para iniciar Apache:
brew services start httpd
Y con esto ya estará Apache instalado. Además se iniciará cuando reinicies el sistema. Si accedes a la URL http://localhost:8080/
desde tu navegador deberías ver un mensaje indicando que el servidor está funcionando. Tal y como ves, Apache está usando el puerto 8080
, que quizás no es el más adecuado. A continuación veremos cómo cambiarlo.
Cómo configurar Apache
Vamos a configurar Apache y a dejarlo listo para que puedas desarrollar aplicaciones en local. Para ello modificaremos el archivo de configuración de Apache, que podrás editar mediante este comando:
open -e /usr/local/etc/httpd/httpd.conf
En este archivo, cada línea representa una opción. Las líneas que comienzan por el símbolo #
están comentadas, por lo que no se aplican a la configuración del servidor. Para que sí tengan efecto, tendrás que eliminar el símbolo #
del inicio de las mismas.
El archivo httpd.conf
siempre debe ser editado con un editor de texto plano sin formato.
A continuación vamos a ver diversos parámetros que deberías cambiar.
Cambia el puerto de Apache
Una vez hayas abierto el archivo de configuración de Apache, busca la línea en la que pone Listen 8080
. Deberás cambiar el puerto 8080
por el puerto 80
:
Listen 80
Cambia el usuario de Apache
Apache funciona por defecto como un proceso ejecutado por el usuario _www
y el grupo _www
. Dado que vamos a modificar los directorios que Apache usa por defecto, es recomendable cambiar tanto el usuario como el grupo de Apache para evitar errores con los permisos en el directorio home
.
Para cambiar el usuario de Apache, edita el archivo de configuración de Apache y modifica el valor de la opción User
, reemplazando nombre_usuario
por tu nombre de usuario en el sistema:
User nombre_usuario
Para cambiar el grupo de Apache, modifica el valor de la opción Group
, reemplazando el valor por defecto por staff
:
Group staff
Configura el nombre del servidor
Para configurar el nombre del servidor, edita el archivo de configuración de Apache y elimina el comentario #
de la opción ServerName:
ServerName localhost
Configura el email del administrador
Puedes cambiar el email del administrador del servidor, aunque lo cierto es que si vas a usar tu servidor localmente no es imprescindible. Para ello, edita el archivo de configuración de Apache, elimina el comentario #
de la opción ServerAdmin y reemplaza el email que se mostrará por el tuyo:
ServerAdmin nombre@dominio.tld
Activa los módulos rewrite y deflate
A continuación vamos a editar el módulo mod_rewrite de Apache, que permitirá que las URLs sean reescritas en base a ciertas reglas, como pueden ser reglas personalizadas, variables de entorno, fechas o cabeceras HTTP.
Para activar el módulo rewrite debes editar el archivo de configuración de Apache, buscar la línea que comienza por LoadModule rewrite_module
y eliminar el símbolo #
del inicio de la misma para borrar el comentario de la línea:
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Ahora , entre otras muchas cosas, ya podrás crear redirecciones.
El módulo mod_deflate permite el uso del filtro DEFLATE, que permite que la respuesta del servidor se comprima, habitualmente en formato gzip, antes de ser enviada al cliente. Para activarlo, busca la línea que comienza por LoadModule rewrite_deflate
y eliminar el símbolo #
del inicio de la misma:
LoadModule deflate_module lib/httpd/modules/mod_deflate.so
Cambia la carpeta raíz de Apache
Vamos a modificar el directorio raíz desde el que Apache sirve sus archivos, que por defecto es el directorio /usr/local/var/www
. Sin embargo, dado que nuestra intención es la de crear un servidor local desarrollo, vamos a reubicar este directorio a un subdirectorio de la carpeta Home
para así evitar posibles problemas de permisos.
Para cambiar el directorio raíz de Apache en macOS, edita el archivo de configuración de Apache y busca la opción DocumentRoot
. Establece el siguiente directorio o el que prefieras, reemplazando nombre_usuario
por tu nombre de usuario en el sistema:
DocumentRoot "/Users/nombre_usuario/Site"
Además, también debes modificar el directorio en la siguiente línea, que debería estar después de la anterior:
<Directory "/Users/nombre_usuario/Site">;
Además, cambia también el valor de la opción AllowOverride
de none
a All
, ya que de este modo se permitirá la sobrescritura de todas las reglas de Apache en el archivo .htaccess
:
AllowOverride All
Hemos cambiado el directorio, pero todavía debemos crearlo en el sistema. Para ello usa el comando mkdir
:
mkdir ~/Site
Cambiar la localización del log
Vamos a modificar la localización del log de errores de Apache. Para ello, vamos a crear primero el directorio /usr/local/log/
y a asignarle los permisos adecuados:
- Crea el directorio sudo
/usr/local/log
mediante el comandomkdir
:sudo mkdir /usr/local/log
- Luego crea el directorio
/usr/local/log/httpd
:sudo mkdir /usr/local/log/httpd
- Cambia los permisos de grupo del directorio que hemos creado:
sudo chgrp -R staff /usr/local/log/httpd
- Cambia los permisos de usurio del directorio que hemos creado:
sudo chmod -R ug+w /usr/local/log/httpd/
Tras esto, edita el archivo de configuración de Apache y modifica la opción ErrorLog
estableciendo la siguiente ruta:
ErrorLog "/usr/local/log/httpd/error_log"
Luego guarda el archivo y cierra el editor.
Reinicia el servidor Apache
Para reiniciar Apache en macOS basta con que uses el comando que ves a continuación:
sudo apachectl -k restart
Verifica la configuración de Apache
Vamos a comprobar que todo funciona correctamente. Para ello asegúrate de haber reiniciado Apache primero. Luego crea un archivo llamado index.html
en el directorio /Users/nombre_usuario/Site/
y agrega el siguiente contenido en su interior:
<html lang="es">
<head>
<meta charset="utf-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Probando Apache</title>
</head>
<body>
Hail to the king, baby! Si ves esto, es que Apache funciona correctamente en macOS!
</body>
El código anterior no es más que una plantilla básica HTML5. Guarde el archivo y luego accede a la URL http://localhost/
en tu navegador. Deberías poder ver por pantalla la representación del archivo HTML que has creado:
Si ves algún error, seguramente te hayas saltado algún paso. Un error común ocurre cuando algunos editores de texto agregan un tipo de comillas inadecuado. Edita siempre el archivo de configuración con un editor de texto plano.
Tras instalar Apache quizás te interese instalar PHP y configurarlo para que funcione con Apache. Para ello consulta el siguiente tutorial:
- Instalación de PHP en macOS: Cómo instalar y configurar PHP en macOS
Y esto ha sido todo.
He seguido paso a paso tu guia, de configurar apache y php:
Antes de hacer nada le daba a localhost y me ponia «its work»
ahora pongo localhost y me rellena automaticamente a esto «http://localhost/index.html/index.html/index.html/» y me aparece este mensaje
«Not Found
The requested URL was not found on this server.»
Me podrias ayudar?
Gracias por tu guía tan precisa y tan clara. Me ha funcionado perfectamente a la primera, cosa que muy pocas veces he podido decir.