Servidor web com PHP no Mac

Augusto Campos em 27/04/2011

Eis aí uma questão interessante que já recebi por e-mail (e respondi!) algumas vezes. Geralmente ela vem numa forma mais completa: "Como instalar um servidor web com PHP no Mac?", mas o leitor Roberto Moura a apresentou de uma forma mais interessante:

Olá, sempre que posso dou um passada do blog de vocês. São ótimos posts. Uma sugestão seria um post ensinando a rodar PHP no MAC OS X. Tenho certeza que é uma dúvida de vários desenvolvedores e designers de web.

E a forma da pergunta dele é mais interessante porque ele não usou a palavra "instalar" (ao contrário dos outros leitores que perguntaram a mesma coisa), e sim "rodar".

Por que isso é interessante? Simples: porque - salvo alguma exceção interessante - o seu iMac, Mac Mini ou MacBook provavelmente já tem o servidor web Apache e o php instalados neste momento.

Duvida? Pois abra um Terminal e digite php --version e você terá certeza. No meu caso, eis o que aparece:

PHP 5.3.4 (cli) (built: Dec 15 2010 12:15:07)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Para iniciar o servidor Apache você pode usar as Preferências do Sistema (veremos depois os detalhes), mas antes disso há um detalhe curioso a resolver: embora o servidor web Apache e o interpretador PHP estejam ambos instalados por default, o Apache não vem configurado para fazer uso do PHP.

Felizmente isso é simples de resolver, bastando abrir (como usuário administrador - se for pelo Terminal, pode ser usado o comando sudo nano -w /etc/apache2/httpd.conf) o arquivo /etc/apache2/httpd.conf para editar a seguinte linha:

#LoadModule php5_module libexec/apache2/libphp5.so

Tudo o que você tem que fazer é remover o caracter # do início dela, ficando assim:

LoadModule php5_module libexec/apache2/libphp5.so

Após gravar o arquivo, a operação estará completa, e quando você rodar o servidor web Apache, ele já estará pronto para usar o PHP.

Rodando o servidor web Apache no Mac OS X

Como já vimos, o servidor web Apache vem pré-instalado, e sua ativação é por meio das Preferências do Sistema (pelo menu , no canto superior esquerdo do desktop).

Na tela de Preferências, acima, clique no ícone "Compartilhamento", e no painel que irá se abrir, ative a opção "Compart. Web", que ativará o servidor web Apache e trará algumas informações adicionais:

Note que, após a ativação do servidor web, surgem do lado direito do painel acima algumas informações interessantes: a pasta e a URL correspondentes ao seu site web pessoal hospedado no seu computador (uma página inicial gravada na pasta Sites da sua página inicial), e a URL de acesso ao site do seu computador, cujos arquivos estarão em /Library/WebServer/Documents

É só abrir estas URLs no seu próprio computador, ou outro com acesso à mesma rede, e estará tudo funcionando.

PHP no Mac OS X

Seguindo os passos acima na ordem apresentada, estará tudo pronto para você colocar páginas web com HTML e PHP no seu Mac. Façamos um teste simples: crie um arquivo teste.php na sua pasta Sites (no meu caso ela está em /Library/WebServer/Documents), com o seguinte conteúdo:


<body>
Segue código PHP:
<?php
echo "teste";
phpinfo();
?>

Salve, e em seguida abra no seu navegador a URL correspondente a este arquivo recém-criado. No meu caso esta URL é http://10.0.1.171/~augusto/teste.php - no seu caso, provavelmente o IP e o nome de usuário serão diferentes, e em caso de dúvida você pode encontrá-los nas preferências do Sistema, como vimos acima.

Se tiver dado tudo certo, você verá no navegador um resultado similar ao abaixo:

A partir daí, é só colocar em prática seus talentos em PHP, com a conveniência de poder fazer teste local.

Mas caso algo tenha dado errado, é possível que no lugar do resultado acima você veja no navegador o código-fonte do seu script. Se isso acontecer, revise os passos acima e, caso o servidor web já estivesse em execução quando você fez a alteração no arquivo httpd.conf, desative-o e reinicie-o!

Indo além

Pelo que entendi das consultas que recebi, todos os usuários estavam interessados apenas em ter um servidor web com PHP para testes locais, e para isso os passos acima bastam.

Se você quiser algo mais - por exemplo, se o seu equipamento estiver exposto à Internet e você quiser mesmo rodar o seu servidor web publicamente, recomendo estudar antes a questão da segurança de sua configuração, eventuais questões de roteamento envolvidas, e até a possibilidade de seu provedor estar bloqueando o acesso remoto ao serviço web da sua rede - uma configuração comum em contratos de banda larga residencial.

Outro detalhe importartante é que boa parte do desenvolvimento web baseado em PHP exige alguma solução de armazenamento de dados - frequentemente com o MySQL. As instruções oficiais do MySQL para Mac OS X podem ajudar, e também há pacotes prontos como o MAMP e o XAMPP para você avaliar.

Pessoalmente, entretanto, eu não faço nada disso: acho que vale muito mais a pena pagar uma pequena taxa mensal a um provedor de hospedagem web e deixar ele gerenciar o servidor, o Apache, o PHP e o MySQL para mim, e eu me preocupar só com o desenvolvimento do que me interessa. No meu caso, o provedor escolhido é o Dreamhost - faço todos os meus desenvolvimentos por lá, e até hospedo alguns dos meus projetos depois de prontos, inclusive este BR-Mac que você está lendo ;-)

Comentar

Comentários arquivados

