Customizações para grandes Portais Rafael Berlanda  Membro da Comunidade Joomla Calango Joomla Day Brasil 2010  imitação de capa de um livro da Pckt Publishing, realizada sem motivo aparente   Miscelânea de adaptações que podem ser úteis
Quem? Rafael Berlanda Atuando no Ministério da Educação desde 2007 e trabalhando com Web desde 2001.       Joomla desde 2007: Layout da versão  anterior do Portal do MEC Analista de Sistemas e Desenvolvedor Joomla Desenvolvedor do Portal CNJ entregue em 2009
Estrutura desta apresentação Performance Segurança Outros requisitos dia-a-dia e sugestões   Possui conceitos básicos até experimentações realizadas nos projetos dentro e fora do ambiente de trabalho, fruto da colaboração de várias pessoas Versão de referência:  Joomla > 1.5.10  
1. Performance
No contexto de TI, significa prover mais serviços com os mesmos, ou com menos recursos. Para sites, portanto, prevê: Abertura e resposta mais rápida dos sites Economia de banda de transferência Suporte a diversas conexões simultâneas  
Joomla te dá recursos: Configurações do cache (performance) Configurações da sessão (+- performance) Com usuário Super Administrator: Configuração Global > Sistema
Joomla te dá recursos: Economia de banda
Nem todos os componentes funcionam bem com cache: há possibilidade de ocorrência de erros de charset nas entradas de dados realizadas através destes componentes Nem todos os módulos suportam cache (há a opção de escolher para qual utilizar ou não, na maioria dos casos) Não há publicação em tempo real, a partir do momento em que você utiliza  cache Até onde a compressão gzip pode afetar a performance ?  Desvantagens
Gargalo de Banco de dados
1. Aumento do número de acessos 2. Aumento do número de buscas 3. Limpeza de Session 4. DB Out…
O pesadelo Todos entram ao mesmo tempo no seu site e ele começa a ficar lento... então as pessoas começam a utilizar o sistema de busca para chegar mais rapidamente à informação que não encontram... e daí as coisas pioram... as consultas começam a engargalar... a sessão termina e o banco de dados dispara  deletes  ao meio de consultas complexas, e então o servidor cai. 
Causas Tabelas MyISAM quando deveriam ser InnoDB;  MySQL e as consultas em índices FULLTEXT; O  purge  de session; Consultas desnecessárias na página inicial
MyISAM  vs  InnoDB MyISAM possui índices FULLTEXT e é mais rápido para consultas
InnoDB MyISAM InnoDB permite multi-acessos e suporta transações
Principais alterações InnoDB jos_users InnoDB jos_session InnoDB * jos_content InnoDB jos_banner Mudar para : Tabela :
Se consultas de busca utilizam os índices FULLTEXT das tabelas MyISAM, não se pode mudar para InnoDB Utilizar tabela espelho ou replicação de banco de dados.
SELECT * FROM mysqltest.articles  WHERE MATCH(title, body) AGAINST ('database article');
 
