Apache en Big Sur y M1
Publicado: 2021-01-11Ya 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).