Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#4528
Olá Pessoal,

Alguns já devem ter visto que Painel de Administração do Open Cart, na guia Servidor, tem um campo que pede um número de 0 a 9 para compressão do Gzip

Gzip? O que é?
Para quem não sabe, o Gzip é resumidamente um processo executado pelo servidor Web que comprime as páginas e as envia para o navegador, fazendo assim parecer que o seu site é rápido de abrir

É importante ressaltar o Gzip não é um passe de mágica, existem outros detalhes que precisam ser executados para que o Gzip possa ser 100% eficiente, do contrário ele será um recurso ativado porém sub-utilizado, por exemplo, é preciso compactar as imagens principais utilizando o http://www.smushit.com antes de enviar para o site, é preciso criar um subdomínio só para alocar as imagens, é preciso colocar a chamada dos CSS antes da chamada dos Scriptis do Java, é preciso dar o comando para fazer cache da sua página (isso inclui os scripts e as fotos) e dar uma data de expiração, do contrário toda hora que o visitante for acessar uma página será feito a chamada de todos aqueles arquivos que muitas vezes só precisam ser chamados uma única vez pois serão iguais em todas as partes do site, por exemplo, o cabeçalho, o rodapé e os scripts do Java, mas tudo isso também é assunto para outro tópico, se algúem tiver interesse nessas técnicas acima faz o pedido aqui que a gente explica

Vamos ao que interessa:

1 - Procure na pasta raiz da sua loja um arquivo chamado .htaccess ou htaccess.txt (se você não tem o .htaccess é preciso renomear o htaccess.txt para .htaccess, essa renomeção só funciona se você fizer via FTP diretamente dentro do seu servidor, não adianta baixar o arquivo e tentar renomear no Windows porque ele nao deixa, acho que Linux e OSx aceitam)

2 - Com o arquivo renomeado para .htaccess agora você pode baixar para o seu computador ou executar diretamente no seu servidor a edição dele, pode abrir diretamente como Bloco de Notas

3 - Faça backup do seu arquivo .htaccess por segurança

3 - Se encontrar algum código dentro do arquivo, não altere nada, vá para o fim do arquivo, dê uma linha em branco para dar espaço e adicione esse código
Código: Selecionar todos
AddOutputFilterByType DEFLATE text/html text/plain text/xml 
4 - Salve o arquivo, feche e envie de volta para o servidor gravando por cima

5 - Entre no Painel de Administração da sua loja, acesse a guia Servidor e coloque 9 no campo que pede o nível de compressão para Gzip (9 para aqueles que possuem um bom servidor de Hospedagem, quem tiver servidor próprio deve ir testando para não sobrecarregar o servidor de Hospedagem), salve e saia da administração

6 - Limpe o cache e os cookies de todos os navegadores que você tiver na máquina, acesse o seu site como se fosse um cliente e veja se nota diferença

6.1 - Se deu tudo OK até o item 6, ótimo, você poderá ir para o nível 2, vá direto para item 7

6.2 - Caso apareça algum erro no acesso, basta remover do arquivo .htacces a linha
Código: Selecionar todos
AddOutputFilterByType DEFLATE text/html text/plain text/xml 
6.2.1 - Troque a linha
Código: Selecionar todos
AddOutputFilterByType DEFLATE text/html text/plain text/xml 
por esse código
Código: Selecionar todos
<ifModule mod_gzip.c>

  mod_gzip_on Yes

  mod_gzip_dechunk Yes

  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$

  mod_gzip_item_include handler ^cgi-script$

  mod_gzip_item_include mime ^text/.*

  mod_gzip_item_include mime ^application/x-javascript.*

  mod_gzip_item_exclude mime ^image/.*

  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

</ifModule>
7 - Com o recurso Deflate instalado você poderá adicionar um recurso extra na compressão Gzip que é o módulo do próprio Gzip, basta adicionar o código a seguir logo após ter adicionado o item 3
Código: Selecionar todos
<ifModule mod_gzip.c>

  mod_gzip_on Yes

  mod_gzip_dechunk Yes

  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$

  mod_gzip_item_include handler ^cgi-script$

  mod_gzip_item_include mime ^text/.*

  mod_gzip_item_include mime ^application/x-javascript.*

  mod_gzip_item_exclude mime ^image/.*

  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

</ifModule>

8 - Repita o item 5 para testar a sua loja e ver a diferença
----------------------------------------------------------------------------------------------------

Cache? O que é?
Para quem não sabe o que é cache (que não é cachê, comissão gerada por participação), cache é uma técnica utilizada pelos navegadores para "acelerar" a navegação nos sites quando estes possuem o comando para que isso aconteça.

Como funciona o cache ?
Quando o cache está habilitado o navegador pega o arquivo que possui ordem para fazer cache e coloca uma cópia dele dentro do seu computador numa pasta de arquivos temporários da internet, pois quando este comando não existe o navegador então entende que toda vez que acessar aquela página, mesmo que você já tenha visitado ela, ele fará todo o downlad da página outra vez, sendo assim, é muito mais rápido o navegador buscar dentro do seu computador do que baixar novamente o mesmo arquivo.

Porém o cache é uma faca de dois gumes, pois se o comando para fazer cache não possuir um comando para informar ao navegador quando ele arquivo que ele fez o download deve ser substituído, você correrá o risco de fazer um visitante navegar pelo seu site com informações desatualizadas ou com erros, pois ele estará navegando com arquivos que estão dentro do computador dele e que podem já terem sidos substituídos no seu site, porém pela falta de comando de troca o navegador então não fez um novo download.