libraries/database/table/session.php
Queries da página inicial Se sua página inicial é totalmente modular, e o link padrão para a página inicial ainda é: index.php?option=com_content&view=frontpage Então as consultas de montagem do conteúdo de artigos de página inicial são desnecessárias. E não basta desmarcar todos os itens para a página principal.
Abrir: components/com_content/views/frontpage/view.html.php Comentar da linha 33 à 96. E acrescentar: //ALTERACAO BERLANDA $total = NULL; $user = NULL; $access = NULL; $params = NULL; $items = NULL; //FIM ALTERACAO
How to Abrir: components/com_content/views/frontpage/tmpl/default.php ou arquivo do template:   (templates/XXXX/html/com_content/frontpage/default.php) Abrir arquivo e deixá-lo em branco. OU, para ficar bonito: Criar componente com  view=frontpage e deixar  tmpl  em branco.
O que você fez? Economizou recursos e consultas para montagem da sua página inicial.
Solução extrema # 1 Utilizar 2 Servidores MySQL Solução extrema # 1 Utilizar 2 Servidores MySQL
Solução extrema #1 Dois bancos MySQL sincronizados, onde: O usuário de acesso do master possui permissões de SELECT, INSERT, UPDATE, DELETE. O usuário de acesso do " slave " possui somente permissão de SELECT.   As consultas complexas ficam a cargo do  slave  enquanto as consultas de rotina ficam a cargo do servidor  master . Oficial: http://dev.mysql.com/doc/refman/4.1/pt/replication.html Não oficial: http://www.dicas-l.com.br/arquivo/replicacao_de_mysql.php  Mais informações em:
Solução extrema #1 - Vantagens Se o slave fica lento devido às consultas complexas, o master não é afetado, ou seja, sua página inicial fica preservada. Backup em tempo real, em caso de problemas físicos com o servidor  master .
Solução extrema #1 - Desvantagens Necessária verificação do status de sincronia. Caso ela se perca, a busca ou outros serviços que recorram ao servidor  slave  mostrarão dados desatualizados.
Implementação 1. Criar nova classe de configuração, a partir da classe principal (configuration.dboffline.php)
Implementação
Implementação 1. Criar nova classe de configuração, a partir da classe principal 2. Criar um novo construtor de configuração na  Factory  do Joomla (  libraries/joomla/factory.php  ) 3. Criar um novo construtor da classe de banco de dados 4. "Instanciar" sempre que necessário e voilá Ao invés de: $db =& JFactory::getDBO(); Mudar para:   $db =& JFactory::getDBoffline();
 
