LightTPD + PHP5 no Debian (Part 1: mod_fastcgi)

Tags: , , — September 7, 2008 @ 11:17 pm

Já há algum tempo tenho curiosidade de testar outros servidores http como alternativa ao nosso conhecido Apache, e um que sempre me chamou atenção é o LightTPD, com a promessa de ser mais rápido e ter um consumo bem menor de memória e recursos do sistema.

Este fim de semana resolvi finalmente me aventurar e tentar migrar do Apache para o LightTPD. Apesar de ser uma servidor web bem mais simples que o Apache, as diferenças na configuração deste podem ser uma dor de cabeça para quem está acostumado com as do Apache, principalmente em se tratando do mod_rewrite e Virtual Hosts, por isso vou separar a post em quatro partes:

  1. Instalação básica do LightTPD com mod_fastcgi e utilização com PHP5;
  2. Configuração básica de Virtual Hosts, mod_userdir, e mod_evhost, possibilitando configuraçãode virtual hosts por usuários, por exemplo;
  3. Utilização do mod_rewrite em comparação com o Apache, e configuração deste para “urls limpas” com CakePHP Framework (aplicável também para outros Frameworks e CMSs);
  4. Benchmark. Testes de performance do LightTPD em comparação com o Apache.

Começando com a Parte 1, abordada neste post.

Primeiramente instale o lighttpd, e php5-cgi, juntamente com os módulos PHP que desejar (php5-gd, php5-mysql, etc). Diferente do Apache, o Lighttpd não possui um módulo próprio para executar scripts php, assim, estes serão tratados a partir do módulo fastcgi que, na prática, é mais rápido que o apache mod_php, e não interfere em seu modo de uso.

# aptitude install lighttpd php5-cgi

Se o servidor Apache, ou outro servidor web, estiver sendo executado na porta 80, a instalação gerará um erro e ficará incompleta, pois o apt tentará iniciar o LightTPD na porta 80, que já estará sendo utilizada.

A solução para isto é parar momentaneamente o Apache (/etc/init.d/apache2 stop) , instalar o LightTPD, e alterar a sua porta, para só então reinciar o Apache (/etc/init.d/apache2 start).

Para alterar a porta utilizada pelo LightTPD, basta editar o arquivo /etc/lighttpd/lighttpd.conf e descomentar e alterar a porta, mais ou menos na linha 70: server.port = 81.

Se você não parou o servidor Apache e recebeu um erro na instalação, basta alterar a porta do lightTPD como mostrado acima, e reiniciar a instalação (basta rodar o aptitude install novamente) .

LightTPD Placeholder pageApós concluída a instalação, você deverá ver a página teste do LightTPD acessando http://127.0.0.1/ (ou http://localhost/)  no seu navegador, agora só falta ativar o suporte para PHP5.

Assim como para o Apache, a instalação padrão do LightTPD no Debian coloca as configurações do servidor web em arquivos separados. O arquivo de configuração principal do LightTPD, como já vimos, fica em /etc/lighttpd/lighttpd.conf. Configurações adicionais ficam em /etc/lighttpd/conf-available, e devem sercriados links simbólicos para estes em /etc/lighttpd/conf-enabled para que estes sejam carregados. Assim, vamos habilitar o módulo fastcgi:

# cd /etc/lighttpd/conf-enabled
# ln -s ../conf-available/10-fastcgi.conf .
#

Depois disto edite o arquivo /etc/php5/cgi/php.ini procure e altere a diretiva cgi.fix_pathinfo (linha 533, mais ou menos) de 0 para 1. Esta é uma configuração auxiliar paradar suporte as variávels PATH_INFO e PATH_TRANSLATED, que originalmente não estão disponíveis para o PHP em modo CGI (alteração necessária para alguns Frameworks, como o CakePHP, funcionarem).

Após isto basta reiniciar o LightTPD (/etc/init.d/lighttpd restart) e começar a rodar seus scripts PHP normalmente, aproveitando  o ganho de performance e a economia de memória.

Configurando Eclipse PDT + XDebug

Tags: , , — August 10, 2008 @ 3:20 pm

O XDebug é um alternativa livre e bem completa para depurar aplicações em PHP. Com ele é possível verificar em tempo de execução o valor de todas as variáveis durante erros, assim como em breakpoints pré-definidos.

Estarei demonstrando neste post como configurar o XDebug para ser utilizado em conjunto com o Eclipse PDT (former PHPIDE) no Debian testing (outras distribuições, e até mesmo Windows e Mac OS X  tem a mesma configuração, diferenciando-se apenas na instalação do XDebug e caminho do arquivo de configuração deste). O que deve salvar horas de depuração de seus aplicativos e extingir o uso das funções print_r() ou var_dump().

As versões mais recentes do Eclipse PDT já vem com suporte ao XDebug, como alternativa ao Zend Debugger, então, caso você já tenho o Eclipse PDT instalado em sua máquina, deve precisar, no máximo, atualizar a instalação com o update-manager. Para os demais, basta baixar da página de downloads do Eclipse PDT.

