hackmbh 0 Denunciar post Postado Novembro 27, 2014 Srs! Fiz um sistema de registro de ligações. O sistema de busca possibilita trazer os resultados em período de tempo. Se tento buscar, por exemplo: ligações entre 30 dias. Retorna cerca de pouco mais de 500 registros, até esse momento tudo ok. Ele retorna os dados em uma tabela do Bootstrap 3. Quando tento buscar ligações com um período maior de 30 dias, ele deveria retornar mais de 1000 registros e novamente apresenta-lós na tabela, mas redireciona para 500 Internal Server Error. Já alterei o memory_limit do php.ini que estava com 128 passei para 2000 e mesmo assim, nada. Não estou usando LIMIT do MySQL e paginação via PHP, porque a paginação será executado via jQuery após o carregamento dos resultados. Estou usando PHP 5.5 no server. A interface do sistema está com tema do Bootstrap 3.0. Alguém poderia me passar alguma orientação? Obrigado! Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. Apache Server at solarisempresa.com Port 80 Compartilhar este post Link para o post Compartilhar em outros sites
Luis Paullo 47 Denunciar post Postado Novembro 27, 2014 Tem algum erro no seu codigo! habilite o display_errors, ou faça um um debug. Faça depuração com xdebug! Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Novembro 27, 2014 Se estiver usando Linux, veja os logs do apache com cat /var/log/apache2/error.log Compartilhar este post Link para o post Compartilhar em outros sites
hackmbh 0 Denunciar post Postado Novembro 27, 2014 Se estiver usando Linux, veja os logs do apache com cat /var/log/apache2/error.log Tem algum erro no seu codigo! habilite o display_errors, ou faça um um debug. Faça depuração com xdebug! Bom, ativei o display error e o error_reporting está da seguinte forma: error_reporting = E_ALL & ~E_NOTICE Luis Paulo, não apresenta erros. Vou tentar com xdebug. O bloco Resource Limits: max_execution_time = 300 max_input_time = 60 max_input_vars = 1000 memory_limit = 512M Marcos Xavier, na pasta do sistema, o Cpanel criou um arquivo error_log com as seguintes linhas. Seria isso? [27-Nov-2014 07:31:10 America/New_York] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 524288 bytes) in /home/solarise/public_html/atendimento/admin/system/empresas/index.php on line 92 [27-Nov-2014 07:35:23 America/New_York] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 524288 bytes) in /home/solarise/public_html/atendimento/admin/system/empresas/index.php on line 92 [27-Nov-2014 07:49:27 America/New_York] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 524288 bytes) in /home/solarise/public_html/atendimento/admin/system/empresas/index.php on line 92 [27-Nov-2014 07:49:45 America/New_York] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 524288 bytes) in /home/solarise/public_html/atendimento/admin/system/empresas/index.php on line 92 [27-Nov-2014 07:52:07 America/New_York] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 89 bytes) in /home/solarise/public_html/atendimento/_app/Conn/Read.class.php on line 103 [27-Nov-2014 07:52:27 America/New_York] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 32 bytes) in /home/solarise/public_html/atendimento/_app/Conn/Read.class.php on line 103 [27-Nov-2014 07:52:29 America/New_York] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 1 bytes) in /home/solarise/public_html/atendimento/_app/Conn/Read.class.php on line 103 [27-Nov-2014 07:52:30 America/New_York] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 1 bytes) in /home/solarise/public_html/atendimento/_app/Conn/Read.class.php on line 103 Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Luis Paullo 47 Denunciar post Postado Novembro 27, 2014 PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 1 bytes) in /home/solarise/public_html/atendimento/_app/Conn/Read.class.php on line 103 class Read linha 103. Compartilhar este post Link para o post Compartilhar em outros sites
hackmbh 0 Denunciar post Postado Novembro 27, 2014 http://pastebin.com/YpdpkJMR Segue a classe, mas o mesmo não deveria ocorrer em outras consultas? O erro só ocorre quando a consulta retorna uma quantidade grande de resultados. Compartilhar este post Link para o post Compartilhar em outros sites
Luis Paullo 47 Denunciar post Postado Novembro 27, 2014 Então e um estouro de memoria! Se vc ja mexeu no memory_limit, vai te que da uma olhada no que ta sendo executado antes de chega nesse fethcAll(); Wordpress da muito desses trampo, prq executa muita porcaria antes de chega nas consuntas sql (qndo vc entope ele de plugin). Ou melhora o desempenho do servidor ou enxuga seu codigo! A unica coisa que me vem a cabeça. Prq afinal 1000 registro e pouco pra um servidor mysql. ja fiz consulta com 50 mil sem problemas com 500 mb de RAM =X Compartilhar este post Link para o post Compartilhar em outros sites
hackmbh 0 Denunciar post Postado Novembro 27, 2014 Srs! Consegui resolver. É o seguinte, o problema não estava no meu código e nem no php.ini. O problema era por causa de um bloqueio por parte do modsecurity do apache (firewall do serviço web). https://github.com/SpiderLabs/ModSecurity/wiki/Reference-ManualYouHum Ele tem como default 512 KB, qualquer coisa acima disso ele joga para 500 Internal Server Error. Foi necessário criar uma exceção no arquivo "/etc/httpd/conf/modsec2.custom.local.conf" com o seguinte padrão: SecRule SERVER_NAME "meudominio.com.br" phase:1,nolog,allow,pass,ctl:responseBodyLimit=52428800,id:3000000 Depois restartar o serviço httpd: service httpd restart No meu caso 52428800, corresponde a 50 MB. Sim, foi necessário permitir responseBodyLimit de 50 MB. Após isso deu tudo certo. Apresentou a tabela conforme solicitado na consulta. Uma tabela com 4.983 resultados. O interessante que verificando no apache, antes o trafego para trazer a tabela foi 22 MB. Agora fica a dúvida, seria essa a melhor saída? Algo me diz que não! Mesmo que eu diminua para 30 MB para corresponder com o que se exige nessa consulta, e se eu realizar uma busca em um período maior. Tipo de um ano ou mais. Levando em consideração que estou falando de um CRM. Sem falar em quem hospedar o sistema em um servidor compartilhado, onde com certeza essa alteração não seria permitida. Talvez, tenha que rever sim o código ou as possibilidade de busca para o usuário. Por exemplo, permitir buscas para um intervalo de no máximo três meses. Muito obrigado! Até mais! Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Novembro 27, 2014 Se você fizer a paginação na consulta usando limit não resolveria? Compartilhar este post Link para o post Compartilhar em outros sites
hackmbh 0 Denunciar post Postado Novembro 27, 2014 Marcos, Antes estava utilizando o LIMIT para realizar a paginação, mas começou a ficar complexo com a necessidade de ordenar por coluna, pesquisar nas colunas, paginar e auto complete nas pesquisas. Para isso, resolvi utilizar o plugin jQuery DataTables - https://datatables.net/. Por hora, é suficiente. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Xavier 189 Denunciar post Postado Novembro 28, 2014 :yes: Compartilhar este post Link para o post Compartilhar em outros sites