Jump to content

LIMPAR SMARTY CACHE


Recommended Posts

Sempre o meu site Prestashop versão 1.5.5.0 da o erro INTERNAL SERVER ERROR quando efetuo alguma operação dentro do painel de administração.

Ai tenho que acessar o menu PARÂMETROS AVANÇADOS / DESEMPENHO e clicar sobre o botão LIMPAR SMARTY CACHE que resolve o problema.

 

Pergunto: Existe alguma forma de manter o cache sempre limpo?

Link to comment
Share on other sites

Qual o valor de límite de memória que tem e qual o limíte de execucao e input ? loja com 30.000 produtos necessita de outros valores.

 

limíte de memória 1024 se puder alterar, o tempo de execucao ideal deveria estar em 900 ou 1200 e o tempo de input em -1.

 

á qual cache vc. se refere. smarty cache nao é necessário limpar se vc. nao mexeu no template. O cache de uma página deve ser renovado pelo servidor, ou seja o módulo de cache do servidor mesmo e vc. nao tem como limpar. Verifique com o seu provedor se o sistema cache (apc, xcache, etc. que está usando ) pode ser esvaziado através do cPanel ou através de um cron.

Link to comment
Share on other sites

O cache que me refiro é o obtido através do menu PARÂMETROS AVANÇADOS / DESEMPENHO e clicar sobre o botão LIMPAR SMARTY CACHE.

 

As configurações que você mencionou é dentro do arquivo php.ini? Veja as configurações abaixo.

 

memory_limit = 128M

max_execution_time = 60

 

O INPUT esta dentro do php.ini também?

Link to comment
Share on other sites

Limíte de memória tao baixo ? Como está a performance da loja ?

max_execution_time com 60 é obvio que devolve um erro 500 do servidor. O limítie mínimo sugerido para execucao de scripts normais é de 300. (veja aqui os valores mínimos sugeridos) http://www.prestashop.com/forums/topic/236128-tutorial-servidor-configuracao-minima-para-ps-15/

 

Sim pode colocar o max_input também no seu php.ini, mas nao necessariamente o servidor tem que aceitar, se o seu provedor limitou.

 

Smarty cache nao é necessário deletar, se nao fez nenhuma alteracao no template ou instalou um módulo que mexe no template. Quanto ao outro cache que cria ficheiros de cache(geralmente minify) estes sao de poder do servidor e vc. nao tem como administrar, a nao ser que seja administrador do servidor.

Edited by selectshop.at (see edit history)
Link to comment
Share on other sites

Fiz as modificações no arquivo php.ini localizado na pasta /var/www/vhosts/pacobello.com.br/etc/php.ini mas parece que não surtiu efeito. O tempo continua em 30 segundos quando mando efetuar uma operação dentro do painel que demora mais que 30 segundos da o erro internal server error. Veja o info.php do site: http://www.pacobello.com.br/info.php

Edited by Alcir (see edit history)
Link to comment
Share on other sites

O servidor é um Cloud Linux Debian da Locaweb administrador por mim.