Como detectar quais consultas devem ser apontadas para o novo objeto ? 1. Solicitar o  log  de  queries  lentas do seu servidor MySQL. 2. Filtre e organize-as por ordem, do maior tempo de execução para o menor, e depois do maior número de ocorrências para o menor número. 3. Ligar a depuração do sistema e identificar em qual página/módulo/componente a consulta é realizada, caso haja dificuldades em identificar onde a  query  lenta está sendo realizada.
Ei, isto não é POG! Tudo foi instanciado e respeita a estrutura de funcionamento do Joomla
Gargalos de aplicação "Mesmo assim, o site ainda está lento..." Solução extrema 1:  utilização de balanceador de carga juntamente com 2 ou mais servidores de aplicação espelhados Solução extrema 2:  Proxy reverso
Gargalo de banda de transferência
Gargalos de banda de transferência Bola de neve: 1 Kb se torna vários  megabytes . Mais de um  framework  javascript: mootools do Joomla + jquery Várias áreas de banners Vários arquivos css Vários arquivos javascript Template pronto
“ Banda não é capim” Forneça a informação mais útil naquele momento mais rapidamente que as demais Crie uma política de dimensões e peso limites para imagens nos sites e feche um acordo com os publicadores de conteúdo Se ninguém te contou, png (8 bits) é melhor que gif, para imagens com dimensões superiores a 35 x 35  pixels . 1 Kb para 1000 usuários ~= 1Mb  Se ninguém te contou,  templates  prontos costumam ser mais pesados porque em geral possuem mais do que você precisa. Se você ficar obcecado: utilize seletores e propriedades css na mesma linha, sem quebras de linha entre as propriedades ou comentários
Para detectar problemas com banda de transferência Web Developer YSlow
Segurança
Um site é seguro quando: Impede acesso e/ou ações não autorizadas Acesso se refere a computadores, sistemas e informações.
“ Quando você não tem medo da madrugada de domingo” “ Você não precisa de dois aparelhos de celular” Segurança em TI é quando...
Problemas comuns de segurança de portais em Joomla SQL  Injection Alterações no banco Obtenção de dados   Falhas humanas Senhas fáceis de quebrar Permissões de pasta muito altas Falta de política de upload em pastas Código mal programado (de terceiros)
O que o Joomla te oferece? htaccess SEMPRE renomeie de htaccess.txt para .htaccess O Joomla sem .htaccess é pouco seguro. Ele bloqueia os SQL  injections  mais comuns Ele bloqueia acesso aos arquivos xml de instalação de componentes e módulos ( Brian Teeman ) Permite URLs amigáveis sem que "index.php" tenha que aparecer no meio das mesmas.
Para começar: Joomla Hidden Secrets  - Brian Teeman A partir desta apresentação o bloqueio dos arquivos xml passou a ser padrão para o Joomla 1.5 . Impede acesso a informações do seu Joomla (fica difícil até saber se é Joomla) Regra de qualidade e segurança n.1 do profissional em Joomla: nada aparece (ou permanece) em meu site que eu não tenha colocado lá. 
Joomla hidden secrets #1 Esconda os componentes não utilizados, desabilitando-os.
Joomla hidden secrets #2 Esconda as posições dos módulos: não é egoísmo, é porque dá detalhes da sua implementação.
Joomla hidden secrets #3 Alterar meta tag  generator  (não precisa informar que é o Joomla 1.5 )
Joomla hidden secrets #4 NUNCA use  jos_  como prefixo
Joomla hidden secrets #5 Remova user com id = 62
Joomla hidden secrets #6 Renomeie o username  admin
E por que tudo isso?? Quanto mais informação você dá, mais fácil fica para o atacante.
E digo mais... Altere o id e o indice de auto increment do seu primeiro usuário para um valor mais alto, do tipo 62 x  
Para mim, cada qual tem sua função:  backend  e  frontend Remover botão de editar artigos no frontend Remover task relacionada Remover com_media de  frontend .
E... Não confie na boa vontade ou inocência do seus usuários
Hei, ACORDEM!
Consultas mais seguras via php sprintf / sprintfv + mysql_quote. Force o tipo: Verifique os tipos de variáveis utilizadas. Force o  method .
Atitude extrema # 1   Apagar pastas  reset  e da  view  de frontend de  users
Atitude extrema # 2   Utilizar  captcha   para: Login de  backend  ou  frontend,  Registro de usuários e Mensagem de contato
Captcha ?
Atitude extrema # 3   Renomear pasta administrator para outro nome qualquer
Atitude extrema #3 Renomear pasta do  administrator  : O Joomla é composto de 3 aplicações distintas: administrator, xmlrpc e  frontend .  Alterar constantes no arquivo includes/defines.php Alterar arquivos xml. Alterar application.php Componente mais chato de adaptar que vi até hoje: Acajoom (módulo e componente de frontend)
Ou mais simples: Colocar bloqueio na pasta, por senha. Utilizando .htaccess e ( .htpasswd ) Desvantagem: senha visível em texto
Outros requisitos e customizações XHTML  tableless Porquê: Facilita implementações de acessibilidade, no que tange a governo Seu código fica de indexação mais fácil pelos robôs de busca, no que tange a empresas Fica mais fácil implementar versões  mobile
Tire o Joomla do pedestal O  core  da ferramenta não é intocável Não tenha medo de customizar seu Joomla, mas quanto mais você altera, maior sua responsabilidade. E as atualizações? Ainda são possíveis.
Dia-a-dia e sugestões Depois de alterar seu joomla e criar uma versão sua, como atualizar a versão: 1.5.X para 1.5.X++ :  Winmerge , cópia original da versão que você utiliza, + seu site, + pacote de atualização e, paciência oriental. Comparar o que você tem com o pacote original, para obter a lista que você alterou em relação ao original. Atualizar os arquivos/pastas que não estão presentes na lista gerada. Arquivos da lista: abrir arquivo por arquivo e copiar/alterar o arquivo que tiver sido atualizado. Teste o software, você verá que ele facilitará bastante o trabalho.
Não há uma maneira melhor? Deve haver, mas assim sei exatamente o que foi alterado, e escolho se atualizo ou não.
Desconfie:
Cuidado com o componente faz tudo. Infelizmente não consigo testar todos os componentes da comunidade que existem neste sentido, contudo, quem trabalha com portais, precisa ter uma característica:  desconfiança. O que você faz, mesmo que não seja a melhor solução, é criação sua e você sabe exatamente onde alterar, em caso de problemas. Desconfie:
Não dá para culpar os desenvolvedores da comunidade em caso de  bug  ou falha de segurança, a culpa é sua. Em caso de erro, o culpado será você
Ainda sobre desconfiança Posso apanhar aqui, maasss: Espere pelo menos 6 meses antes de atualizar seu site de maior porte para a versão 1.6
O QUÊ?!!!
Versão estável não quer dizer versão madura O Joomla 1.5 teve problemas de segurança importantes até a versão 1.5.9 (nada que não pudesse ser contornado com os cuidados mencionados sobre remoção de pastas e usuários) Sim, isso mesmo…
Não faça seu usuário ter antipatia pelo Joomla Implemente facilidades e atalhos A solução se adapta à necessidade do usuário e não é o usuário que se adapta à necessidade da solução Mas... treine seus usuários
Joomla hidden secrets e qualidade/SEO Edição do robots.txt (libere a pasta images)
Joomla hidden secrets e qualidade/SEO Páginas de erro mais bonitas e coerentes
Testes de  performance - Jakarta Jmeter
Perguntas / Feedback E agradecimentos Equipe web e equipe de banco de dados do Ministério da Educação  Organização do Joomla Day Daniel Leandro. Brasal Julio Pontes. Noix Obrigado! rafaelberlanda@gmail.com @berlanda

