Saltar al contenido

Instalar Apache, PHP 8.4 y MariaDB (mysql) en macOS ventura con Intel

  1. Advertencia: Demora en instalar porque instala varias dependencias
  2. 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

Publicado enManuales