Ambiente De Desarrollo PHP MAC OS
He tenido la oportunidad de probar diferentes soluciones de ambientes de desarrollo en MAC OS, durante un tiempo trabaje con MAMP (https://www.mamp.info/en/mamp-pro/mac/) y luego cuando salio Herd Laravel (https://herd.laravel.com/) tambien trabajé con este, sin embargo he tenido diversos inconvenientes con manejo de extensiones, modificaciones al php.ini, manejo de sistemas en PHP nativo sin framework, problemas con respuestas inesperadas de parte del servidor, inasistencia a temas de OpenSSL, etc. Debido a esto decidi emplear la mejor manera que a la fecha me ha servido para trabjar sobre IOS, a continuacion relaciono el manual de instalacion del ambiente de Apache + PHP + MySQL en IOS, una manera facil, sencilla de configurar y sobre todo muy eficiente y funcional.
Aunque se vea largo el documento solo es porque se ha buscado detallar lo mejor posible el proceso pero es muy simple de hacerlo.
INSTALACION DE APACHE
Herramientas de línea de comandos de XCode
Herramientas de línea de comandos de XCode
xcode-select --installInstalacion de Homebrew
Este proceso depende en gran medida del administrador de paquetes de macOS llamado Homebrew . Con el brewcomando puedes agregar fácilmente una potente funcionalidad a tu Mac, pero primero tenemos que instalarla. Este es un proceso simple, pero debe iniciar su aplicación Terminal ( /Applications/Utilities/Terminal) y luego ingresar:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Simplemente siga las indicaciones del terminal e ingrese su contraseña cuando sea necesario. Esto puede tomar unos pocos minutos.
Si se trata de una instalación nueva y no tiene la ruta configurada correctamente, puede seguir los "próximos pasos" de instalación que ya están personalizados para usted, o puede agregar manualmente las siguientes rutas a su .bashrco .zshrc:
eval "$(/usr/local/bin/brew shellenv)"Ahora puede probar su instalación para asegurarse de que la haya instalado brewcorrectamente, simplemente escriba:
brew --versionLa respuesta deberá ser algo similar a esto Homebrew 4.1.10
Probablemente también deberías ejecutar el siguiente comando para asegurarte de que todo esté configurado correctamente, esto le indicará si necesita corregir algo.:
brew doctorInstalar OpenSSL
Simplemente ejecute esto ahora:
brew install opensslInstalar Apache2
Si ya tiene el Apache integrado ejecutándose, primero deberá apagarlo y eliminar todos los scripts de carga automática. Realmente no está de más ejecutar todos estos comandos en orden, incluso si se trata de una instalación nueva:
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/nullAhora necesitamos instalar la nueva versión proporcionada por Brew:
brew install httpdSin opciones, httpd no será necesario compilarlo desde el código fuente, por lo que se instala con bastante rapidez. Al finalizar deberías ver un mensaje como: 🍺 /usr/local/Cellar/httpd/2.4.54_1: 1,662 files, 31.9MB
Ahora solo necesitamos configurar cosas para que nuestro nuevo servidor Apache se inicie automáticamente.
brew services start httpdAhora ha instalado Apache de Homebrew y lo ha configurado para que se inicie automáticamente con una cuenta privilegiada. Ya debería estar ejecutándose, así que puedes intentar acceder a tu servidor en un navegador apuntándolo a , deberías ver un encabezado simple que dice "¡Funciona!". http://localhost:8080

Consejos para solucionar problemas Si recibe un mensaje que indica que el navegador no puede conectarse al servidor, primero verifique que el servidor esté activo.
ps -aef | grep httpdDebería ver algunos procesos httpd si Apache está en funcionamiento. Intente reiniciar Apache con:
brew services restart httpdPuede ver el registro de errores de Apache en una nueva pestaña/ventana de Terminal durante un reinicio para ver si algo no es válido o está causando un problema:
tail -f /usr/local/var/log/httpd/error_logApache se controla mediante el brew servicescomando, por lo que algunos comandos útiles para usar son:
brew services stop httpd
brew services start httpd
brew services restart httpdInstalar VSCode
Podemos hacer uso de HomeBrew e instalar VSCode y el codecomando CLI que lo acompaña de una sola vez con:
brew install --cask visual-studio-codeSi ya tiene instalado Visual Studio Code, puede crear fácilmente un codeenlace simbólico con:
ln -s /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code /usr/local/bin/codeConfiguracion de Apache
Ahora que tenemos un servidor web en funcionamiento, lo que queremos hacer es realizar algunos cambios de configuración para que funcione mejor como servidor de desarrollo local.
En la última versión de Brew, debe configurar manualmente el puerto de escucha predeterminado a 8080, 80por lo que necesitaremos editar el archivo de configuración de Apache /usr/local/etc/httpd/httpd.conf.
Si siguió las instrucciones anteriores, debería poder usar Visual Studio Code para editar sus archivos usando el codecomando Terminal.
code /usr/local/etc/httpd/httpd.conf
Busca la línea que dice Listen 8080 y cambiala a Listen 80
A continuación lo configuraremos para usar para cambiar la raíz del documento para Apache. Esta es la carpeta desde donde Apache busca servir el archivo. De forma predeterminada, la raíz del documento está configurada como /usr/local/var/www. Como se trata de una máquina de desarrollo, supongamos que queremos cambiar la raíz del documento para que apunte a una carpeta en nuestro propio directorio de inicio.
Busque el término DocumentRooty debería ver la siguiente línea:
DocumentRoot "/usr/local/var/www"Cambie esto para que apunte a su directorio de usuarios donde your_user sea el nombre de su cuenta de usuario:
DocumentRoot "/Users/your_user/Sites"También debe cambiar la <Directory> referencia de la etiqueta justo debajo de la línea DocumentRoot. Esto también debería cambiarse para que apunte a la nueva raíz del documento:
<Directory "/Users/your_user/Sites">En ese mismo <Directory> bloque encontrarás una AllowOverride configuración, esta se debe cambiar de la siguiente manera:
#
# 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 AllAdemás, ahora deberíamos habilitar mod_rewrite, que está comentado de forma predeterminada. Busque mod_rewrite.so y descomente la línea eliminando el encabezado #.
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.soConfigurar grupo de usuario
Ahora tenemos la configuración de Apache apuntando a una Sitescarpeta en nuestro directorio de inicio. Sin embargo, todavía existe un problema. De forma predeterminada, Apache se ejecuta como usuario _www y grupo _www. Esto causará problemas de permisos al intentar acceder a archivos en nuestro directorio de inicio. Aproximadamente en un tercio del httpd.conf archivo hay dos configuraciones para configurar User y Group. Cámbielos para que coincidan con su cuenta de usuario (reempláce your_user con su nombre de usuario real), con un grupo de staff:
User your_user
Group staffNombre del servidor
A Apache le gusta tener un nombre de servidor en la configuración, pero está deshabilitado de forma predeterminada, así que busque:
#ServerName www.example.com:8080A Apache le gusta tener un nombre de servidor en la configuración, pero está deshabilitado de forma predeterminada, así que busque:
ServerName localhostCarpeta de sitios
Ahora, necesita crear una Sites carpeta en la raíz de su directorio de inicio. Puedes hacer esto en tu terminal o en Finder. En esta nueva Sites carpeta, cree una carpeta simple index.html y coloque contenido ficticio como: <h1>My User Web Root</h1>.
mkdir ~/Sites
echo "<h1>My User Web Root</h1>" > ~/Sites/index.htmlReinicie Apache para asegurarse de que los cambios de configuración hayan surtido efecto:
brew services stop httpd
brew services start httpdAl apuntar su navegador debería mostrar su nuevo mensaje. Si eso funciona, ¡podemos seguir adelante!

INSTALACION DE PHP
Hasta finales de marzo de 2018, todas las elaboraciones relacionadas con PHP se manejaban mediante Homebrew/php pestañas, pero eso ha quedado obsoleto, por lo que ahora usamos lo que está disponible en el Homebrew/core paquete. Este debería ser un conjunto de paquetes mejor mantenido, pero mucho menos completo.
Brew solo admite oficialmente PHP 8.0 a 8.1 , pero estos también deben compilarse, lo cual es bastante lento. Para la última versión de nuestra guía usaremos el nuevo toque de @shivammahtur (https://github.com/shivammathur/homebrew-php) ya que hay muchas versiones (incluida la última PHP 8.2) prediseñadas.
brew tap shivammathur/phpProcederemos instalando varias versiones de PHP y usando un script simple para cambiar entre ellas según sea necesario. No dudes en excluir cualquier versión que no quieras instalar.
brew install shivammathur/php/php@7.4
brew install shivammathur/php/php@8.0
brew install shivammathur/php/php@8.1
brew install shivammathur/php/php@8.2Además, es posible que necesite modificar la configuración de PHP según sus necesidades. Algo común que se debe cambiar es la configuración de la memoria o la date.timezone configuración. Los php.ini archivos para cada versión de PHP se encuentran en los siguientes directorios:
/usr/local/etc/php/7.4/php.ini
/usr/local/etc/php/8.0/php.ini
/usr/local/etc/php/8.1/php.ini
/usr/local/etc/php/8.2/php.iniEn este punto, recomiendo cerrar TODAS las pestañas y ventanas de su terminal. Esto supondrá abrir una nueva terminal para continuar con el siguiente paso. Esto es muy recomendable porque pueden surgir algunos problemas de ruta realmente extraños con los terminales existentes.
Hemos instalado pero no vinculado estas versiones de PHP. Para cambiar a PHP 8.1 por ejemplo podemos escribir:
brew unlink php && brew link --overwrite --force php@8.1Prueba rápida de que estamos en la versión correcta:
php -v
# PHP 8.1.0 (cli) (NTS)
# Copyright (c) The PHP Group
# Zend Engine v4.2.0, Copyright (c) Zend Technologies
# with Zend OPcache v8.1.0, Copyright (c), by Zend Technologiesy para cambiar a 8.2 por ejemplo:
brew unlink php && brew link --overwrite --force php@8.2php -v
# PHP 8.2.0 (cli) (NTS)
# Copyright (c) The PHP Group
# Zend Engine v4.2.0, Copyright (c) Zend Technologies
# with Zend OPcache v8.2.0, Copyright (c), by Zend TechnologiesCONGIGURACIÓN APACHE
Ha instalado correctamente sus versiones de PHP, pero debemos indicarle a Apache que las use. Nuevamente deberá editar el /usr/local/etc/httpd/httpd.conf archivo y desplazarse hasta el final de las LoadModule entradas.
Si ha seguido esta guía correctamente, la última entrada debería ser su mod_rewrite módulo:
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.soDebajo de esto agregue los siguientes libphpmódulos:
#LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so
#LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so
#LoadModule php_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp.so
LoadModule php_module /usr/local/opt/php@8.2/lib/httpd/modules/libphp.soSolo podemos tener un módulo procesando PHP a la vez, así que por ahora hemos dejado nuestra php@8.2 entrada sin comentar mientras que todos los demás están comentados. Esto le indicará a Apache que use PHP 8.2 para manejar las solicitudes de PHP. ( Agregaremos la capacidad de cambiar de versión de PHP más adelante ).
También debes configurar los índices de directorio para PHP explícitamente, así que busca este bloque:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>y reemplazarlo con esto:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>Guarde el archivo y detenga Apache, luego comience nuevamente , ahora que hemos instalado PHP:
brew services stop httpd
brew services start httpdCAMBIAR DINAMICAMENTE DE VERSION DE PHP
Codificamos Apache para usar PHP 8.2 , pero realmente queremos poder cambiar entre versiones. Afortunadamente, algunas personas trabajadoras ya hicieron el trabajo duro por nosotros y escribieron un pequeño script de conmutación PHP muy útil .
Instalaremos el sphp script en el estándar de Brew /usr/local/bin:
curl -L https://raw.githubusercontent.com/rhukster/sphp.sh/main/sphp.sh > /usr/local/bin/sphp
chmod +x /usr/local/bin/sphpProbando el cambio de PHP
Después de haber completado estos pasos, debería poder cambiar su versión de PHP usando el comando sphpseguido de un valor de dos dígitos para la versión de PHP:
sphp 8.1Probablemente tendrás que ingresar tu contraseña de administrador, y debería darte algunos comentarios:
#Cambiar a una version especifica
sphp 8.1
#Validar nueva versión
php -v
PHP 8.1.13 (cli) (built: Dec 7 2022 23:32:13) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.13, Copyright (c) Zend Technologies
with Zend OPcache v8.1.13, Copyright (c), by Zend TechnologiesINSTALAR MYSQL
Para instalar MySQL en macOS utilizando Homebrew, puedes seguir estos pasos:
- Abre una terminal en tu Mac. Puedes encontrar la Terminal en la carpeta "Utilidades" dentro de la carpeta "Aplicaciones".
brew install mysqlHomebrew descargará e instalará MySQL y sus dependencias.
- Después de la instalación, puedes iniciar el servidor MySQL usando el siguiente comando:
brew services start mysqlEsto iniciará el servidor MySQL y lo configurará para que se inicie automáticamente en el arranque.
- Puedes verificar que MySQL se está ejecutando correctamente utilizando el siguiente comando:
mysql -VEsto debería mostrar la versión de MySQL instalada.
- Ahora puedes acceder a MySQL ejecutando el siguiente comando y siguiendo las instrucciones para establecer una contraseña para el usuario "root" de MySQL:
mysql_secure_installationEsto te permitirá configurar la seguridad básica de MySQL.
