Para realizar una instalación personalizada de Nginx en macOS partiendo del código fuante, es necesario preparar el entorno con las dependencias adecuadas de OpenSSL y PCRE. A continuación, se detalla el procedimiento técnico para lograr una compilación exitosa.
1. Obtención de los paquetes fuente
Primero, definimos un directorio de trabajo para descargar y extraer los archivos necesarios. Utilizaremos las versiones específicas que garantizan compatibilidad, especialmente PCRE 8.45 (evitando PCRE2 para prevenir errores de cabeceras durante la compilación).
# Directorio de trabajo para fuentes
cd /usr/local/src
# Descarga de Nginx y sus dependencias principales
curl -O http://nginx.org/download/nginx-1.20.1.tar.gz
curl -L -O https://www.openssl.org/source/openssl-3.0.0.tar.gz
curl -L -O https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
# Extracción de los archivos comprimidos
tar -zxvf nginx-1.20.1.tar.gz
tar -zxvf openssl-3.0.0.tar.gz
tar -zxvf pcre-8.45.tar.gz
2. Preparación del directorio de destino
Es recomendable organizar la instalación en /usr/local, utilizando enlaces simbólicos para facilitar futuras actualizaciones de versión.
cd /usr/local
sudo mkdir nginx-1.20.1
sudo ln -sf nginx-1.20.1 nginx
# Ajuste de permisos para permitir la instalación sin privilegios de root constantes
sudo chown -R $USER:staff nginx-1.20.1 nginx
3. Configuración del proceso de compilación
En lugar de ejecutar el comando directamente en la terminal, crearemos un script de configuración llamado setup_nginx.sh dentro de la carpeta de Nginx para mantener un registro de los parámetros utilizados.
cd /usr/local/src/nginx-1.20.1
# Creación del script de configuración
cat <<eof> setup_nginx.sh
./configure \\
--with-debug \\
--prefix=/usr/local/nginx \\
--with-openssl=/usr/local/src/openssl-3.0.0 \\
--with-pcre=/usr/local/src/pcre-8.45
EOF
# Ejecución del script
bash setup_nginx.sh
</eof>
Al finalizar la configuración, el sistema mostrará un resumen detallando las rutas de los binarios, archivos de configuración y logs, confirmando que las librerías PCRE y OpenSSL han sido detectadas correctamente.
4. Compilación e instalación
Una vez generado el Makefile, procedemos a compilar el código fuente y transferir los binarios al prefijo configurado anteriormente.
make
make install
Para verificar que los archivos se han distribuido correctamente en el sistema, podemos listar el contenido del directorio de instalación:
ls -la /usr/local/nginx/
# Debería mostrar los directorios: conf, html, logs, sbin
5. Configuración del entorno y ejecución
Para invocar el comando nginx desde cualquier ubicación de la terminal, añadimos la ruta del binario a nuestro perfil de shell (.zshrc o .bashrc, dependiendo de la configuración del sistema).
# Añadir al archivo de configuración de la shell
echo 'export NGINX_HOME=/usr/local/nginx' >> ~/.zshrc
echo 'export PATH=$PATH:$NGINX_HOME/sbin' >> ~/.zshrc
source ~/.zshrc
Finalmente, iniciamos el servicio y realizamos una petición de prueba para confirmar que el servidor web está respondiendo:
# Iniciar el proceso
nginx
# Verificar la respuesta del servidor
curl -I localhost
Si la instalación fue exitosa, el servidor devolverá una cabecera HTTP 200 OK y el contanido HTML predeterminado de bienvenida de Nginx.