Apache en Big Sur y M1

Ya era tiempo de que configurara a mi Verin para ser desarrollador… sigh. Bueno, empecemos por Apache.

Para esta instalación seguí la guía de Andy Miller (y esta entrada es una versión simplificada y traducida, básicamente).

Lo primero que hay que hacer es instalar XCode:

xcode-select --install

Además, esta instalación requiere de Homebrew en M1, y a lo largo de esta guía se asumirá que se ejecuta una terminal a través de Rosetta 2.

Aparentemente, hay que instalar OpenSSL en Big Sur antes que nada, para evitar ciertos problemas después. El punto es que yo confío en la guía:

brew install openssl

El siguiente paso es desconfiar de la versión preinstalada y optar por los repos de Homebrew, mismos que suelen estar más actualizados que las instalaciones predeterminadas. Por supuesto, antes de instalar Apache con Homebrew es necesario desinstalar el Apache que viene preinstalado:

sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

Posteriormente, instalamos la copia de Hombrew:

brew install httpd

Y lo agregamos a la lista de servicios que inician automáticamente:

brew services start httpd

La configuración predeterminada apunta al puerto 8080, lo que no luce exactamente bonito. Pero, para empezar, puedes probar que funciona visitando http://localhost:8080.

Si ves una página que dice It works! podemos continuar.

Configuración de Apache

La idea ahora es configurar el nuevo Apache que instalamos con Homebrew para nuestras necesidades. El archivo de configuración se encuentra en /usr/local/etc/httpd/httpd.conf, y podemos editarlo directamente en terminal con vim:

vim /usr/local/etc/httpd/httpd.conf

Lo primero que hay que cambiar es el puerto, de :8080 a :80. Para hacerlo, podemos escribir en vim lo siguiente:

  • Esc, para entrar al modo de comando.
  • /, para entrar al modo de búsqueda.
  • La cadena “Listen” (sin comillas), como el texto a buscar.
  • Enter, para iniciar la búsqueda.

Se puede dar Enter tantas veces sean necesarias para llegar a la instancia que buscamos.

Para editar con vim entramos al modo de inserción de texto con i y salimos con Esc. Para borrar uno de los 80 adicionales usamos la x para borrar carácter por carácter (para eso tenemos que estar en modo comando, al cual podemos entrar con Esc).

El punto es, hay que cambiar la línea:

Listen 8080

por la línea:

Listen 80

Si eres el único usuario que va a desarrollar en la Mac, lo más conveniente es tener todo en tu directorio personal, en ~/Sites, para eso hay que cambiar dos lugares:

DocumentRoot "/usr/local/var/www"

A:

DocumentRoot /Users/tu_usuario/Sites

Y:

<Directory "/usr/local/var/www">

A:

<Directory "/Users/your_user/Sites">

Debajo de ese Directoy viene algo que dice AllowOverride None. Solo hay que cambiarlo a un AllowOverride All:

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All

Ya para casi terminar, quita el gatito al inicio de la línea que carga el módulo mod_rewrite:

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

Ese cambio de directorio hará que tengas problemas con permisos si no cambias el usuario y el grupo (en el mismo archivo de configuración), así que asegúrate de cambiar a los siguientes valores:

User tu_usuario
Group staff

Por último, cierra el archivo y crea el directorio y un archivo de prueba, con:

mkdir ~/Sites
echo "<h1>Apache en mi directorio :D</h1>" > ~/Sites/index.html

Ahora sí, solo reinicia y reza porque todo haya quedado bien:

brew services stop httpd
brew services start httpd

Y, en teoría, al visitar http://localhost debes ver el texto Apache en mi directorio 😀 (sin emoticón, claro).



Publicado: 2021-01-11





¿Tienes algún comentario?

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *