19 de fevereiro de 2022 - Frederico Marinho

Instalar PHP+Apache+MySQL+phpMyAdmin no MacOS Monterey com homebrew

Nessa nova versão do MacOS, o Monterey, o PHP padrão que já vinha junto do sistema operacional foi removido. Antes só era necessário ativar o servidor, como explico aqui, porém agora é necessário instalar com o homebrew e ainda autenticar para uso. Complicou um pouco, burocratizou um pouco, mas nada que não tenha jeito.

Instalar o homebrew

Se você ainda não tem o homebrew instalado, será necessário fazer isso primeiro. Rode o comando de instalação abaixo no terminal:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Caso não tenha o Command Line Tools do Xcode instalado você será alertado e será necessário pressionar ENTER para instalá-lo primeiro, antes de finalizar com o homebrew. Será necessário também digitar a senha de root algumas vezes durante o processo.

From https://github.com/Homebrew/homebrew-core
 * [new branch] master -> origin/master
Updating files: 100% (6206/6206), done.
HEAD is now at b4a4beeca8d bde: update 3.61.0.0 bottle.
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
 https://docs.brew.sh/Analytics
No analytics data has been sent yet (or will be during this `install` run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
 https://github.com/Homebrew/brew#donations

==> Next steps:
- Run `brew help` to get started
- Further documentation: 
 https://docs.brew.sh

Após essa mensagem, o homebrew estará instalado. Agora você está apto para instalar outros apps.

Instalando o PHP

Adicionar o Formulae do PHP

Digite o comando abaixo para instalar o gestor de pacotes do PHP:

brew tap shivammathur/php

Escolha a versão do PHP desejada

O comando abaixo instala o PHP 7.3

brew install shivammathur/php/php@7.3

As outras opções são:

  • php@5.6
  • php@7.0
  • php@7.1
  • php@7.2
  • php@7.3
  • php@7.4
  • php@8.0 ou somente php
  • php@8.1

Lincar com a versão do PHP:

brew link --overwrite --force php@7.3

Altere para sua versão desejada. Feche o terminal e abra novamente. Digite:

php -v

Você vai ver a versão do PHP ativa no seu MacOS. Para trocá-la, digite novamente o comando de instalação (brew install…) informando a nova versão. Será necessário entrar com o comando abaixo para deslincar a versão anterior e configurar a nova:

brew unlink php && brew link --overwrite --force php@8.1

Configurar o PHP com o Apache nativo do MacOS

Agora o PHP já está instalado, mas ainda precisamos configurar o Apache nativo e mostrar a ele onde está instalado nosso interpretador de códigos.

A burocracia que citei no início do post vem agora. Para usarmos o PHP no Apache nativo do MacOS, vamos precisar criar um certificado que autorize seu uso. Até o Monterey esse processo era opcional, mas agora é necessário ter o PHP Code Signed. Em breve vou criar um post explicando o processo, mas por enquanto siga esse post para fazer a assinatura de código (em inglês).

Particularmente eu prefiro usar o Apache nativo, porém é possível instalá-lo também pelo homebrew. Pretendo criar um post sobre isso futuramente. Por enquanto, tem esse post que pode te ajudar (em inglês).

Depois de finalizar a assinatura de código, siga os passos abaixo para carregar os módulos do PHP no Apache nativo do MacOS:

sudo vi /etc/apache2/httpd.conf

Encontre o bloco de linhas “Loadmodule” e adicione a linha de acordo com o seu equipamento:

Chip Intel

LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so

Chip da Apple

LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so

Reinicie o Apache:

sudo apachectl restart

Agora a versão do PHP configurada já vai estar funcionando.

Uma opção, para quem precisa, é baixar todas as versões do PHP e deixar ativada somente a versão que precisa utilizar no momento (mude o prefixo de acordo com o chip da máquina, conforme explicado acima):

#LoadModule php5_module /usr/local/opt/php@5.6/lib/httpd/modules/libphp5.so
#LoadModule php7_module /usr/local/opt/php@7.0/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.1/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.2/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so
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

PHP 8 e o Apache nativo do MacOS

Um passo extra é necessário para configurar o PHP 8 com o Apache nativo:

sudo vi /etc/apache2/httpd.conf

Adicione a nova linha com o PHP 8 e comente a antiga:

LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so

Adicione no final do arquivo:

<FilesMatch .php$>
 SetHandler application/x-httpd-php
</FilesMatch>

Reinicie o Apache:

sudo apachectl restart

Removendo a versão antiga do homebrew (opcional)

Se você tiver repositórios antigos do PHP e uma versão anterior do homebrew instalada, talvez seja interessante removê-los:

rm -rf $(brew --cellar)/php

Remover Launch Agents e daemons antigos do PHP:

rm -f ~/Library/LaunchAgents/homebrew.mxcl.php*
rm -f /Library/LaunchAgents/homebrew.mxcl.php*
rm -f /Library/LaunchDaemons/homebrew.mxcl.php*

Remover o depreciado homebrew/php, se existir:

brew untap homebrew/php

Limpe o brew:

brew cleanup

Instalando MySQL no Monterey

Depois de finalizar com o PHP e o Apache, falta agora instalar o MySQL e o phpMyAdmin. Siga o post abaixo:

Como instalar MySQL e phpMyAdmin no MacOS

Configurando Virtual Hosts

Como boa prática, é melhor criar um virtual host para cada projeto a ser trabalhado no servidor. Siga os passos do post abaixo:

Como usar Virtual Hosts no Apache do MacOS


Referências:

1

Desenvolvimento web / MacOS / PHP apache / brew / homebrew / mysql / php / php7.3 / php8 / phpmyadmin /

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *