Alcir Posted September 17, 2014 Share Posted September 17, 2014 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 More sharing options...
CarlosC Posted September 17, 2014 Share Posted September 17, 2014 Boas, Pode desactivar a cache, esta na mesma pagina. Mas deveria verificar porque isso acontece, pode estar possivelmente relacionado com algum modulo ou o tema. Cumps Link to comment Share on other sites More sharing options...
Alcir Posted September 17, 2014 Author Share Posted September 17, 2014 O tema que utilizo é o padrão do prestashop. Será por que a base de dados possui 30 mil produtos? Link to comment Share on other sites More sharing options...
CarlosC Posted September 17, 2014 Share Posted September 17, 2014 Boas, Se o tema não foi alterado o problema pode estar relacionado com alguma modulo. Relativamente a quantidade de produtos deve mesmo utilizar cache. Link to comment Share on other sites More sharing options...
Alcir Posted September 18, 2014 Author Share Posted September 18, 2014 Exite alguma maneira de limpar o cache automaticamente? Link to comment Share on other sites More sharing options...
selectshop.at Posted September 18, 2014 Share Posted September 18, 2014 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 More sharing options...
Alcir Posted September 18, 2014 Author Share Posted September 18, 2014 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 More sharing options...
selectshop.at Posted September 18, 2014 Share Posted September 18, 2014 (edited) 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 September 20, 2014 by selectshop.at (see edit history) Link to comment Share on other sites More sharing options...
Alcir Posted September 19, 2014 Author Share Posted September 19, 2014 (edited) 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 September 19, 2014 by Alcir (see edit history) Link to comment Share on other sites More sharing options...
Daniel - PrestaBR Posted September 19, 2014 Share Posted September 19, 2014 Olá, Alcir Você deve verificar com o suporte do seu servidor de hospedagem, se tem a opção de configurar o PHP por um arquivo php.ini próprio. caso contrário só eles podem alterar esta configuração. Se puder, mude para um VPS. Assim vc poderá controlar tudo no seu servidor. Boa sorte Link to comment Share on other sites More sharing options...
Alcir Posted September 19, 2014 Author Share Posted September 19, 2014 (edited) 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 September 19, 2014 by Alcir (see edit history) Link to comment Share on other sites More sharing options...
selectshop.at Posted September 20, 2014 Share Posted September 20, 2014 (edited) 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. max_input_time=60 ? max_execution e max_input nao so o mesmo e devem ter o mesmo valor. Edited September 20, 2014 by selectshop.at (see edit history) Link to comment Share on other sites More sharing options...
Alcir Posted September 20, 2014 Author Share Posted September 20, 2014 Conforme pode ver no info.php, todas essas variáveis estão com o valor 600 e continua a mesma coisa. Link to comment Share on other sites More sharing options...
selectshop.at Posted September 20, 2014 Share Posted September 20, 2014 Pode ser um problema de cache para o back-office. Os valores no servidor sao os que contam e estao bons. Quando vc. efetua e dá erro, qual o erro que está sendo escrito nos logs de erro do servidor ? Erros do tipo 500 sao erros do servidor. Link to comment Share on other sites More sharing options...
selectshop.at Posted September 21, 2014 Share Posted September 21, 2014 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 More sharing options...
Alcir Posted September 21, 2014 Author Share Posted September 21, 2014 (edited) 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 September 21, 2014 by Alcir (see edit history) Link to comment Share on other sites More sharing options...
selectshop.at Posted September 22, 2014 Share Posted September 22, 2014 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 More sharing options...
Alcir Posted September 22, 2014 Author Share Posted September 22, 2014 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 e 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 More sharing options...
selectshop.at Posted September 22, 2014 Share Posted September 22, 2014 Provavelmente sim. No entanto é correcao cosmética para o back-office, mas nao correcao do erro 500 Link to comment Share on other sites More sharing options...
selectshop.at Posted September 22, 2014 Share Posted September 22, 2014 Atente para abrir e fechar as aspas: CORRETO: ini_set('memory_limit', '512M'); ini_set('memory_limit', 512M); INCORRETO Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now