O engraçado é que no relatório info.php (http://www.pacobello.com.br/info.php) a variável max_execution_time=600 esta com o valor 600 mas acessei o painel do prestashop cadastrarei um produto e cliquei em SALVAR e o tempo continua 30 segundos (cronometrei) ai da o internal server error.

 

Acessei o servidor via SSH, pesquisei pelo arquivo PHP.INI e encontrei nas seguintes pastas:

 

/etc/php5/apache2/php.ini

/etc/php5/cli/php.ini

/etc/php5/cgi/php.ini

 

Fiz as configurações informada no link http://www.prestashop.com/forums/topic/236128-tutorial-servidor-configuracao-minima-para-ps-15/ nos três arquivos e continua da mesma forma.

O que pode ser?

Edited by Alcir (see edit history)
Link to comment
Share on other sites

Existem vários métodos de adaptar valores php em um servidor. Uma é local no servidor, e outra possibilidade é na software mesmo. Se vc. tem valores diferentes entao pode estar restringindo na software mesmo. Verifique no ficheiro confic,inc.php na parta /config do seu FTP, se nao tem uma linha restringindo os valores no bloco a partir da linha 35 - /* Improve PHP configuration to prevent issues */

Link to comment
Share on other sites

Tem sim, veja abaixo (marquei em vermelho) trecho de código dentro do arquivo config.inc.php. O que devo fazer?

 

require_once(dirname(__FILE__).'/defines.inc.php');
$start_time = microtime(true);
 
/* SSL configuration */
define('_PS_SSL_PORT_', 443);
 
/* Improve PHP configuration to prevent issues */
ini_set('upload_max_filesize', '100M');
ini_set('default_charset', 'utf-8');
ini_set('magic_quotes_runtime', 0);
 
/* correct Apache charset (except if it's too late */
if (!headers_sent())
header('Content-Type: text/html; charset=utf-8');
 
/* No settings file? goto installer... */
if (!file_exists(dirname(__FILE__).'/settings.inc.php'))
{
$dir = ((substr($_SERVER['REQUEST_URI'], -1) == '/' || is_dir($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : dirname($_SERVER['REQUEST_URI']).'/');
if (!file_exists(dirname(__FILE__).'/../install'))
die('Error: "install" directory is missing');
header('Location: install/');
exit;
}
 
require_once(dirname(__FILE__).'/settings.inc.php');
 
require_once(dirname(__FILE__).'/autoload.php');
 
if (_PS_DEBUG_PROFILING_)
{
include_once(_PS_TOOL_DIR_.'profiling/Controller.php');
include_once(_PS_TOOL_DIR_.'profiling/ObjectModel.php');
include_once(_PS_TOOL_DIR_.'profiling/Hook.php');
include_once(_PS_TOOL_DIR_.'profiling/Db.php');
include_once(_PS_TOOL_DIR_.'profiling/Tools.php');
}
 
if (Tools::isPHPCLI())
Tools::argvToGET($argc, $argv);
 
/* Redefine REQUEST_URI if empty (on some webservers...) */
if (!isset($_SERVER['REQUEST_URI']) || empty($_SERVER['REQUEST_URI']))
{
if (!isset($_SERVER['SCRIPT_NAME']) && isset($_SERVER['SCRIPT_FILENAME']))
$_SERVER['SCRIPT_NAME'] = $_SERVER['SCRIPT_FILENAME'];
if (isset($_SERVER['SCRIPT_NAME']))
{
if (basename($_SERVER['SCRIPT_NAME']) == 'index.php' && empty($_SERVER['QUERY_STRING']))
$_SERVER['REQUEST_URI'] = dirname($_SERVER['SCRIPT_NAME']).'/';
else
{
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'];
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING']))
$_SERVER['REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING'];
}
}
}
 
/* Trying to redefine HTTP_HOST if empty (on some webservers...) */
if (!isset($_SERVER['HTTP_HOST']) || empty($_SERVER['HTTP_HOST']))
$_SERVER['HTTP_HOST'] = @getenv('HTTP_HOST');
 
$context = Context::getContext();
 
/* Initialize the current Shop */
try 
{
$context->shop = Shop::initialize();
}
catch (PrestaShopException $e)
{
$e->displayMessage();
}
 
define('_THEME_NAME_', $context->shop->getTheme());
define('__PS_BASE_URI__', $context->shop->getBaseURI());
 
/* Include all defines related to base uri and theme name */
require_once(dirname(__FILE__).'/defines_uri.inc.php');
 
global $_MODULES;
$_MODULES = array();
 
/* Load configuration */
Configuration::loadConfiguration();
 
/* Load all languages */
Language::loadLanguages();
 
/* Loading default country */
$defaultCountry = new Country(Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT'));
$context->country = $defaultCountry;
 
/* It is not safe to rely on the system's timezone settings, and this would generate a PHP Strict Standards notice. */
@date_default_timezone_set(Configuration::get('PS_TIMEZONE'));
 
/* Set locales */
$locale = strtolower(Configuration::get('PS_LOCALE_LANGUAGE')).'_'.strtoupper(Configuration::get('PS_LOCALE_COUNTRY').'.UTF-8');
setlocale(LC_COLLATE, $locale);
setlocale(LC_CTYPE, $locale);
setlocale(LC_TIME, $locale);
setlocale(LC_NUMERIC, 'en_US.UTF-8');
 
/* Instantiate cookie */
 
 
$cookie_lifetime = (int)(defined('_PS_ADMIN_DIR_') ? Configuration::get('PS_COOKIE_LIFETIME_BO') : Configuration::get('PS_COOKIE_LIFETIME_FO'));
$cookie_lifetime = time() + (max($cookie_lifetime, 1) * 3600);
 
if (defined('_PS_ADMIN_DIR_'))
$cookie = new Cookie('psAdmin', '', $cookie_lifetime);
else
{
if ($context->shop->getGroup()->share_order)
$cookie = new Cookie('ps-sg'.$context->shop->getGroup()->id, '', $cookie_lifetime, $context->shop->getUrlsSharedCart());
else
{
$domains = null;
if ($context->shop->domain != $context->shop->domain_ssl)
 $domains = array($context->shop->domain_ssl, $context->shop->domain);
 
$cookie = new Cookie('ps-s'.$context->shop->id, '', $cookie_lifetime, $domains);
}
}
 
$context->cookie = $cookie;
 
/* Create employee if in BO, customer else */
if (defined('_PS_ADMIN_DIR_'))
{
$employee = new Employee($cookie->id_employee);
$context->employee = $employee;
 
/* Auth on shops are recached after employee assignation */
if ($employee->id_profile != _PS_ADMIN_PROFILE_)
Shop::cacheShops(true);
 
$cookie->id_lang = (int)$employee->id_lang;
}
 
/* if the language stored in the cookie is not available language, use default language */
if (isset($cookie->id_lang) && $cookie->id_lang)
$language = new Language($cookie->id_lang);
if (!isset($language) || !Validate::isLoadedObject($language))
$language = new Language(Configuration::get('PS_LANG_DEFAULT'));
$context->language = $language;
 
if (!defined('_PS_ADMIN_DIR_'))
{
if (isset($cookie->id_customer) && (int)$cookie->id_customer)
{
$customer = new Customer($cookie->id_customer);
if(!Validate::isLoadedObject($customer))
$customer->logout();
else
{
$customer->logged = $cookie->logged;
 
if ($customer->id_lang != $context->language->id)
{
$customer->id_lang = $context->language->id;
$customer->update();
}
}
}
 
if (!isset($customer) || !Validate::isLoadedObject($customer))
{
$customer = new Customer();
 
// Change the default group
if (Group::isFeatureActive())
$customer->id_default_group = Configuration::get('PS_UNIDENTIFIED_GROUP');
}
$customer->id_guest = $cookie->id_guest;
$context->customer = $customer;
}
 
/* Link should also be initialized in the context here for retrocompatibility */
$context->link = new Link($https_link, $https_link);
 
/**
 * @deprecated : these defines are going to be deleted on 1.6 version of Prestashop
 * USE : Configuration::get() method in order to getting the id of order state
 */
define('_PS_OS_CHEQUE_',      Configuration::get('PS_OS_CHEQUE'));
define('_PS_OS_PAYMENT_',     Configuration::get('PS_OS_PAYMENT'));
define('_PS_OS_PREPARATION_', Configuration::get('PS_OS_PREPARATION'));
define('_PS_OS_SHIPPING_',    Configuration::get('PS_OS_SHIPPING'));
define('_PS_OS_DELIVERED_',   Configuration::get('PS_OS_DELIVERED'));
define('_PS_OS_CANCELED_',    Configuration::get('PS_OS_CANCELED'));
define('_PS_OS_REFUND_',      Configuration::get('PS_OS_REFUND'));
define('_PS_OS_ERROR_',       Configuration::get('PS_OS_ERROR'));
define('_PS_OS_OUTOFSTOCK_',  Configuration::get('PS_OS_OUTOFSTOCK'));
define('_PS_OS_BANKWIRE_',    Configuration::get('PS_OS_BANKWIRE'));
define('_PS_OS_PAYPAL_',      Configuration::get('PS_OS_PAYPAL'));
define('_PS_OS_WS_PAYMENT_', Configuration::get('PS_OS_WS_PAYMENT'));
 
/* Get smarty */
require_once(dirname(__FILE__).'/smarty.config.inc.php');
$context->smarty = $smarty;
Edited by Alcir (see edit history)
Link to comment
Share on other sites

Este ficheiro seria a única restricao possível que vc. pode fazer na base da software. Vc. tendo uma linha adicionada com o valor 60, mostraria no seu back-office também o valor 60 pois vc. restringe o ini do servidor valendo o ini do Prestashop.

 

Porque o seu back-office mostra 60 eu nao posso lhe dizer. O servidor está configurado com muito mais. Tanto o valor master como o valor que colocou mostram o que o servidor tem configurado.

Problemas com erro 500 infelizmente nao tem categoria. Vc. deverá observar quando aparecem e tentar descobrir através dos logs de erro do servidor mesmo.

Link to comment
Share on other sites

O problema é o servidor não estar acatando as configurações do arquivo php.ini.

Como por exemplo o tempo max_execution_time e max_input_time foram alterados para 600 e continua com 30 o tempo quando faço alguma operação dentro painel do prestashop.

 

E se eu acrescentar essas linhas max_execution_time max_input_time no arquivo config.inc.php será que vai resolver?

 

/* Improve PHP configuration to prevent issues */
ini_set('upload_max_filesize', '100M');
ini_set('default_charset', 'utf-8');
ini_set('magic_quotes_runtime', 0);
ini_set('memory_limit', 512M);
ini_set('max_execution_time', 600);
ini_set('max_input_time', 600);
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...