Mesmo para quem utilize Debian ou Ubuntu, recomendo baixar e instalar o Eclipse PDT manualmente pelo site, ao invés de utilizarem o gerenciador de pacotes (aka. aptitude ou apt-get), é apenas necessário ter o pacote sun-java5-bin instalado.

Para instalar o XDebug verifique os pacotes disponíveis para sua distribuição, ou faça o download dos binários (para Windows e Mac) do site. Para usuários do Debian ou Ubuntu basta instalar via apt:

# aptitude install php5-xdebug

Após concluída e instalação, edite o arquivo xdebug.ini (no Debian ele deve estar em /etc/php5/conf.d/xdebug.ini), mantenha a linha com a opção ‘zend_extension=’ e adicione as linhas abaixo e reinicie seu servidor web (apache, lighttpd, etc.):

xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"

Para saber detalhes sobre estar opções, ou outras disponíveis, veja a documentação do XDebug.

Já no Eclipse, vá em Window -> Preferences -> PHP -> Debug -> Installed Debuggers e verifique se o XDebug está configurado na porta correta (9000, como colocamos no xdebug.ini):

2008-08-10_144020.png

Depois vá em  Window -> Preferences -> PHP -> PHP Executables (mesma Janela) e edite/adicione o caminho correto para seu executável PHP, selecionando XDebug como PHP debugger:

2008-08-10_144336.png

Então vá em  Window -> Preferences -> PHP -> Debug (mesma janela) e selecione o XDebug como seu PHP debugger padrão e seus executável PHP. Também desmarque a opção Break at first line, pois esta poderá ser adicionada mais tarde.

2008-08-10_144004.png

Após definir as configurações gerais, feche a janela e vá em Run -> Open Debug Dialog e de dois cliques em PHP Web Page. Nesta janela basta configurar o XDebug como Server Debugger o servidor web (Apache, Lighttpd, etc.) onde será acessada a aplicação, em PHP Server, o arquivo que iniciará aplicação (geralmente algum index.php, obrigatoriamente dentro de um projeto previamente configurado), em file, e a url para este arquivo, é qual pode ser configurada automaticamente, ou definida manualmente. Note também a opção Break at First Line que pode ser definida para a aplicação ser debugada logo na primeira linha:

2008-08-10_144124.png

Também deve ser necessário definir o navegador onde as páginas serão exibidar em Window -> Preferences -> General -> Web Browser. Selecione User external Web browser e escolha o navegador de sua preferência (Iceweasel ou Firefox, no meu caso).

Perspectiva PHP Debug, exibindo variáveis atuais, com XDebugApós concluída a configuração, basta clicar no botão Debug da barra de ferramentas e a sessão será iniciada. Sempre que houver algum erro na aplicação, ou esta atingir um breakpoint definido por você, a perspectiva deverá mudar para a PHP Debug, pausando a aplicação, e exibindo todas as variáveis (inclusive parametros enviados por GET ou POST e variáveis de sessão) definidas atualmente.

Fonte: http://www.starbowconsulting.com/blog/tao/setting-eclipse-pdt-and-xdebug

Lançado último release do PHP 4

Tags: , — August 8, 2008 @ 5:14 pm

Como falado anteriormente, hoje é o dia da última atualização de segurança para o PHP 4.4.

Como anunciado no php.net, foi lançada ontem a última atualização de segurança para o PHP 4.4, release 4.4.9, e será esta a última. Segundo a notícia no PHP.net, é extremamente recomendado para os usuários do PHP 4 atualizarem para esta versão.

Cá entre nós, vale muito mais atualizar logo para o PHP 5.

PHP Eclipse

Tags: , — October 3, 2007 @ 8:00 pm

Após um bom tempo sem postar venho com uma recomendação.

Não faz muito tempo, em meu post sobre Delphi e Visual Studio como IDEs para PHP falei no Eclipse, agora venho fazer um resumo e recomendação sobre esta IDE.

O Eclipse é uma IDE produzida inicialmente para Java, mas que possui plugins para diversas outras linguagens, assim podendo ser usado para desenvolvimento em C/C++, Ruby, Python, e claro, PHP. Acontece que o Eclipse é, ao meu ver, a segunda melhor IDE para programação com PHP, perdendo apenas para o Zend Studio, porém, livre, mais leve, e até mesmo com mais recursos, isso porque você pode adicionar mais ferramentas para editar arquivos HTML, JS, SQL, e até fluxogramas e ferramentas gráficas.

Ademais ele conta com um excelente controle de projetos, ajuda de contexto (inclusive para classes definidas pelo usuário) e suporte a controle de versão com CVS ou SVN.

eclipse-context-help.png botões para sincronização com um repositório CVS

O Eclipse pode ser adquirido pelo website oficial ou em distribuições customizadas para diversas linguagens. Eu recomendo o EasyEclipse para PHP, que pode ser aquirido aqui. Lembrando que mesmo as distribuições podem ser customizadas para adicionar mais e mais recursos. Ele também pode ser instalado via ap-get no Debian ou Ubuntu, mas as distribuições customizadas parecem bem mais completas e funcionais.

Recomendado!

<<< Previous Page - Next Page >>>