XAMPP, WAMP, EasyPHP: Qual a melhor solução para o desenvolvedor PHP que usa Windows? 07.06.17 16:46
A linguagem PHP tornou-se extremamente popular no mundo do desenvolvimento web por várias razões, como sua grande flexibilidade e seu grande poder como, também, pelo fato de ser aberta e gratuita, o que possibilita que os provedores de hospedagem possam oferecer planos a preços menores e que o desenvolvedor não precise trilhar os obscuros caminhos da pirataria para fazer seu trabalho.
No entanto, para os profissionais de TI que estão começando a trabalhar com a linguagem, logo nota-se um pequeno inconveniente: seu habitat são os sistemas Unix-like, como o GNU/Linux – é desse sistema a letra L na famosa sigla LAMP: Linux, Apache, MySQL e PHP – e, dessa forma, é necessário encontrar alguma maneira de utilizá-la no ambiente da Microsoft.
Embora seja possível instalar o PHP no IIS, o servidor web da Microsoft, ou até mesmo instalar o Apache no Windows, muitos desenvolvedores consideram essas tarefas complicadas e tediosas e apelam para soluções prontas, que possuem todo o ambiente de desenvolvimento empacotado e pronto para usar. Dentre as várias soluções desse tipo disponíveis, destacam-se o WAMP, o XAMPP, o EasyPHP, entre outras. Cada uma possui seu próprio conjunto de configurações e de recursos que tem por objetivo “facilitar” a vida do desenvolvedor, que pode tanto instalar o ambiente como um programa comum e também iniciar e parar os serviços facilmente.
Surge, aí, uma dúvida: entre tantas opções disponíveis, qual é a melhor?
Em minha sincera opinião, nenhuma.
Apesar de, como já dito, esses pacotes prontos terem o objetivo de “facilitar” a vida dos desenvolvedores que usam Windows, na maioria das vezes, eles mais atrapalham do que ajudam. Dentre os motivos que podemos citar, estão mensagens de erro inexplicáveis e a ausência de recursos da linguagem PHP, que podem acabar dificultando a tarefa de migrar o sistema para o servidor de produção.
Por uma questão de ética, não vou citar links, mas uma rápida pesquisa em seu site de buscas favorito poderá revelar vários posts em diversos fóruns relacionados a mensagens estranhas e aparentemente sem motivo que aparecem durante o desenvolvimento, principalmente quando da utilização de sessões e de cookies. As soluções também costumam ser misteriosas: comentar ou mudar uma linha de algum arquivo de configuração ou, simplesmente, reinstalar o ambiente. Isso tudo acaba fazendo o desenvolvedor perder tempo, pois muitas vezes ele pode passar horas tentando entender ou resolver um problema que não existe, enquanto poderia estar terminando seu trabalho.
O fato de esses ambientes serem voltados a desenvolvedores iniciantes ou que querem o máximo de conforto muitas vezes é o responsável por fornecer uma configuração insegura ou sem alguns recursos da linguagem PHP. Citando meu próprio exemplo, recentemente tive de mudar um conjunto de linhas nos arquivos de um projeto que iniciavam uma sessão apenas se já não houvesse uma sessão iniciada – recurso este que funciona bem em meu notebook com Debian Linux – simplesmente porque a instrução session_status() não era reconhecida no computador Windows de um colega, o qual estava utilizando um desses pacotes.
Todos esses fatores somados podem acabar dificultando a migração do sistema para o ambiente de produção.
Apesar de o sistema funcionar bem no computador do desenvolvedor, o Windows não possui alguns recursos presentes no Linux, como as permissões de seus sistemas de arquivos. Assim, é comum vermos sistemas que funcionem bem no ambiente Windows e, uma vez em produção, passam a exibir mensagens de alerta dizendo que determinada pasta ou arquivo não possui permissão de escrita, por exemplo. O desenvolvedor, que não está acostumado aos sistemas Unix-like, sai desesperado em fóruns à procura de uma solução, até que um bem-intencionado usuário lhe diz para dar um chmod 777 na pasta ou no arquivo, levando toda a segurança por água abaixo.
Mas, então, qual seria a melhor solução para o desenvolvedor PHP que usa Windows? Eu acredito em uma bem simples: máquina virtual.
Os computadores de hoje possuem grandes quantidades de memória e de espaço em disco, o que torna possível executar dois sistemas ao mesmo tempo. Assim, ao invés de o desenvolvedor sair caçando um pacote PHP para Windows, uma solução mais interessante seria instalar, nesse sistema, um programa como o VMWare ou o VirtualBox e, nele, alguma distribuição de Linux, como Debian, CentOS ou Ubuntu Server, que são as mais utilizadas pelas empresas de hospedagem. Dessa forma, além de ele ter um ambiente PHP nativo e completo, com todos os recursos que a linguagem pode oferecer à sua disposição, ele ficará bem próximo do sistema utilizado na empresa de hospedagem e poderá prever, com precisão, como o sistema se comportará no ambiente de produção, além é claro de ganhar intimidade com o sistema operacional líder em servidores que mais cresce no mercado – colocando mais um item em seu currículo.
Além disso, apesar de a maioria das distribuições para servidor virem em modo texto, o desenvolvedor que assim quiser poderá instalar um ambiente gráfico em sua máquina virtual, afim de operá-la mais amigavelmente. A maioria das distribuições atuais para desktop, que também permite a instalação do ambiente PHP, é fácil de instalar e exige poucos recursos da máquina.
Portanto, acho válido que os desenvolvedores PHP usuários de Windows considerem a utilização de uma máquina virtual em seus ambientes de desenvolvimento para ficarem mais próximos do ambiente de produção real e evitarem surpresas desagradáveis.
No entanto, para os profissionais de TI que estão começando a trabalhar com a linguagem, logo nota-se um pequeno inconveniente: seu habitat são os sistemas Unix-like, como o GNU/Linux – é desse sistema a letra L na famosa sigla LAMP: Linux, Apache, MySQL e PHP – e, dessa forma, é necessário encontrar alguma maneira de utilizá-la no ambiente da Microsoft.
Embora seja possível instalar o PHP no IIS, o servidor web da Microsoft, ou até mesmo instalar o Apache no Windows, muitos desenvolvedores consideram essas tarefas complicadas e tediosas e apelam para soluções prontas, que possuem todo o ambiente de desenvolvimento empacotado e pronto para usar. Dentre as várias soluções desse tipo disponíveis, destacam-se o WAMP, o XAMPP, o EasyPHP, entre outras. Cada uma possui seu próprio conjunto de configurações e de recursos que tem por objetivo “facilitar” a vida do desenvolvedor, que pode tanto instalar o ambiente como um programa comum e também iniciar e parar os serviços facilmente.
Surge, aí, uma dúvida: entre tantas opções disponíveis, qual é a melhor?
Em minha sincera opinião, nenhuma.
Apesar de, como já dito, esses pacotes prontos terem o objetivo de “facilitar” a vida dos desenvolvedores que usam Windows, na maioria das vezes, eles mais atrapalham do que ajudam. Dentre os motivos que podemos citar, estão mensagens de erro inexplicáveis e a ausência de recursos da linguagem PHP, que podem acabar dificultando a tarefa de migrar o sistema para o servidor de produção.
Por uma questão de ética, não vou citar links, mas uma rápida pesquisa em seu site de buscas favorito poderá revelar vários posts em diversos fóruns relacionados a mensagens estranhas e aparentemente sem motivo que aparecem durante o desenvolvimento, principalmente quando da utilização de sessões e de cookies. As soluções também costumam ser misteriosas: comentar ou mudar uma linha de algum arquivo de configuração ou, simplesmente, reinstalar o ambiente. Isso tudo acaba fazendo o desenvolvedor perder tempo, pois muitas vezes ele pode passar horas tentando entender ou resolver um problema que não existe, enquanto poderia estar terminando seu trabalho.
O fato de esses ambientes serem voltados a desenvolvedores iniciantes ou que querem o máximo de conforto muitas vezes é o responsável por fornecer uma configuração insegura ou sem alguns recursos da linguagem PHP. Citando meu próprio exemplo, recentemente tive de mudar um conjunto de linhas nos arquivos de um projeto que iniciavam uma sessão apenas se já não houvesse uma sessão iniciada – recurso este que funciona bem em meu notebook com Debian Linux – simplesmente porque a instrução session_status() não era reconhecida no computador Windows de um colega, o qual estava utilizando um desses pacotes.
Todos esses fatores somados podem acabar dificultando a migração do sistema para o ambiente de produção.
Apesar de o sistema funcionar bem no computador do desenvolvedor, o Windows não possui alguns recursos presentes no Linux, como as permissões de seus sistemas de arquivos. Assim, é comum vermos sistemas que funcionem bem no ambiente Windows e, uma vez em produção, passam a exibir mensagens de alerta dizendo que determinada pasta ou arquivo não possui permissão de escrita, por exemplo. O desenvolvedor, que não está acostumado aos sistemas Unix-like, sai desesperado em fóruns à procura de uma solução, até que um bem-intencionado usuário lhe diz para dar um chmod 777 na pasta ou no arquivo, levando toda a segurança por água abaixo.
Mas, então, qual seria a melhor solução para o desenvolvedor PHP que usa Windows? Eu acredito em uma bem simples: máquina virtual.
Os computadores de hoje possuem grandes quantidades de memória e de espaço em disco, o que torna possível executar dois sistemas ao mesmo tempo. Assim, ao invés de o desenvolvedor sair caçando um pacote PHP para Windows, uma solução mais interessante seria instalar, nesse sistema, um programa como o VMWare ou o VirtualBox e, nele, alguma distribuição de Linux, como Debian, CentOS ou Ubuntu Server, que são as mais utilizadas pelas empresas de hospedagem. Dessa forma, além de ele ter um ambiente PHP nativo e completo, com todos os recursos que a linguagem pode oferecer à sua disposição, ele ficará bem próximo do sistema utilizado na empresa de hospedagem e poderá prever, com precisão, como o sistema se comportará no ambiente de produção, além é claro de ganhar intimidade com o sistema operacional líder em servidores que mais cresce no mercado – colocando mais um item em seu currículo.
Além disso, apesar de a maioria das distribuições para servidor virem em modo texto, o desenvolvedor que assim quiser poderá instalar um ambiente gráfico em sua máquina virtual, afim de operá-la mais amigavelmente. A maioria das distribuições atuais para desktop, que também permite a instalação do ambiente PHP, é fácil de instalar e exige poucos recursos da máquina.
Portanto, acho válido que os desenvolvedores PHP usuários de Windows considerem a utilização de uma máquina virtual em seus ambientes de desenvolvimento para ficarem mais próximos do ambiente de produção real e evitarem surpresas desagradáveis.