Volta no Apache
- Abra o Terminal clicando na lupa no canto superior direito do seu ecrã e procurando por Terminal
- Type
sudo apachectl start
e pressione enter - Abra o Safari (ou o seu browser de escolha), digite localhost na barra de endereço, e pressione enter
Não pode acreditar que é assim tão fácil? É! Agora você deve ver que funciona! no browser.
Voltar no PHP
Mac já vem com PHP, então você não precisa instalá-lo a partir do PHP.net. Antes do High Sierra (versão 10.13), o Mac vinha com o PHP 5 instalado. Isso fez com que os usuários ficassem irritados porque não vinha com o PHP 7, então você teria que passar por um trabalho extra para atualizar do PHP 5 para o PHP 7. Felizmente a High Sierra já vem com o PHP 7.1!!!
- Abrir Terminal e digite
sudo nano /etc/apache2/httpd.conf
e pressione enter - Pressione Ctrl+W que irá trazer uma busca
- Procure pelo php e pressione enter. Você verá o seguinte:
- Eliminar o # de
#LoadModule php7_module libexec/apache2/libphp7.so
- Pressione Ctrl+O seguido por Enter para salvar a mudança que você acabou de fazer
- Pressione Ctrl+X para sair nano
- Type
sudo apachectl restart
e pressione enter
Você acabou de ligar o PHP 7. Grande trabalho até agora!
Criar pasta de sites
- Clique no Finder no canto inferior esquerdo do seu ecrã e clique em Go >Incore a barra de navegação superior. Isto irá levá-lo ao seu diretório pessoal, que também será o nome do seu computador; neste caso é david.
- Criar uma nova pasta e nomeá-la Sites (O ícone do Safari mostrado abaixo é adicionado automaticamente à pasta Sites como mostrado abaixo)
- Abrir seu editor de texto favorito e criar um arquivo chamado índice.php com o seguinte código:
<?phpecho "Hello From Sites Folder!";phpinfo();?>
- Salve index.php na pasta Sites que você criou
- Volte ao Terminal e digite
sudo nano /etc/apache2/httpd.conf
- Pressione Ctrl+W para abrir a pesquisa
- Procurar biblioteca e pressione enter. Você deve ver isto:
- Substitua ambas as ocorrências de
/Library/WebServer/Documents
por/Users/david/Sites
(em vez de david use o seu nome que pode ser encontrado no topo do seu terminal ao lado do ícone inicial) - Pressione Ctrl+O seguido por Entre para salvar estas alterações
- Pressione Ctrl+X para sair nano
- Type
sudo apachectl restart
e pressione enter
Volte para o Safari e atualize a página do localhost e você verá Hello From Sites Folder! com informações do PHP que mostram que o PHP 7 está sendo usado.
Instalar MySQL
- Vá para https://dev.mysql.com/downloads/mysql
- Clique até ver três botões de download e clique no botão ao lado de DMG Archive
- Clique e clique em Não obrigado, basta iniciar o meu download
- Clique no arquivo baixado, clique duas vezes no arquivo pkg, e passe pela instalação que deve ter este aspecto:
- Quando chegar ao fim da instalação, verá um popup que lhe dá o seu nome de utilizador MySQL (root) e palavra-passe (8hxKsiIh?YMt). A sua palavra-passe será diferente. Copie a senha para o arquivo texto (ou tire uma screenshot) e pressione ok. Faça isso agora, pois será difícil redefinir a senha se você não a souber.
- Pressione o logo da Apple no canto superior esquerdo da sua tela e vá até System Preferences
- Clique no MySQL e verá que está desligado
- Pressione Start MySQL Server para ligá-lo e verá:
- Volte ao Terminal e digite
sudo /usr/local/mysql/bin/mysql -u root -p
- Quando você pressionar enter ele irá pedir sua senha. Esta é a senha que você usa quando faz o login no seu Mac
- Então diz Enter Password: que é 8hxKsiIh?YMt para mim (você deve usar a senha que você copiou antes ao invés de 8hxKsiIh?YMt). Você verá esta tela:
- Type
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
e pressione enter - Vá para https://www.sequelpro.com e baixe Sequel Pro. Isto é como phpMyAdmin, mas melhor porque é um aplicativo desktop.
- Vá através da instalação, abra Sequel Pro, e digite 127.0.0.1 para o Host. Digite root para o Nome de Usuário e newpassword para a Senha. Pressione Connect
- Clique Choose Database… no canto superior esquerdo seguido por Add Database…
- Dê-lhe o nome mydb e pressione enter
- Depois clique no sinal de mais no canto inferior esquerdo para criar uma nova tabela. Dê um nome à tabela mytable e pressione add
- Clique no sinal de mais logo acima da palavra INDEXES e nomeie a mensagem de campo. Defina o tipo para VARCHAR e dê um comprimento de 200.
- Clique no conteúdo no topo.
- Clique no sinal de mais no fundo (o da esquerda do sinal de menos)
- Dê à nova entrada um id de 1 e defina a mensagem para MySQL funciona perfeitamente!
- Abra index.php na sua pasta Sites e altere o código para
<?php$con = new mysqli("127.0.0.1", "root", "newpassword", "mydb");$message = $con->query("SELECT message FROM myTable")->fetch_object()->message;$con->close();echo "$message <br/>";echo "Hello From Sites Folder!";phpinfo();
Obviamente este exemplo é imune à injeção SQL, uma vez que não há valores inseridos pelo usuário. Entretanto, se você não entende as instruções preparadas pelo MySQLi tão bem quanto gostaria, confira este post para um excelente tutorial sobre como prevenir a injeção de SQL 😉. Há até uma versão PDO, se você preferir mais.
- Refresh localhost no Safari e você deve ver:
Great! Agora você tem o MySQL funcionando, então você pode usar o localhost para armazenar informações em bancos de dados.
Fazer URLs amigáveis de SEO funcionar
Em vez de ir para localhost/profile.php?user=david, fica mais bonito quando você pode ir para localhost/profile/david. Vamos fazer isso funcionar ativando mod_rewrite para que você possa usar RewriteRules.
- Vá ao Terminal e digite
sudo nano /etc/apache2/httpd.conf
seguido de enter - Pressione Ctrl+W, digite rewrite, e pressione enter
- Remover o # em
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
- Pressione Ctrl+O seguido por Enter para salvar
- Pressione Ctrl+X para sair nano
- Type
sudo apachectl restart
Agora você pode usar URLs amigáveis quando você desenvolver usando localhost.
Faça o trabalho de .htaccess
Isso não é necessário para fazer as URLs vaidade funcionar, mas eu pessoalmente prefiro usar um .htaccess, pois ele me permite controlar a versão.
- Vá ao Terminal e digite
sudo nano /etc/apache2/httpd.conf
seguido de enter - Pressione Ctrl+W, digite
AllowOverride controls
, e pressione enter - Alterar
AllowOverride None
paraAllowOverride All
- Pressione Ctrl+O seguido por Enter para salvar
- Pressione Ctrl+X para sair nano
- Tipo
sudo apachectl restart
Agora você pode adicionar um .htaccess na pasta Sites e ele funcionará bem.
Voltar sobre SSL/HTTPS
Em vez de acessar seu site através do localhost, você pode querer acessar seu site indo para https://localhost. Se você ligar o SSL, você verá um cadeado ao lado do localhost na barra de URLs.
- Vá ao Terminal e digite
sudo nano /etc/apache2/httpd.conf
seguido de enter - Pressione Ctrl+W, digite socache_shmcb_module, e pressione enter
- Eliminar o # de
#LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
- Pressione Ctrl+W, digite mod_ssl, e pressione enter
- Eliminar o # de
#LoadModule ssl_module libexec/apache2/mod_ssl.so
- Pressione Ctrl+W, digite httpd-ssl, e pressione enter
- Eliminar o # de
#Include /private/etc/apache2/extra/httpd-ssl.conf
- Pressione Ctrl+O seguido por Enter para salvar
- Pressione Ctrl+X para sair nano
- Type
sudo nano /etc/apache2/extra/httpd-ssl.conf
e pressione enter - Pressione Ctrl+W, digite ServerName, e pressione enter
- Substitua www.exemplo.com:443 com localhost
- Direito acima você verá
/Library/WebServer/Documents
. Substitua isso por/Users/david/Sites
. (Use o seu nome em vez de david tal como fez anteriormente) - Direito por baixo de
<VirtualHost_default_:443>
adicionar (mas certifique-se de substituir david pelo seu nome):
<Directory "/Users/david/Sites"> Options All MultiviewsMatch Any AllowOverride All Require all granted</Directory>
- O seu terminal deve agora ter este aspecto:
- Pressione Ctrl+O seguido por Enter para salvar
- Pressione Ctrl+X para sair nano
- Digite
sudo nano /etc/ssl/openssl.cnf
e pressione enter - No fundo do openssl.cnf adicione isto:
subjectAltName = DNS:localhost
- Seu terminal deve se parecer com isto:
- Pressione Ctrl+O seguido por Enter para salvar
- Pressione Ctrl+X para sair nano
- Type
sudo openssl req -extensions san -config /etc/ssl/openssl.cnf -x509 -nodes -newkey rsa:4096 -keyout /private/etc/apache2/server.key -out /private/etc/apache2/server.crt -days 365 -subj "/C=US/ST=Florida/L=Boca Raton/O=WebsiteBeaver/CN=localhost"
e pressione enter. (Você pode usar suas informações, mas não mude o localhost)
- Type
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /private/etc/apache2/server.crt
e pressione enter
- Type
sudo apachectl
restart - Agora vá para https://localhost no seu navegador, e você verá um cadeado ao lado da url, o que significa que você terminou de configurar o SSL!