O tempo para realizar essa troca deve ser avaliado com cautela para que não sejam realizadas trocas constantes fazendo o recurso do cache perder efeito pois o navegador ficaria fazendo downloads ou ficaria navegando com informações desatualizadas, os grandes portais de notícias e as grandes lojas de comércio eletrônico usam o comando de troca, chamado de expiração, com data de 1 dia, ou seja, a cada 24h que o navegador passar por aquele mesmo endereço ele atualiza as informações.

Vamos ao que interessa:

Abra o arquivo .htaccess e vá ao fim dele para adicionar os dois seguintes módulos:
Código: Selecionar todos
<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>

<ifModule mod_headers.c>
  <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>
  <filesMatch "\\.(css)$">
    Header set Cache-Control "max-age=604800, public"
  </filesMatch>
  <filesMatch "\\.(js)$">
    Header set Cache-Control "max-age=216000, private"
  </filesMatch>
  <filesMatch "\\.(xml|txt)$">
    Header set Cache-Control "max-age=216000, public, must-revalidate"
  </filesMatch>
  <filesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </filesMatch>
</ifModule>
Com esse módulo do Gzip, o comando para cache, todos os CSS sendo executado antes do Javascript e as imagens puxadas pelos CSS e PHP em outro subdomínio, minha loja está com 80 pontos de um total de 100 quando analizada pelo Google Page Speed

Estamos as ordens
Editado pela última vez por acesbrasil em 30 Abr 2011, 21:59, em um total de 1 vez.
Avatar do usuário
Por acesbrasil
Mensagens
#4540
Manoel Vidal escreveu:Parabéns! Ótimo tutorial :D

Só lembrando que tem como criar/renomear o arquivo .htaccess no Windows com uma simples dica, inclusive da para habilitar a url amigável para teste no Windows mesmo, segue o link da dica:
https://forum.opencartbrasil.com.br/ ... f=18&t=107
Valeu Vidal pela correção. Quando escrevi quis dizer a renomear utilizando apenas o windows, sem recursos extras como servidor local ou etc

Abraços e sucesso a todos
#4950
Olá, desculpe ressuscitar o tópico mas é pq fiquei uma dúvida:
Qual a diferença do gzip que está lá no painel de configurações para esse seu método?

Pq lá tem um nível de gzip (de 0 a 9 se não me engano) e tbm li, não sei onde, que se definir um gzip muito alto pode afetar nas pesquisas do Google, é verdade?

Abraços e parabéns pelo tutorial!
#4952
Ruan escreveu:Olá, desculpe ressuscitar o tópico mas é pq fiquei uma dúvida:
Qual a diferença do gzip que está lá no painel de configurações para esse seu método?

Pq lá tem um nível de gzip (de 0 a 9 se não me engano) e tbm li, não sei onde, que se definir um gzip muito alto pode afetar nas pesquisas do Google, é verdade?

Abraços e parabéns pelo tutorial!
Qual a diferença do gzip que está lá no painel de configurações para esse seu método?
O recurso de Gzip no painel de controle do Open Cart só funciona se no .htaccess estiver o módulo que roda o Gzip, ou seja, no Open Cart a numeração é como um controle de intensidade e no .htaccess o On ou Off

...um gzip muito alto pode afetar nas pesquisas do Google, é verdade?
Negativo, os robôs do Google não abrem as páginas, ou seja, não sofrem nenhuma interferência de compressão ou descompressão e mesmo que sofressem, você acha que uma estrutura como a Google iria sofrer alguma influência de sites simples como os nossos?

Os robôs dos google lêem a programação do site e buscam as referências <a> e </a> que definem links e assim eles vão montando a estrutura da tua página na indexação deles, claro que há mais coisas mas é só pra começar a entender que o Gzip não faz interferência no Google

Prazer em ajudar, estamos a disposição
Editado pela última vez por acesbrasil em 06 Mai 2011, 08:43, em um total de 1 vez.
Por arbex5
#13254
Olá pessoal.
Tentei habilitar o recurso do GZIP no opencart 1.5.1.3.1 seguindo o tutorial, mas está dando a seguinte mensagem pelo mozilla:

Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.

Imagem

No chrome simplemente diz que a página não está disponível.

This webpage is not available

Alguma sugestão?
Obrigado.
#13411
Consegui resolver o problema.
O que aconteceu é que quando ativei a compactação do gzip no OpenCart através do menu Sistema > Configurações > Servidor > Nível de Compressão: 1a9 e coloquei no .htaccess as diretivas para compactação, ficou duplicado o processo de compactação.
O certo seria deixar somente no .htaccess ou somente no OpenCart.

O que fiz, e testei, foi deixar no .htaccess somente.
Para os interessados, com meu novo .htaccess o meu score no google page speed passou de 42 para 80.
Nada mal com um aumento de praticamente 100%

Ambiente de teste: OpenCart 1.5.1.3.1
Tradução obtida nesta comunidade.

Aqui está o .htacess :

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "\.(tpl|ini|log)">
Order deny,allow
Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

RewriteBase /
RewriteRule sitemap.xml /index.php?route=feed/google_sitemap
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

#AddOutputFilterByType DEFLATE text/html text/plain text/xml

################ Controle do tempo de Expiração ################
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>

<ifModule mod_headers.c>
<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
<filesMatch "\\.(js)$">
Header set Cache-Control "max-age=604800, private"
</filesMatch>
<filesMatch "\\.(xml|txt)$">
Header set Cache-Control "max-age=216000, public, must-revalidate"
</filesMatch>
<filesMatch "\\.(html|htm|php)$">
Header set Cache-Control "max-age=1, private, must-revalidate"
</filesMatch>
</ifModule>

# Ativa o tempo de expiração dos conteúdos
ExpiresActive On
ExpiresDefault A0

################## Ativa compactação GZip ###################
# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]