Prestashop – Erro 500 – Soluções

PS 1.5.X + PS 1.6 X

magic_quotes_gpc = off
memory_limit = 256M (ideal: 512M - PS 1.6.)
max_execution_time = 300
max_input_time = 300
upload_max_filesize = 20M
post_max_size = 20M
max_input_vars = 10000
allow_url_fopen = on - com isso vc. pode importar imagens ou outros acessos externamente
safe_mode = off
cURL - instalado para que por ex. Paypal e outros servicos web funcionem sem problemas.
mod_rewrite = instalado e ativado
mod_security = off

php 5.3 ou versao mais alta (para PS 1.6. é melhor usar a partir de php 5.4.5 ou acima) – já PS 1.7. requere ao menos php 5.6.x + php-fmp + opcache com valores próprios)
mySQL 5.5 ou acima
servidor LINUX (nao anconselhamos usar Prestashop em servidores Windows)
cageFS ou outra técnica FIREWALL instalada no servidor configurada corretamente para que o back-office nao fique lento por bloquear servicos externos que o Prestashop usa. Em caso de dúvida, ou back-office lento, por favor perguntar o provedor do seu alojamento se existem firewalls instalados !!!

PS 1.7.X – além da configuracao mínima para PS 1.5/1.6 se ajuntam os próximos requisitos mínimos:

PHP ao mínimo 5.6.x – quem for usar 5.6.x, deverá instalar o módulo php-fpm e configurar o opcache com valores próprios.

opcache.revalidate_freq=0
opcache.validate_timestamps=0 (comment this out in your dev environment)
opcache.max_accelerated_files=7963
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.fast_shutdown=1

Ou entao php 7, que trabalha mais rápido.

memory_limit = 512 M

JSON = ON
ctype = ON
máquina mySQL = INNODB (myIsam nao funciona corretamente)
php.ini do servidor deverá incluir a configuracao date.timezone
Open SSL 1.2 ou acima

Além disso, é importante ter permissões automáticas para criação/alteração/remoção de pastas e arquivos (mod suExec / suPHP).

Assim todos os scripts e usuários internos (de dentro do servidor) têm acesso total a pastas e arquivos automaticamente, enquanto acessos externos tem acesso apenas de leitura, sem aa necessidade de alterar esses parâmetros manualmente.
Use também a opção (nativa) “Disable apache multiViews” = SIM no back-office da sua loja para optimizar o seu projeto (Preferencias -> SEO & URLS), se o servidor permitir.

PS 1.5.

Especialmente para lojas grandes, (mais de 2.000 produtos) eu recomendo o uso de opções Cache (CCC e também aceleradores como por exemplo eAccelerator, APC, Memcached e/ou tecnologia fast-cgi).

PS 1.6./PS 1.7

Neste caso aconselhamos usar servidores ngnix e fast-cgi para lojas grandes (mais de 2.000 produtos). A partir da versao PS 1.6. nao mais sao sustentados os aceleradores de cache á base de módulos PHP como APC, eAccelerator e outros). Isto devido ao uso de versoes php acima de 5.4. que nao mais sustentam estes módulos.

*************************************************************************************************
Schema CHMOD para PS 1.5+ (caso o servidor não tenha permissões automáticas):

As seguintes pastas devem ter ao mínimo permissão CHMOD 0750 ou 0755:

/cache
/cache/cachefs
/cache/smarty
/cache/smarty/cache
/cache/smarty/compile
/cache/tcpdf
/classes
/config
/config/xml/
/controllers
/css
/docs
/download
/img
/js
/localization
/log
/mails
/modules
/override
/pdf
/themes/default/cache
/themes/default/lang
/themes/tema em uso/cache
/themes/tema em uso/lang
/translations
/upload
/webservices

Todos os outros arquivos e pastas dentro destas pastas/sub-pastas devem ter permissão, incluido .htacces CHMOD 0640 ou 0644. Unica exceção: Os arquivos sitemap.xml e robots.txt no root da loja, estes devem ter permissão 0755 ao mínimo, mas nunca 0777.

Também todas as imagens nas sub-pastas /img/X/imagem.jpg devem ter permissão no máximo de 0755, mas nunca 0777, para que possam ser substituídas se necessário do seu back-office.

NOTA: Permissóes 0777 no servidor, será equivalente a deixar as chaves da sua porta de casa no lado de fora da fechadura. Assim qualquer ladráo poderá entrar em sua casa, tal e qual como um Hacker facilmente mudará conteúdo no seu site, se o mesmo possuir as perimssóes 0777 ou até mesmo ficar com o controlo do seu servidor.

Permissões ideais serão 0750 ou 0755 para pastas, podendo no máximo ir até 0770 0u 0775. Para arquivos deveremos colocar, de preferencia, 0640 ou 0644, nunca indo além de 0660 ou 0664.


Quanto mais alto o número menos seguro o seu site e servidor ficam.

Fonte: Prestashop Fórum

Problema Json e Acentuação – Retornando null

Boa tarde pessoal. Essa semana tive um problema com o jquery autocomplete, que retornava NULL para as strings acentuadas. Fiz diversas buscas no google, por fim a solução foi muito simples.

Solução:

Exemplo da chamada do autocomplete:

$("#txNomePessoa").autocomplete({
				source: "autocompletarNomePessoa.php",
				minLength: 1,
				select: function( event, ui ) {
         			$("#txtIdPessoa").val(ui.item.codigo);
      			}
});

No arquivo autocompletarNomePessoa.php devemos adicionar a seguinte linha, antes da consulta sql

mysql_query('SET CHARACTER SET utf8');

O arquivo fica assim:

< ?php
$return_arr = array();
$dbhost = 'enderecodoservidor';
$dbuser = 'usuariodobanco';
$dbpass = 'senhadobanco';
$dbname = 'nomedobanco';
 
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db($dbname);
/* If connection to database, run sql statement. */
if ($conn)
{
	mysql_query('SET CHARACTER SET utf8');
	$fetch = mysql_query("SELECT * FROM pessoas WHERE nomepessoa LIKE '%" . $_GET['term'] . "%'"); 
 
	/* Retrieve and store in array the results of the query.*/
 
	while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
		$row_array['label'] = $row['nomepessoa'];
		$row_array['value'] = $row['nomepessoa'];
		$row_array['codigo'] = $row['idpessoa'];
 
        array_push($return_arr,$row_array);
    }
 
}
/* Free connection resources. */
mysql_close($conn);
 
/* Toss back results as json encoded array. */
echo json_encode($return_arr);
?>

Espero ajudar muita gente com esse post, pois na internet tem muitas dúvidas sobre isso, e soluções meio “exageradas”.

Squid – Resolvendo erros ao tentar parar, iniciar ou reiniciar

Muitas vezes ao tentar parar, iniciar ou reiniciar o Squid, recebemos a seguinte mensagem:

Stop: unknown instance

Ou:

Start: unknown instance

Isso ocorre, principalmente, quando estamos tentando modificar algo no ‘squid.conf”.

Esta mensagem ocorre devido a algum erro no seu “squid.conf” (erro de digitação, erro de sintaxe, etc.).

Mas, como descobrir onde eu errei? É só digitar no terminal:

squid -z

Vão aparecer todas as linhas com “defeito”, aí é só consertar!

Para testar novamente, repita o comando acima até que o sistema apresente a mensagem:

Creating Swap Directories

…E mais algumas 30 linhas informando os diretórios de cache.