Recommend switching to Docker
Eu finalmente mudei para usar o Docker para desenvolvimento local em macOS. Enquanto o seguinte tutorial funciona para o MacOS Mojave, ele não funcionará para futuras versões do MacOS. Eu recomendo seguir meu último tutorial de instalação do Apache, MySQL, e PHP em macOS usando Docker.
Note: Este post é para novas instalações. Se você instalou Apache, PHP, e MySQL para Mac OS Sierra, leia meu post sobre Atualização de Apache, PHP, e MySQL para MacOS Mojave.
Eu estou ciente do software de servidor web disponível para MacOS, notavelmente MAMP, assim como gerentes de pacotes como brew
. Estes permitem que você comece rapidamente. Mas eles renunciam à experiência de aprendizagem e, como a maioria dos desenvolvedores relatam, pode tornar-se difícil de gerenciar.
O problema é que o macOS roda no topo do UNIX. Portanto, a maioria dos softwares UNIX instala-se facilmente no macOS. Além disso, o Apache e o PHP vêm pré-instalados com macOS. Para criar um servidor web local, tudo que você precisa fazer é configurar o Apache e instalar o MySQL.
Executar Comandos
Primeiro, abra o aplicativo Terminal e mude para o usuário root
para que você possa executar os comandos neste post sem nenhum problema de permissão:
sudo su -
Ativar Apache em macOS
apachectl start
Verifique-o funciona! acessando http://localhost
Ativar PHP para Apache
Primeiro, faça uma cópia de segurança da configuração padrão do Apache. Esta é uma boa prática e serve como comparação contra futuras versões do macOS.
cd /etc/apache2/cp httpd.conf httpd.conf.mojave
Agora edite a configuração do Apache. Sinta-se livre para usar um editor diferente se você não estiver familiarizado com vi.
vi httpd.conf
Descomente a seguinte linha (remova #
):
LoadModule php7_module libexec/apache2/libphp7.so
Restart Apache:
apachectl restart
Você pode verificar se o PHP está habilitado criando uma página phpinfo()
no seu DocumentRoot
.
O padrão DocumentRoot
para macOS Mojave é /Library/WebServer/Documents
. Você pode verificar isto a partir da sua configuração do Apache.
grep DocumentRoot httpd.conf
Crie agora a página phpinfo()
no seu DocumentRoot
:
echo '<?php phpinfo();' > /Library/WebServer/Documents/phpinfo.php
Verifique PHP acessando http://localhost/phpinfo.php
Instale o MySQL em macOS Mojave
Download e instale a última versão do MySQL geralmente disponível DMG para macOS. Embora o MySQL 8 seja a última versão, muitos dos meus projectos ainda utilizam o MySQL 5.7. Então eu ainda prefiro instalar a versão mais antiga.
Quando a instalação estiver completa, ela fornecerá uma senha temporária. Copie esta palavra-passe antes de fechar o instalador. Você irá utilizá-la novamente em alguns passos.
O README sugere a criação de apelidos para mysql
e mysqladmin
. Contudo existem outros comandos que são úteis, tais como mysqldump
. Ao invés disso, você pode atualizar seu caminho para incluir /usr/local/mysql/bin
.
export PATH=/usr/local/mysql/bin:$PATH
Note: Você precisará abrir uma nova janela de Terminal ou executar o comando acima para o seu caminho de atualização.
Finalmente, você deve executar mysql_secure_installation
. Embora isto não seja necessário, é uma boa prática para proteger o seu banco de dados. Aqui também é onde você pode alterar aquela senha temporária desagradável para algo mais gerenciável para desenvolvimento local.
Conecte PHP e MySQL
Você precisa garantir que PHP e MySQL possam se comunicar entre si. Há várias opções para fazer isso. Eu gosto do seguinte pois não é necessário alterar muita configuração:
mkdir /var/mysqlln -s /tmp/mysql.sock /var/mysql/mysql.sock
Configuração adicional (opcional)
A configuração padrão para o Apache 2.4 no macOS parecia bastante enxuta. Por exemplo, módulos comuns como mod_rewrite
foram desabilitados. Você pode considerar ativar isso agora para evitar esquecer que eles estão desabilitados no futuro.
Eu editei minha Configuração do Apache:
vi /etc/apache2/httpd.conf
Eu descomentei as seguintes linhas (remove #
):
LoadModule deflate_module libexec/apache2/mod_deflate.soLoadModule expires_module libexec/apache2/mod_expires.soLoadModule rewrite_module libexec/apache2/mod_rewrite.so
Se você desenvolver vários projetos e quiser que cada um tenha uma url única, você pode configurar o Apache VirtualHosts para o macOS.
Se você gostaria de instalar o PHPMyAdmin, volte ao meu post original sobre a instalação do Apache, PHP e MySQL em macOS.
Acha isto interessante? Vamos continuar a conversa no Twitter.