Qual o melhor servidor web para o desenvolvedor PHP que usa Windows?

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.

Servidor Web para Programação PHP em Windows

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 de servidor web 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.

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 servidor web em 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 servidor web de produção real e evitarem surpresas desagradáveis.


10 Comentários

Guilherme
3

Boa noite. A minha dúvida é a seguinte, o Mac OS possui as mesmas vantagens de um ambiente Linux para o desenvolvimento PHP?

tiago
4

O Mac OS X é derivado do BSD Darwin!!! Ele é unix-like visto que a família BSD se aproxima do UNIX original!!! Pode ser preciso baixar ou compilar as dependências para o programa ser feito!!! Não existe um APT, YUM ou RPM no mac!

Dionei Silva
6

Boas,
Utilizo o WAMP para desenvolver em PHP e gosto bastante dele.No entanto, sinto falta de visualizar as tabelas e relacionamentos de moo gráfico – no phpMyAdmin.Solicito ajuda para configuração(modo gráfico no wamp),pois não encontro nem no Google nem no youtube.

Steven
7

We use WPN-XM (wpn-xm.org) for development on Windows and a custom Docker based VM with Debian for staging and the testing of RC versions of our PHP applications. While XAMPP ships a lot of unnecessary components, the WPN-XM stack is fully focussed on PHP. You find Composer, PHPUnit and Pickle out-of-the-box. This saves us a lot of time! Its also free like XAMPP, but we like it more, because its completely open-source and build on Travis and includes more packages and provides better support.

Judson dos Santos Artur
9

You don’t have permission to access /Projecto1/View/estudante/Notice: Undefined variable: row in C:/Program Files (x86)/EasyPHP-Devserver-16.1/eds-www/Projecto1/View/template.php on line 28 on this server.
Ajudem me por favor

Nuncyo D´Ery
10

Belíssimo artigo. Impecável. Muito instrutivo e tecnicamente profundo. Porém, a dúvida permanece, pois a pergunta não foi respondida. Aqueles que estão começando, continuam em dúvida em qual solução apostar. Fica aqui a minha ?????? Obrigado

Deixe seu comentário

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