Vi o Martins

Blog pessoal de Flávio Martins

Arquivo para ‘Geral’ Categoria

Processos php5-cgi a roubar memória no etch e hardy

Segunda-feira, 16 Março, 2009

Neste servidor a memória desaparece, o WordPress parece lento e por vezes sou servido com uma página de Internal Error 500.

Para resolver o problema da memória ajustei a variável PHP_FCGI_CHILDREN para um valor pequeno. Para quem usa mod_fcgi esta variável permite controlar o número de processos PHP criados. O que aconteceu depois de um reload do apache foi... uma história diferente. Bastou abrir este site e vários processos PHP apareceram num ápice, ficando até órfãos. Uma pesquisa no Google remeteu-me para o bug PHP 40286.

Conclusão, se tu também usas php5 + mod_fcgi em Debian Etch ou Ubuntu Hardy tens duas hipóteses:

  1. matar os processos órfãos regularmente
  2. não definir a variável PHP_FCGI_CHILDREN

Eu escolhi a hipótese 2. Matar processos regularmente, mesmo com um cronjob, não me parece nada elegante.

Como actualizar um blog WordPress com o svn

Quinta-feira, 5 Março, 2009

Na maior parte das vezes as vulnerabilidades conhecidas são rapidamente corrigidas nas versões mais recentes do WordPress. Mesmo assim muitos bloggers, por não actualizarem regularmente, vêm o seu blog ser infiltrado. Decidi então partilhar um método que permite actualizar completamente um blog num único passo, incluindo os plugins e temas. No entanto a configuração inicial do WordPress é um pouco especial visto que vamos tirar partido do SVN para o efeito.

A primeira coisa a fazer é ligar-se por SSH ao servidor e verificar se temos o programa svn. Caso contrario, vamos ter de instalar, ou pedir para o fazerem por nós. Prosseguimos fazendo o download do WordPress com o comando svn (recomendo a mais recente branch).

svn checkout http://svn.automattic.com/wordpress/branches/2.7/ blog

Podemos agora configurar o blog tal como quando o WordPress é instalado usando um arquivo extraível. Com a diferença de podermos a partir de agora actualizar o blog com o seguinte comando.

svn update

Eu prometi no entanto uma actualização completa, incluindo plugins e temas. Os mais atentos devem ter reparado que o plugin akismet é actualizado ao mesmo tempo que o WordPress quando é executado o comando acima. Nós queremos o mesmo comportamento para os outros plugins.

Para editar a lista de plugins actualizavéis executamos.

svn propedit svn:externals wp-content/plugins

Na lista anterior podemos ver qual a sintaxe deste ficheiro, ou seja, um nome para o directório de destino e o endereço para a trunk do plugin. A maioria dos plugins para WordPress podem ser encontrados em http://svn.wp-plugins.org/. Adicionemos agora o plugin stats à lista como exemplo.

stats http://svn.wp-plugins.org/stats/trunk/

Por fim executamos um pedido de actualização para que o plugin seja descarregado.

svn update

Este processo é também válido para os temas.

Quando sair a versão seguinte do WordPress só precisamos de executar o seguinte.

svn switch --ignore-externals http://svn.automattic.com/wordpress/branches/2.8/

Boa sorte.

Em Português

Domingo, 1 Março, 2009

«A Igreja diz que a Terra é achatada, mas sei que ela é redonda, porque vi a sombra dela na Lua, e acredito mais numa sombra do que na igreja.» (Fernão de Magalhães)