- Advertencia: Demora en instalar porque instala varias dependencias
- Instalación de Homebrew (Prerrequisito)
xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# === ACTUALIZA BREW ===
brew update && brew upgrade
2. Instalación e inicio de Apache (Homebrew)
# === INSTALA APACHE (httpd) ===
brew install httpd
sudo brew services start httpd
brew services start httpd
3. Visita http://localhost:8080. Ver en la página «It works!». Ahora hay que configurarlo para el puerto 80
sudo nano /usr/local/etc/httpd/httpd.conf
# Presiona Ctrl + W y escribe:
Listen 8080
# Cámbiala por:
Listen 80
# Presiona Ctrl + W y escribe:
ServerName
# Cámbiala por:
ServerName localhost:8080
# Presiona: Ctrl + O → Enter → Ctrl + X
sudo brew services stop httpd
sudo /usr/local/opt/httpd/bin/httpd -k start
sudo chmod +s /usr/local/opt/httpd/bin/httpd
4. Instalar PHP
# === AGREGA TAP PARA VERSIONES DE PHP ===
brew tap shivammathur/php
# === INSTALA PHP 5.6 Y 8.3 ===
brew install shivammathur/php/php@5.6
brew install shivammathur/php/php@8.3
5. Instalar Múltiples Versiones de PHP
# Verifica qué versiones de PHP tienes instaladas
brew list | grep php
brew unlink php@8.3
brew link php --force --overwrite
php -v
# Debe aparecer algo parecido a esto:
PHP 8.4.13 (cli) (built: Sep 23 2025 14:14:32) (NTS)
Copyright (c) The PHP Group
Built by Homebrew
Zend Engine v4.4.13, Copyright (c) Zend Technologies
brew services start php
brew services list
6. Configurar Apache + Php-Fpm 8.4 en macOS
sudo apachectl -v
nano ~/.zprofile
# Contenido
# Homebrew (Intel)
eval "$(/usr/local/bin/brew shellenv)"
# PHP 7.4 (si lo instalas manualmente más adelante)
export PATH="$HOME/php74/bin:$PATH"
# PHP 8.4 FPM
export PATH="/usr/local/Cellar/php/8.4.13/sbin:$PATH"
# Luego recarga el perfil
source ~/.zprofile
# Comprueba PHP-FPM:
php-fpm -v
# Debe aparecer como esto:
PHP 8.4.13 (fpm-fcgi) (built: Sep 23 2025 14:14:32) (NTS)
Copyright (c) The PHP Group
Built by Homebrew
Zend Engine v4.4.13, Copyright (c) Zend Technologies
# habilitar los módulos
sudo nano /usr/local/etc/httpd/httpd.conf
# Busca las siguientes líneas y elimínales el # al inicio si están comentadas:
LoadModule actions_module libexec/apache2/mod_actions.so
LoadModule alias_module libexec/apache2/mod_alias.so
LoadModule proxy_module libexec/apache2/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache2/mod_proxy_fcgi.so
# Para ver el estado del Apache, instalar lynx
brew install lynx
sudo apachectl status
# Comprueba y vincula el binario PHP-FPM al path:
php-fpm -v
ls /usr/local/Cellar/php/8.4.13/sbin/php-fpm
echo 'export PATH="/usr/local/Cellar/php/8.4.13/sbin:$PATH"' >> ~/.zprofile
source ~/.zprofile
which php-fpm
php-fpm -v
nano /usr/local/etc/php/8.4/php-fpm.d/www.conf
# Busca está línea:
listen = 127.0.0.1:9000
# Reemplaza por
listen = /usr/local/var/run/php-fpm.sock
# Descomentar
listen.owner = _www
listen.group = _www
listen.mode = 0660
#Matar proceso
pkill php-fpm
# Iniciar proceso
sudo php-fpm
# Ahora el socket debería existir:
ls -l /usr/local/var/run/php-fpm.sock
# Resultado similar:
iMac-Michael:~ imac$ ls -l /usr/local/var/run/php-fpm.sock
srw-rw---- 1 _www _www 0 Oct 5 16:13 /usr/local/var/run/php-fpm.sock
# Configurar Apache
sudo nano /usr/local/etc/httpd/httpd.conf
# En tu httpd.conf o en el VirtualHost de tu sitio, verifica que la carpeta raíz tenga:
<Directory "/usr/local/var/www">
AllowOverride All
Require all granted
</Directory>
# Por defecto dice: AllowOverride None
# AllowOverride All → permite que .htaccess afecte la configuración del directorio.
# Require all granted → da acceso a todos los usuarios locales (localhost).
# Luego reinicia Apache:
sudo apachectl restart
7. Probar el PHP
Crear la carpeta php84
en el DocumentRoot
sudo mkdir -p /usr/local/var/www/php84
sudo chown -R _www:_www /usr/local/var/www/php84
sudo chmod -R 755 /usr/local/var/www/php84
sudo nano /usr/local/var/www/php84/index.php
Pegar y guardar:
<?php
phpinfo();
?>
sudo nano /usr/local/var/www/php84/.htaccess
Pegar y guardar:
# Archivo índice por defecto
DirectoryIndex index.php index.html
# Evitar listado de directorios
Options -Indexes
# PHP-FPM handler
<FilesMatch \.php$>
SetHandler "proxy:unix:/usr/local/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>
# Verificar permisos de los archivos
ls -la /usr/local/var/www/php84
# Si está con root cambiar permisos
sudo chown _www:_www /usr/local/var/www/php84/.htaccess
sudo chmod 644 /usr/local/var/www/php84/.htaccess
sudo chown _www:_www /usr/local/var/www/php84/index.php
sudo chmod 644 /usr/local/var/www/php84/index.php
# Reiniciar Apache
sudo apachectl restart
Instalar MariaDB (cuidado con posibles errores)
brew install mariadb
brew services start mariadb
sudo mysql_secure_installation