Joomla! SEF no Nginx

E-mail Imprimir PDF
Hoje fiz questão de alterar o rodapé do blog, trocando o link do Apache pelo nginx, meu novo servidor web. Para quem não conhece, o nginx é um servidor extremamente leve e robusto. Após pesquisar alternativas ao Apache cheguei ao lighttpd, Cherokee e nginx. Todos os três servidores tem um desempenho bem superior ao Apache. Sendo assim, minha opção pelo nginx foi devido ao baixo consumo de memória (RAM) e sua estabilidade.

Contudo, a troca do Apache pelo nginx, trazia um problema. O SEF do Joomla! não funciona nativamente no nginx, porque as regras de redirecionamento de URL's do Joomla! se baseiam no Apache. Para minha felicidade, a solução é bem simples e estava disponível no wiki do nginx.

Mas, faltava ainda o trecho do .htaccess do Joomla!, que bloqueava ataques ao site. Mais uma vez, alguém já tinha pensado nisso e disponibilizado a solução. Portanto, bastou foi juntar as duas soluções:

server {
listen      80;
server_name mysite.com www.mysite.com;

access_log  /var/log/nginx/mysite.com-access.log;
error_log   /var/log/nginx/mysite.com-error.log;

large_client_header_buffers 4 8k; # prevent some 400 errors

root        /var/www/mysite.com/html;
index       index.php;

location / {
expires 30d;
error_page 404 = @joomla;
log_not_found off;    
}

location @joomla {
rewrite ^(.*)$ /index.php?q=$1 last;
}

location ~ \.php$ {
fastcgi_pass   127.0.0.1:8888;
fastcgi_index  index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

if ( $args ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3d)” ) {
set $args “”;
rewrite ^.*$ http://$host/index.php last;
return 403;
}

if ( $args ~ “base64_encode.*\(.*\)” ) {
set $args “”;
rewrite ^.*$ http://$host/index.php last;
return 403;
}

if ( $args ~ “(\<|%3C).*script.*(\>|%3E)” ) {
set $args “”;
rewrite ^.*$ http://$host/index.php last;
return 403;
}

if ( $args ~ “GLOBALS(=|\[|\%[0-9A-Z]{0,2})” ) {
set $args “”;
rewrite ^.*$ http://$host/index.php last;
return 403;
}

if ( $args ~ “_REQUEST(=|\[|\%[0-9A-Z]{0,2})” ) {
set $args “”;
rewrite ^.*$ http://$host/index.php last;
return 403;
}

}

Agora meu site, com tudo que tem direito (nginx, MySQL, PHP, FTP e SVN), roda em um VPS OpenVZ com 128MB de RAM. Incrível não ?

Categoria: Joomla!
 

msmtp - Uma alternativa ao servidor de email

E-mail Imprimir PDF
Não vou nem dizer, que servidores de email são uns dos principais alvos de ataque de hackers e spammers. Contudo, se você administra um servidor, você possivelmente precisa de um servidor de email, para receber via email os relatórios que o servidor gera. A boa notícia é que seu servidor de email, não precisa necessariamente ser executado no seu servidor.

O Google Apps é um serviço do Google, no qual você pode hospedar os emails do seu domínio nos servidores do Google. Assim, tudo o que você precisa fazer para evitar a dor-de-cabeça, vírus e spam, de um servidor de email. Para usar o Google Apps você precisa criar uma conta no serviço e alterar o registro MX de seu domínio. Não vou entrar em detalhes do Google Apps, porque a documentação do serviço explica detalhadamente o que fazer.

O intuito aqui é esclarecer que ainda será necessária uma forma do servidor encaminhar os emails (relatórios) de seu servidor para o Google Apps. Justamente aqui que o msmtp entra, para fazer esse trabalho.

A configuração do msmtp é simples e concentrada no arquivo /etc/msmtprc:

# A system wide configuration is optional.
# If it exists, it usually defines a default account.
# This allows msmtp to be used like /usr/sbin/sendmail.

# The SMTP smarthost.
account dominio.com
host smtp.gmail.com
port 587
auth on
user Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
password senha
from Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.

# Construct envelope-from addresses of the form "user@oursite.example".
auto_from on
maildomain dominio.com

# Use TLS.
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Default account
account default : domain.com

# Syslog logging with facility LOG_MAIL instead of the default LOG_USER.
syslog LOG_MAIL

Para testar se o servidor está enviando emails corretamente digite no console:

echo "teste" | mail usuario@dominio

Com isso um email deve ser encaminhado à sua caixa de entrada.

Faltam apenas alguns ajustes no Cron para garantir que os emails sejam encaminhados corretamente. Edite o arquivo /etc/crontab e inclua a diretiva MAILTO logo após os comentários, conforme abaixo:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.


MAILTO= Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.

Isso deve ser feito também no seu crontab, caso execute o Cron em seu usuário. Digite crontab -e e insira a diretiva MAILTO na primeira linha.

Categoria: Ubuntu
 

Utilizando o DropBox no Openbox

E-mail Imprimir PDF

O DropBox é um excelente serviço que permite sincronizar arquivos entre diferentes computadores e sistemas operacionais. Além disso ele permite o acesso aos arquivos pela Internet. Apesar de fornecer apenas 2GB para armazenamento, essa capacidade é suficiente na maior parte do tempo, se você
deseja sincronizar "importantes" como arquivos de configuração ou código-fonte.

Apesar de tantas vantagens, o cliente Linux funciona integrado ao gerenciador de arquivo Nautilus, logo indiretamente ao Gnome. Como agora estou usando o Openbox, queria uma forma fazer o DropBox funcionar sem ter que instalar o Nautilus. Após uma busca encontrei um tutorial para fazer exatamente isso, bastando seguir os seguintes passos:

  • Fazer o download dos arquivos binários: http://www.getdropbox.com/download?plat=lnx.x86
  • Descompactar e mover .dropbox-dist para ~/.dropbox
  • Adicionar a linha ~/.dropbox/dropboxd & para o arquivo ~/.config/openbox/autostart.sh


Porém o atalho "Open My DropBox" ainda chamava o Nautilus como gerenciador de arquivo. Após nova busca descobri que a saída era criar um script que chamava o gerenciador de arquivo correto ao invés do Nautilus. Cuidado ao executar os passos abaixos, pois ele presume que o Nautilus não esteja instalado, não execute o procedimento o Nautilus esteja instalado. No script utilizo o PCMan como gerenciador de arquivos, mas basta trocar o pcmanfm pelo comando do gerenciador de arquivo desejado.

  • Executar o comando sudo touch /usr/bin/nautilus && sudo chmod +x /usr/bin/nautilus && sudo nano /usr/bin/nautilus &
  • Inserir o script no editor aberto
#!/bin/bash
exec pcmanfm $@
exit 0


Feito isso bastou reiniciar o Openbox para iniciar o servidor do DropBox. A partir de então, pude me considerar mais um feliz usuário do DropBox.


Categoria: Ubuntu
 

Eventos Joomla! 2009

E-mail Imprimir PDF

Este ano temos os já tradicionais eventos Joomla!: Encontro de Usuários Joomla! e Joomla! Day Brasil.

IV Encontro de Usuários Joomla! será realizando dentro do FISL e acontece no dia 26/06/2009 das 12:00 às 13:00. Já o Joomla!Day Brasil será realizado no dia 12/09/2009 no Rio de Janeiro - RJ.

 Fica então o convite para que todos participem.


Categoria: Joomla!
 

Migração de Joomla! 1.0 para Joomla! 1.5

E-mail Imprimir PDF
Depois que o core do Joomla! marcou a data para o fim do suporte ao Joomla! 1.0, chega então a hora de migrar este humilde blog para o Joomla! 1.5. Apesar de saber que a migração do conteúdo é relativamente simples, são necessários alguns ajustes no tema para que funcione na nova versão. Então, ao invés de migrar o tema para a nova versão, resolvi mudar um pouco o cara do blog e instalar um novo tema.

Apesar que estar à muito tempo com vontade de colocar em produção o Joomla! 1.5, achei melhor esperar um pouco para que os principais bugs fossem corrigidos. Mas, com a chegada da DÉCIMA versão do Joomla! 1.5, vi que já era hora de iniciar os trabalhos. Nesse processo, duas coisas tomaram bastante tempo: o tema e o SEF/SEO.

Como não sou designer procurei um tema para Joomla! 1.5 que fosse leve e limpo. Após algumas buscas encontrei o Axe Rescheek Red do JoomlaAxe e juntando com algumas idéias do tema JA Purity do JoomlArt e com um logo "personalizado" pelo Logo Maker, eis que surge o tema que vocês vêem aqui. Esta é a beleza do software livre, pode-se adaptá-lo conforme sua necessidade.

Quanto ao SEF devo dizer que o Joomla! 1.5 melhorou sensivelmente o suporte às URLs amigáveis. O melhor do SEF do Joomla! 1.5 é que ele mantém a compatilidade com o SEF do Joomla! 1.0, redirecionado "automagicamente" as URLs antigas para as novas. Para que isso funcione, basta ter certeza que o plugin "System - Backlink" esteja publicado.

Contudo, uma coisa me irritava nas novas URLs, é que elas exibiam o ID do artigo na URL. Eu até achei um plugin que removia os IDs das URLs, mas como reação adversa a alteração nas URLs das extensões, fazia com que elas parassem de funcionar.

Como solução para isso analisei duas extensões para SEF: Artio e sh404SEF. Ambos são bons e funcionam de forma parecida, contudo o sh404SEF é GPL e disponível livremente, enquanto o Artio tem duas versões uma gratuita e outra paga. Vale lembrar que livre e gratuito não são necessariamente a mesma coisa. Comparando ambas fiquei com o sh404SEF.

Com a adoção do sh404SEF fica-se com o problema das URLs do Joomla! 1.0 quebradas, o que é especialmente ruim para páginas indexadas pelos mecanismos de busca. Para resolver isso utilizei o htaccess para redirecionar as URLs antigas para as novas. Ainda na área de SEO instalei a extensão XMap para gerar e publicar o sitemap do blog.

Para dar os efeitos de lightbox instalei o YOOeffects que utiliza o MooTools, a mesma API do Joomla! 1.5, o que teoricamente, não sobrecarregaria ainda mais o site. Apesar de ainda faltarem alguns ajustes e extensões, publiquei a nova versão do blog, para eu possa fazê-lo aos poucos. No próximo artigo publico os detalhes do passos e configurações efetuadas durante a migração.

Categoria: Blog
 
<< Início < Anterior 1 2 3 4 5 6 7 Próximo > Fim >>

Página 1 de 7