Comentário de Fernando Aquino em 22/07/2012 às 13:54:02

Valeu Augusto!

Comentário de Rejaine em 05/08/2012 às 02:04:04

Oi Augusto. Td bem? Pode me ajudar? Eu estou com o OS X Mountain Lion (nao sei se isso tem algo a ver), porém qd abro a preferencia do sistema para habilitar o Apache, nao consigo pois la dentro nao tenho a opcao Compartilhamento Web. Sabe me informar por qual motivo essa opcao nao esta disponivel no meu macbook pro? Daí eu habilitei pelo terminal, de qq forma quando vou seguir os proximos passos para configurar nao consigo acessar pelo browser o meu localhost, nao sei se o problema esta pelo fato de n ter esse compat. web no preferencias. Me helpa please! Tks.

Comentário de Augusto Campos em 05/08/2012 às 09:37:34

Rejaine, o artigo acima foi escrito quando a versão corrente do OS X (na época, Mac OS X) era o Snow Leopard. No Mountain Lion, acredito que para ter o servidor web integrado à interface de configuração do sistema operacional, o caminho envolva instalar nele o pacote adicional OS X Server.

Comentário de Gregory em 27/08/2012 às 22:29:18

Rejaine, Esses passos funcionavam até o OS X Lion, no Mountain Lion como você percbeu isso mudou. Agora para fazer o php e o apache funcionar, tem que ser via terminal. Verifique se você tem um “NOME_DE_USUARIO.conf” em: /etc/apache2/users/NOME_DE_USUARIO.conf Com esse conteudo: Options Indexes MultiViews AllowOverride All Order allow,deny Allow from all Caso não tenha, crie o arquivo com texto acima substituindo o NOME_DE_USUARIO pelo seu nome de usuario. Depois reiniciar o apache use o seguinte comando: sudo apachectl restart O resto (configuracao do php) continua igual ao artigo, edita o arquivo /etc/apache2/httpd.conf Descomentando a linha: LoadModule php5_module libexec/apache2/libphp5.so Depois reiniciar o apache use o seguinte comando: sudo apachectl restart E depois acessa no browser: http://localhost/~NOME_DE_USUARIO Abraços

Comentário de Felipe Bicca em 28/08/2012 às 15:45:47

Gregory Como eu faço para modificar o arquivo Nome_do_Usário.cong.save para .conf? E como colocar o código dentro dele?

Comentário de Gregory em 30/08/2012 às 18:29:19

Felipe, Esse arquivo esta dentro de /etc/apache2/users/ ? Caso esteja, para modifica o arquivo basta usar os comandos a seguir no Terminal.app: cd /etc/apache2/users/; sudo mv Nome_do_Usário.cong.save Nome_do_Usário.conf E para editar, o arquivo use o comando: sudo open Nome_do_Usário.conf Ele vai abrir o arquivo no seu editor padrão. Edite com as informações do comentário anterior e salve o arquivo. Espero que ajude. Abraços

Comentário de Lucas em 18/10/2012 às 18:05:21

Só para agradecer as dicas... to usando o Mountain Lion e tiver que seguir suas dicas de ativação pelo Terminal, funcionou!! Obrigado!

Comentário de João Paulo em 27/10/2011 às 12:24:35

Tem como instalar apache e mysql em ipad?

Comentário de cristhien em 07/12/2012 às 16:04:28

ola pessoal nao estou conseguindo liberar o php ,, esta dando este erro ,, alguem pode me ajudar Cristhien:~ apple$ sudo nano -w /etc/apache2/httpd.conf sudo: unable to cache user root, already exists Cristhien:~ apple$

Comentário de Erick em 27/04/2011 às 15:17:44

Muito bacana! E abre precedentes para falar mais sobre desenvolvimento aqui no br-mac :)

Comentário de Roberto em 27/04/2011 às 16:36:13

Ótimo Augusto! Era exatamente o que eu e muitos outros desenvolvedores/webdesigners precisavam saber. Parabéns.

Comentário de jcvicelli em 28/04/2011 às 09:37:40

Estranho é onde se encontra a opção, dentro de compartilhamento....o natural seria em redes!

Comentário de Luiz M Neto em 28/04/2011 às 12:34:52

Migrei de uma Hospedagem nacional para a DreamHost e a diferença é gritante. Programo em Ruby on Rails e o suporte ao Rails 3 da Dreamhost fez minhas aplicações despararem em desempenho. Realmente um servidor de produção a partir de casa (ou pequena empresa) é impraticável. Quando precisar de algo em PHP uso o MAMP mesmo. Prático e cumpre a missão.

Comentário de Fabi em 19/05/2011 às 20:38:51

Eu fiz tudo isso, mas o site php não abre. Fica uma ? e mais nada. Já fiz o hello world pra testar e nada tb. O que posso fazer?

Comentário de Augusto Campos em 20/05/2011 às 09:23:37

Revisar os passos para ver em qual deles você pode ter se desviado do caminho, e eventualmente encontrar alguma informação mais específica para nos fornecer, permitindo que possamos te ajudar melhor!

Comentário de Alessandro em 08/05/2012 às 22:38:03

Para informações ainda mais profundas sugiro os sites abaixo: http://www.fabianemlima.com/mac-os-x/habilitar-apache-mac-os-x http://www.djangoapp.com/blog/2011/07/24/installing-phpmyadmin-on-mac-os-x-lion/ Para quem quer mais de um website em sua máquina. Abraço a todos, Alessandro Marlos Especialista em ensino a distância