Joomla Day Brasil 2010: Customizações para grandes portais

  • 1.
    Customizações para grandesPortais Rafael Berlanda Membro da Comunidade Joomla Calango Joomla Day Brasil 2010 imitação de capa de um livro da Pckt Publishing, realizada sem motivo aparente  Miscelânea de adaptações que podem ser úteis
  • 2.
    Quem? Rafael BerlandaAtuando no Ministério da Educação desde 2007 e trabalhando com Web desde 2001.    Joomla desde 2007: Layout da versão  anterior do Portal do MEC Analista de Sistemas e Desenvolvedor Joomla Desenvolvedor do Portal CNJ entregue em 2009
  • 3.
    Estrutura desta apresentaçãoPerformance Segurança Outros requisitos dia-a-dia e sugestões   Possui conceitos básicos até experimentações realizadas nos projetos dentro e fora do ambiente de trabalho, fruto da colaboração de várias pessoas Versão de referência: Joomla > 1.5.10  
  • 4.
  • 5.
    No contexto deTI, significa prover mais serviços com os mesmos, ou com menos recursos. Para sites, portanto, prevê: Abertura e resposta mais rápida dos sites Economia de banda de transferência Suporte a diversas conexões simultâneas  
  • 6.
    Joomla te dárecursos: Configurações do cache (performance) Configurações da sessão (+- performance) Com usuário Super Administrator: Configuração Global > Sistema
  • 7.
    Joomla te dárecursos: Economia de banda
  • 8.
    Nem todos oscomponentes funcionam bem com cache: há possibilidade de ocorrência de erros de charset nas entradas de dados realizadas através destes componentes Nem todos os módulos suportam cache (há a opção de escolher para qual utilizar ou não, na maioria dos casos) Não há publicação em tempo real, a partir do momento em que você utiliza cache Até onde a compressão gzip pode afetar a performance ? Desvantagens
  • 9.
  • 10.
    1. Aumento donúmero de acessos 2. Aumento do número de buscas 3. Limpeza de Session 4. DB Out…
  • 11.
    O pesadelo Todosentram ao mesmo tempo no seu site e ele começa a ficar lento... então as pessoas começam a utilizar o sistema de busca para chegar mais rapidamente à informação que não encontram... e daí as coisas pioram... as consultas começam a engargalar... a sessão termina e o banco de dados dispara deletes ao meio de consultas complexas, e então o servidor cai. 
  • 12.
    Causas Tabelas MyISAMquando deveriam ser InnoDB; MySQL e as consultas em índices FULLTEXT; O purge de session; Consultas desnecessárias na página inicial
  • 13.
    MyISAM vs InnoDB MyISAM possui índices FULLTEXT e é mais rápido para consultas
  • 14.
    InnoDB MyISAM InnoDBpermite multi-acessos e suporta transações
  • 15.
    Principais alterações InnoDBjos_users InnoDB jos_session InnoDB * jos_content InnoDB jos_banner Mudar para : Tabela :
  • 16.
    Se consultas debusca utilizam os índices FULLTEXT das tabelas MyISAM, não se pode mudar para InnoDB Utilizar tabela espelho ou replicação de banco de dados.
  • 17.
    SELECT * FROMmysqltest.articles WHERE MATCH(title, body) AGAINST ('database article');
  • 18.
  • 19.
  • 20.
    Queries da páginainicial Se sua página inicial é totalmente modular, e o link padrão para a página inicial ainda é: index.php?option=com_content&view=frontpage Então as consultas de montagem do conteúdo de artigos de página inicial são desnecessárias. E não basta desmarcar todos os itens para a página principal.
  • 21.
    Abrir: components/com_content/views/frontpage/view.html.php Comentarda linha 33 à 96. E acrescentar: //ALTERACAO BERLANDA $total = NULL; $user = NULL; $access = NULL; $params = NULL; $items = NULL; //FIM ALTERACAO
  • 22.
    How to Abrir:components/com_content/views/frontpage/tmpl/default.php ou arquivo do template: (templates/XXXX/html/com_content/frontpage/default.php) Abrir arquivo e deixá-lo em branco. OU, para ficar bonito: Criar componente com view=frontpage e deixar tmpl em branco.
  • 23.
    O que vocêfez? Economizou recursos e consultas para montagem da sua página inicial.
  • 24.
    Solução extrema #1 Utilizar 2 Servidores MySQL Solução extrema # 1 Utilizar 2 Servidores MySQL
  • 25.
    Solução extrema #1Dois bancos MySQL sincronizados, onde: O usuário de acesso do master possui permissões de SELECT, INSERT, UPDATE, DELETE. O usuário de acesso do " slave " possui somente permissão de SELECT.   As consultas complexas ficam a cargo do slave enquanto as consultas de rotina ficam a cargo do servidor master . Oficial: http://dev.mysql.com/doc/refman/4.1/pt/replication.html Não oficial: http://www.dicas-l.com.br/arquivo/replicacao_de_mysql.php Mais informações em:
  • 26.
    Solução extrema #1- Vantagens Se o slave fica lento devido às consultas complexas, o master não é afetado, ou seja, sua página inicial fica preservada. Backup em tempo real, em caso de problemas físicos com o servidor master .
  • 27.
    Solução extrema #1- Desvantagens Necessária verificação do status de sincronia. Caso ela se perca, a busca ou outros serviços que recorram ao servidor slave mostrarão dados desatualizados.
  • 28.
    Implementação 1. Criarnova classe de configuração, a partir da classe principal (configuration.dboffline.php)
  • 29.
  • 30.
    Implementação 1. Criarnova classe de configuração, a partir da classe principal 2. Criar um novo construtor de configuração na Factory do Joomla ( libraries/joomla/factory.php ) 3. Criar um novo construtor da classe de banco de dados 4. "Instanciar" sempre que necessário e voilá Ao invés de: $db =& JFactory::getDBO(); Mudar para:   $db =& JFactory::getDBoffline();
  • 31.
  • 32.
    Como detectar quaisconsultas devem ser apontadas para o novo objeto ? 1. Solicitar o log de queries lentas do seu servidor MySQL. 2. Filtre e organize-as por ordem, do maior tempo de execução para o menor, e depois do maior número de ocorrências para o menor número. 3. Ligar a depuração do sistema e identificar em qual página/módulo/componente a consulta é realizada, caso haja dificuldades em identificar onde a query lenta está sendo realizada.
  • 33.
    Ei, isto nãoé POG! Tudo foi instanciado e respeita a estrutura de funcionamento do Joomla
  • 34.
    Gargalos de aplicação"Mesmo assim, o site ainda está lento..." Solução extrema 1: utilização de balanceador de carga juntamente com 2 ou mais servidores de aplicação espelhados Solução extrema 2: Proxy reverso
  • 35.
    Gargalo de bandade transferência
  • 36.
    Gargalos de bandade transferência Bola de neve: 1 Kb se torna vários megabytes . Mais de um framework javascript: mootools do Joomla + jquery Várias áreas de banners Vários arquivos css Vários arquivos javascript Template pronto
  • 37.
    “ Banda nãoé capim” Forneça a informação mais útil naquele momento mais rapidamente que as demais Crie uma política de dimensões e peso limites para imagens nos sites e feche um acordo com os publicadores de conteúdo Se ninguém te contou, png (8 bits) é melhor que gif, para imagens com dimensões superiores a 35 x 35 pixels . 1 Kb para 1000 usuários ~= 1Mb Se ninguém te contou, templates prontos costumam ser mais pesados porque em geral possuem mais do que você precisa. Se você ficar obcecado: utilize seletores e propriedades css na mesma linha, sem quebras de linha entre as propriedades ou comentários
  • 38.
    Para detectar problemascom banda de transferência Web Developer YSlow
  • 39.
  • 40.
    Um site éseguro quando: Impede acesso e/ou ações não autorizadas Acesso se refere a computadores, sistemas e informações.
  • 41.
    “ Quando vocênão tem medo da madrugada de domingo” “ Você não precisa de dois aparelhos de celular” Segurança em TI é quando...
  • 42.
    Problemas comuns desegurança de portais em Joomla SQL Injection Alterações no banco Obtenção de dados   Falhas humanas Senhas fáceis de quebrar Permissões de pasta muito altas Falta de política de upload em pastas Código mal programado (de terceiros)
  • 43.
    O que oJoomla te oferece? htaccess SEMPRE renomeie de htaccess.txt para .htaccess O Joomla sem .htaccess é pouco seguro. Ele bloqueia os SQL injections mais comuns Ele bloqueia acesso aos arquivos xml de instalação de componentes e módulos ( Brian Teeman ) Permite URLs amigáveis sem que "index.php" tenha que aparecer no meio das mesmas.
  • 44.
    Para começar: JoomlaHidden Secrets - Brian Teeman A partir desta apresentação o bloqueio dos arquivos xml passou a ser padrão para o Joomla 1.5 . Impede acesso a informações do seu Joomla (fica difícil até saber se é Joomla) Regra de qualidade e segurança n.1 do profissional em Joomla: nada aparece (ou permanece) em meu site que eu não tenha colocado lá. 
  • 45.
    Joomla hidden secrets#1 Esconda os componentes não utilizados, desabilitando-os.
  • 46.
    Joomla hidden secrets#2 Esconda as posições dos módulos: não é egoísmo, é porque dá detalhes da sua implementação.
  • 47.
    Joomla hidden secrets#3 Alterar meta tag generator (não precisa informar que é o Joomla 1.5 )
  • 48.
    Joomla hidden secrets#4 NUNCA use jos_ como prefixo
  • 49.
    Joomla hidden secrets#5 Remova user com id = 62
  • 50.
    Joomla hidden secrets#6 Renomeie o username admin
  • 51.
    E por quetudo isso?? Quanto mais informação você dá, mais fácil fica para o atacante.
  • 52.
    E digo mais...Altere o id e o indice de auto increment do seu primeiro usuário para um valor mais alto, do tipo 62 x  
  • 53.
    Para mim, cadaqual tem sua função: backend e frontend Remover botão de editar artigos no frontend Remover task relacionada Remover com_media de frontend .
  • 54.
    E... Não confiena boa vontade ou inocência do seus usuários
  • 55.
  • 56.
    Consultas mais segurasvia php sprintf / sprintfv + mysql_quote. Force o tipo: Verifique os tipos de variáveis utilizadas. Force o method .
  • 57.
    Atitude extrema #1 Apagar pastas reset e da view de frontend de users
  • 58.
    Atitude extrema #2 Utilizar captcha para: Login de backend ou frontend, Registro de usuários e Mensagem de contato
  • 59.
  • 60.
    Atitude extrema #3 Renomear pasta administrator para outro nome qualquer
  • 61.
    Atitude extrema #3Renomear pasta do administrator : O Joomla é composto de 3 aplicações distintas: administrator, xmlrpc e frontend . Alterar constantes no arquivo includes/defines.php Alterar arquivos xml. Alterar application.php Componente mais chato de adaptar que vi até hoje: Acajoom (módulo e componente de frontend)
  • 62.
    Ou mais simples:Colocar bloqueio na pasta, por senha. Utilizando .htaccess e ( .htpasswd ) Desvantagem: senha visível em texto
  • 63.
    Outros requisitos ecustomizações XHTML tableless Porquê: Facilita implementações de acessibilidade, no que tange a governo Seu código fica de indexação mais fácil pelos robôs de busca, no que tange a empresas Fica mais fácil implementar versões mobile
  • 64.
    Tire o Joomlado pedestal O core da ferramenta não é intocável Não tenha medo de customizar seu Joomla, mas quanto mais você altera, maior sua responsabilidade. E as atualizações? Ainda são possíveis.
  • 65.
    Dia-a-dia e sugestõesDepois de alterar seu joomla e criar uma versão sua, como atualizar a versão: 1.5.X para 1.5.X++ : Winmerge , cópia original da versão que você utiliza, + seu site, + pacote de atualização e, paciência oriental. Comparar o que você tem com o pacote original, para obter a lista que você alterou em relação ao original. Atualizar os arquivos/pastas que não estão presentes na lista gerada. Arquivos da lista: abrir arquivo por arquivo e copiar/alterar o arquivo que tiver sido atualizado. Teste o software, você verá que ele facilitará bastante o trabalho.
  • 66.
    Não há umamaneira melhor? Deve haver, mas assim sei exatamente o que foi alterado, e escolho se atualizo ou não.
  • 67.
  • 68.
    Cuidado com ocomponente faz tudo. Infelizmente não consigo testar todos os componentes da comunidade que existem neste sentido, contudo, quem trabalha com portais, precisa ter uma característica: desconfiança. O que você faz, mesmo que não seja a melhor solução, é criação sua e você sabe exatamente onde alterar, em caso de problemas. Desconfie:
  • 69.
    Não dá paraculpar os desenvolvedores da comunidade em caso de bug ou falha de segurança, a culpa é sua. Em caso de erro, o culpado será você
  • 70.
    Ainda sobre desconfiançaPosso apanhar aqui, maasss: Espere pelo menos 6 meses antes de atualizar seu site de maior porte para a versão 1.6
  • 71.
  • 72.
    Versão estável nãoquer dizer versão madura O Joomla 1.5 teve problemas de segurança importantes até a versão 1.5.9 (nada que não pudesse ser contornado com os cuidados mencionados sobre remoção de pastas e usuários) Sim, isso mesmo…
  • 73.
    Não faça seuusuário ter antipatia pelo Joomla Implemente facilidades e atalhos A solução se adapta à necessidade do usuário e não é o usuário que se adapta à necessidade da solução Mas... treine seus usuários
  • 74.
    Joomla hidden secretse qualidade/SEO Edição do robots.txt (libere a pasta images)
  • 75.
    Joomla hidden secretse qualidade/SEO Páginas de erro mais bonitas e coerentes
  • 76.
    Testes de performance - Jakarta Jmeter
  • 77.
    Perguntas / FeedbackE agradecimentos Equipe web e equipe de banco de dados do Ministério da Educação Organização do Joomla Day Daniel Leandro. Brasal Julio Pontes. Noix Obrigado! rafaelberlanda@gmail.com @berlanda