- Parte uno de una serie de dos partes para configurar un entorno de desarrollo Apache/PHP en macOS
- Obtener las últimas actualizaciones del sistema operativo
- Instalar Xcode
- Instalar Homebrew
- Crear directorios de archivos de registro de Apache
- Instalar y configurar Apache
- Cambia el puerto de escucha
- Habilita módulos útiles de Apache
- Cambiar la configuración de usuario y grupo de Apache
- Configuración del administrador del servidor Apache y del nombre del servidor
- Cambia la raíz del documento, el directorio y los overrides
- Set Apache Error Log Location
- Crear una carpeta de sitios
- Reiniciar Apache
Parte uno de una serie de dos partes para configurar un entorno de desarrollo Apache/PHP en macOS
Este artículo está dirigido a los desarrolladores web que quieren una instalación del servidor web Apache como parte de su configuración del entorno de desarrollo en su Mac.
Si eres un desarrollador de PHP, entonces este artículo es un prerrequisito para el siguiente artículo que te guiará a través de la instalación de PHP usando Homebrew y PECL. Un enlace a ese artículo se puede encontrar en la parte inferior de esta página.
Como desarrollador, solía confiar en la versión de Apache que venía precargada con el sistema operativo en mi MacBook Pro. Con las reglas de seguridad siempre cambiantes en macOS, he decidido cambiar todo mi enfoque y en su lugar deshabilitar la versión distribuida de Apache y utilizar una configuración completamente de Homebrew. Este nuevo enfoque permite más flexibilidad para el versionado y seguirá funcionando en todas las versiones de macOS.
Estas instrucciones funcionan igual para macOS 10.13 High Sierra y 10.14 Mojave. No he probado en versiones anteriores de macOS, pero debería funcionar de forma similar. Además, no tienes que empezar con una instalación fresca del sistema operativo para usar este artículo, pero he visto que ocurren algunas cosas extrañas cuando se actualiza a Mojave frente a una instalación fresca (por ejemplo, falta completamente el archivo de extensión del módulo mod_deflate.so después de la actualización). Recomiendo una instalación fresca, pero si usted está desafiando una actualización en su lugar, prepárate para perseguir algunos archivos y rutas.
¡Comencemos!
Obtener las últimas actualizaciones del sistema operativo
Si usted acaba de hacer una instalación fresca del sistema operativo, probablemente no tendrá que hacer esto.
Instalar Xcode
Si no estás interesado en instalar toda la aplicación Xcode está bien, el comando de instalación de Homebrew instalará las herramientas básicas de línea de comandos de Xcode que necesita. Sin embargo, recomiendo la instalación completa, especialmente si está ejecutando Mojave. Para ello, puede ejecutar el siguiente comando desde el terminal.
xcode-select --install
Instalar Homebrew
El siguiente comando instalará Homebrew.
(Tenga en cuenta que el siguiente comando es una sola línea que se ha envuelto debido a las restricciones de ancho de página en Medio. Asegúrese de copiar la línea completa).
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Crear directorios de archivos de registro de Apache
Apache viene preconfigurado con sus propios directorios de registro, pero vamos a crear nuestra propia carpeta «/usr/local/log/» para que sean fáciles de encontrar cuando lo necesitemos. Si vas a pasar al siguiente artículo para instalar PHP, vamos a utilizar esta misma ubicación de archivo de registro para los registros de PHP también, y tener todos los registros en un solo lugar.
Sigue estos pasos para crear los directorios apropiados y establecer sus permisos. No haga caso de cualquier mensaje «ya existe» que pueda obtener.
$ sudo mkdir /usr/local/log$ sudo mkdir /usr/local/log/httpd$ sudo chgrp -R staff /usr/local/log/httpd$ sudo chmod -R ug+w /usr/local/log/httpd/
Instalar y configurar Apache
MacOS 10.13 High Sierra y 10.14 Mojave vienen con Apache preinstalado. Sin embargo, en lugar de utilizar la versión entregada, vamos a instalar Apache a través de Homebrew y luego configurarlo para que se ejecute en el puerto 80.
Si ya tienes el Apache preinstalado en ejecución, será necesario apagarlo primero y eliminar cualquier script de carga automática. No está de más ejecutar los dos comandos siguientes, incluso en una instalación nueva.
(Tenga en cuenta que el segundo comando es una sola línea que se ha envuelto debido a las restricciones de ancho de página en Medium. Asegúrese de copiar toda la línea).
$ sudo apachectl stop
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
Ahora instale la nueva versión de Apache proporcionada por Homebrew.
$ brew install httpd
Una vez que haya terminado, ejecute el siguiente comando para iniciar el servicio de Apache y asegúrese de que se reinicia automáticamente al iniciar la sesión.
$ brew services start httpd
Ahora ha instalado la versión de Homebrew de Apache y lo ha configurado para que se inicie automáticamente al reiniciar. Ya debería estar funcionando, así que deberías poder apuntar tu navegador a http://localhost:8080 y ver una simple cabecera que dice: «¡Funciona!».
Nota, actualmente estamos apuntando al puerto 8080. Vamos a cambiar eso en los siguientes pasos. Ahora que tenemos un servidor web de trabajo, vamos a querer hacer algunos cambios de configuración para que funcione más a nuestro gusto … o realmente sólo mi gusto ;-).
Abramos el archivo de configuración de Apache:
$ open -e /usr/local/etc/httpd/httpd.conf
Cambia el puerto de escucha
Desplázate hacia abajo y busca la línea que dice, «Listen 8080» y cámbiala por;
Listen 80
Habilita módulos útiles de Apache
A continuación puedes habilitar los siguientes dos módulos útiles de Apache. Puedes buscar las dos líneas siguientes y descomentarlas eliminando el hashtag «#» que las encabeza.
Pista: la línea deflate está en medio de la sección LoadModule y la línea rewrite está en la parte inferior de la sección LoadModule.
LoadModule deflate_module lib/httpd/modules/mod_deflate.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Cambiar la configuración de usuario y grupo de Apache
Por defecto Apache se ejecuta con el usuario _www y el grupo _www. Dentro de un rato vamos a establecer nuestro directorio de documentos por defecto en un directorio de «Sitios» en nuestra carpeta de Inicio, y estas configuraciones de usuario y grupo le causarán problemas de permiso al tratar de acceder a los archivos en su directorio de inicio.
Desplácese alrededor de un tercio del camino hacia abajo en su archivo httpd.conf y encontrará dos líneas que establecen el Usuario y el Grupo que Apache se ejecutará bajo. Cámbielas para que coincidan con su cuenta de usuario. Sustituye tu_nombre_de_usuario por el nombre de usuario de tu MacBook y utiliza un nombre de grupo como staff.
User your_username
Group staff
Configuración del administrador del servidor Apache y del nombre del servidor
Encuentra la línea «ServerAdmin» y habilítala eliminando el hashtag «#» inicial (si es necesario) y luego cambia el correo electrónico por el tuyo:
ServerAdmin [email protected]
Habilita el nombre del servidor Apache en la configuración eliminando el hashtag «#» inicial y cambiándolo por localhost:
ServerName localhost
Cambia la raíz del documento, el directorio y los overrides
A continuación vamos a cambiar la raíz del documento para Apache. Esta es la carpeta desde donde Apache busca servir los archivos. Por defecto, la raíz del documento está configurada como /usr/local/var/www. Como estamos creando un entorno de desarrollo y queremos evitar tantos problemas de permisos de carpetas como sea posible, cambiaremos la raíz del documento a una carpeta en nuestro directorio Home (que crearemos en breve).
Continúe desplazándose hacia abajo y encuentre la línea DocumentRoot. Cámbiela para que diga:
DocumentRoot "/Users/your_username/Sites"
A continuación, también tiene que cambiar la referencia de la etiqueta justo debajo de la línea DocumentRoot. Esto debe ser cambiado para apuntar a su nueva raíz del documento también:
<Directory "/Users/your_username/Sites">;
En ese mismo bloque se encuentra un ajuste AllowOverride. Esto debería cambiarse de None para permitir «All» overrides:
AllowOverride All
Set Apache Error Log Location
Por último, vamos a establecer la ubicación del registro de errores de Apache a la carpeta que creamos anteriormente. Desplácese hacia abajo un poco más y encontrar la línea para «ErrorLog» y cambiarlo para que se lea como sigue:
ErrorLog "/usr/local/log/httpd/error_log"
Guardar y salir del editor de texto.
Crear una carpeta de sitios
Utilizar las dos líneas siguientes para crear una carpeta «Sitios» y añadir un índice.html para empezar:
(Tenga en cuenta que el segundo comando es una sola línea que se ha envuelto debido a las restricciones de ancho de página en Medium. Asegúrese de copiar toda la línea).
$ mkdir ~/Sites
$ echo "<h1>It Works in my Sites Folder</h1>;" > ~/Sites/index.html
Reiniciar Apache
Ahora reiniciaremos para asegurarnos de que nuestros ajustes de configuración son correctos:
$ sudo apachectl -k restart
Intente navegar a su localhost en su nueva ubicación: http://localhost
Si esto funciona y ves el mensaje, «Funciona en mi carpeta de sitios» entonces ¡felicidades! Usted tiene una nueva instancia de servidor web que se ejecuta en el puerto 80.
Si usted recibe un error, una causa probable podría ser las comillas dobles utilizadas alrededor de las entradas de directorio en su archivo httpd.conf. A veces los editores de texto las convierten en comillas latinas. Estas comillas son opcionales y pueden eliminarse. Intente eliminar las comillas dobles y reinicie Apache de nuevo.