Ticket #625 (closed defeito: fixed)

Opened 11 years ago

Last modified 11 years ago

Corrigir rotina de atualização (reconfiguração) do arquivo header.inc.php

Reported by: niltonneto Owned by: niltonneto
Priority: grave Milestone: Expresso 2.0
Component: Setup Version: trunk
Severity: Keywords: header.inc.php atualizar 2.0
Cc: amuller WorkGroup:

Description

Corrigir e modificar rotina de atualização do arquivo header.inc.php. Essas implementações são necessárias para que seja possível utilizar os recursos da nova versão, em ambientes Expresso com versões anteriores instaladas.

Attachments

header.inc.php Download (6.7 KB) - added by wmerlotto 11 years ago.
configurações no header
header.inc.php.ORIG Download (5.8 KB) - added by wmerlotto 11 years ago.
header original, antes da atualização realizada pelo Expresso.
php.ini Download (46.3 KB) - added by wmerlotto 11 years ago.
apache-php.ini Download (1.5 KB) - added by wmerlotto 11 years ago.
Configurações específicas para o Expresso

Change History

comment:1 Changed 11 years ago by niltonneto

  • Status changed from new to closed
  • Resolution set to fixed

Correções e modificações efetuadas em [1337].

comment:2 follow-up: ↓ 3 Changed 11 years ago by wmerlotto

  • Status changed from closed to reopened
  • Resolution fixed deleted

Acabei de atualizar minha instalação e ocorreu um erro, requisitando atualização do header. Fiz as alterações, ativando aquilo que é pertinente à minha infra. Mas ainda ocorreu o seguinte erro:

PHP Parse error:  syntax error, unexpected ';' in /var/www/html/trunk/header.inc.php on line 34

Na linha 34, a seguinte configuração estava sem valor:

$GLOBALS['phpgw_info']['server']['num_max_certs_to_cipher'] = ;

Então, coloquei um valor qualquer, já que não estou utilizando tal funcionalidade. Mas ainda assim não consigo acessar o Expresso. No apache, aparece o seguinte erro:

[error] [client 192.168.0.41] PHP Warning:  Cannot modify header information - headers already sent by (output
 started at /var/www/html/trunk/phpgwapi/inc/class.Template.inc.php:270) in /var/www/html/trunk/header.session.inc.php on line 10
[error] [client 192.168.0.41] PHP Warning:  Cannot modify header information - headers already sent by (output
 started at /var/www/html/trunk/phpgwapi/inc/class.Template.inc.php:270) in /var/www/html/trunk/header.session.inc.php on line 11

É necessário configurar algo mais?

comment:3 in reply to: ↑ 2 ; follow-up: ↓ 4 Changed 11 years ago by niltonneto

Replying to wmerlotto:

Acabei de atualizar minha instalação e ocorreu um erro, requisitando atualização do header. Fiz as alterações, ativando aquilo que é pertinente à minha infra. Mas ainda ocorreu o seguinte erro:

PHP Parse error:  syntax error, unexpected ';' in /var/www/html/trunk/header.inc.php on line 34

Na linha 34, a seguinte configuração estava sem valor:

$GLOBALS['phpgw_info']['server']['num_max_certs_to_cipher'] = ;

Então, coloquei um valor qualquer, já que não estou utilizando tal funcionalidade. Mas ainda assim não consigo acessar o Expresso. No apache, aparece o seguinte erro:

[error] [client 192.168.0.41] PHP Warning:  Cannot modify header information - headers already sent by (output
 started at /var/www/html/trunk/phpgwapi/inc/class.Template.inc.php:270) in /var/www/html/trunk/header.session.inc.php on line 10
[error] [client 192.168.0.41] PHP Warning:  Cannot modify header information - headers already sent by (output
 started at /var/www/html/trunk/phpgwapi/inc/class.Template.inc.php:270) in /var/www/html/trunk/header.session.inc.php on line 11

É necessário configurar algo mais?


Por causa desse erro, o valor da versão do header não foi alterada. Se quiser, pode forçar na linha do header.inc.php, $GLOBALSphpgw_info?server?versions?header? = '2.0' Mas preciso saber quais valores são pertinentes à sua infra, para que eu consiga reproduzir tal erro.

comment:4 in reply to: ↑ 3 ; follow-up: ↓ 5 Changed 11 years ago by wmerlotto

Replying to niltonneto:

Por causa desse erro, o valor da versão do header não foi alterada. Se quiser, pode forçar na linha do header.inc.php, $GLOBALSphpgw_info?server?versions?header? = '2.0' Mas preciso saber quais valores são pertinentes à sua infra, para que eu consiga reproduzir tal erro.

Mas já está exatamente assim. Por favor, o header em anexo.

Changed 11 years ago by wmerlotto

configurações no header

comment:5 in reply to: ↑ 4 ; follow-up: ↓ 7 Changed 11 years ago by niltonneto

Replying to wmerlotto:

Replying to niltonneto:

Por causa desse erro, o valor da versão do header não foi alterada. Se quiser, pode forçar na linha do header.inc.php, $GLOBALSphpgw_info?server?versions?header? = '2.0' Mas preciso saber quais valores são pertinentes à sua infra, para que eu consiga reproduzir tal erro.

Mas já está exatamente assim. Por favor, o header em anexo.

Coloque $GLOBALSphpgw_info?server?versions?header? = '1.27' pra ver. Se funcionar, tem algo errado com teu "svn update", pois ele compara a variável $setup_infophpgwapiversions?current_header?, do arquivo phpgwapi/setup/setup.inc.php, com a versão no header.inc.php.

comment:6 follow-up: ↓ 8 Changed 11 years ago by niltonneto

Estou instalando novamente aqui em uma VM a versão 1.2, pra testar a atualização do ambiente para 2.0. Preciso da configuração que vc usou para reproduzir o erro.

comment:7 in reply to: ↑ 5 Changed 11 years ago by wmerlotto

Replying to niltonneto:

Coloque $GLOBALSphpgw_info?server?versions?header? = '1.27' pra ver. Se funcionar, tem algo errado com teu "svn update", pois ele compara a variável $setup_infophpgwapiversions?current_header?, do arquivo phpgwapi/setup/setup.inc.php, com a versão no header.inc.php.

Coloquei 1.27, foi requisitado a atualização do header mas no fim o problema persistiu. Estou utilizando esta instalação diretamente do trunk, há bastante tempo.

Segue em anexo o header.inc.php original.

Changed 11 years ago by wmerlotto

header original, antes da atualização realizada pelo Expresso.

comment:8 in reply to: ↑ 6 Changed 11 years ago by niltonneto

Replying to niltonneto:

Estou instalando novamente aqui em uma VM a versão 1.2, pra testar a atualização do ambiente para 2.0. Preciso da configuração que vc usou para reproduzir o erro.

Corrigido em [1351], referente ao problema PHP Parse error: syntax error, unexpected ';' após clicar em "escrever configurações".

comment:9 follow-up: ↓ 10 Changed 11 years ago by niltonneto

William, o erro subsequente que você reportou não consegui reproduzir. Poderia fazer um teste novamente?

comment:10 in reply to: ↑ 9 Changed 11 years ago by wmerlotto

Replying to niltonneto:

William, o erro subsequente que você reportou não consegui reproduzir. Poderia fazer um teste novamente?

Nilton, acabei de atualizar aqui (para r1353), removi o header.inc.php e refiz a configuração pela própria página do setup do Expresso.

A página de login aparece, consigo efetuar a autenticação, mas ao acessar qualquer módulo, ocorre o seguinte erro: Um erro importante ocorreu com seu login, por favor contate seu administrador e no apache o seguinte log:

PHP Warning:  Cannot modify header information - headers already sent by (output started at
 /var/www/html/trunk/phpgwapi/inc/class.Template.inc.php:270) in /var/www/html/trunk
/header.session.inc.php on line 10
PHP Warning:  Cannot modify header information - headers already sent by (output started at
 /var/www/html/trunk/phpgwapi/inc/class.Template.inc.php:270) in /var/www/html/trunk
/header.session.inc.php on line 11

Alguma idéia?

comment:11 follow-up: ↓ 12 Changed 11 years ago by amuller

Esse warning não tem problema, pode acontecer. O erro acontece por 3 motivos:

  • Você mudou seu useragent da hora da autenticação até a requisição
  • Você mudou seu ip da hora da autenticação até a requisição
  • Alguma configuração do php está iniciando a sessão sozinha por conta. (session.autostart)

comment:12 in reply to: ↑ 11 Changed 11 years ago by wmerlotto

Replying to amuller:

Esse warning não tem problema, pode acontecer. O erro acontece por 3 motivos:

  • Você mudou seu useragent da hora da autenticação até a requisição

Não...

  • Você mudou seu ip da hora da autenticação até a requisição

Não...

  • Alguma configuração do php está iniciando a sessão sozinha por conta. (session.autostart)

Estava como 0. Verifiquei o arquivo de configuração do php.ini em doc-expressolivre e está como 1. Alterei aqui mas ficou na mesma.

comment:13 Changed 11 years ago by wmerlotto

Encontrei o problema... No meu php.ini a opção:

; - allow_call_time_pass_reference = Off     [Code cleanliness]
;     It's not possible to decide to force a variable to be passed by reference
;     when calling a function.  The PHP 4 style to do this is by making the
;     function require the relevant argument by reference.

allow_call_time_pass_reference = Off

Coloquei para On, baseado na configuração utilizada no php.ini do doc-expressolivre e funcionou. O detalhe é que estava utilizando esta configuração como Off há pelo menos uns dois anos...

comment:15 follow-up: ↓ 16 Changed 11 years ago by niltonneto

William, provavelmente tenha funcionado antes porque teu display_error devia estar "Off". Reproduzi teu erro aqui quando liguei ele. Em um outro momento teremos que rever as diretrizes PHP usadas pelo Expresso.

comment:16 in reply to: ↑ 15 Changed 11 years ago by wmerlotto

Replying to niltonneto:

William, provavelmente tenha funcionado antes porque teu display_error devia estar "Off". Reproduzi teu erro aqui quando liguei ele. Em um outro momento teremos que rever as diretrizes PHP usadas pelo Expresso.

Cara, na verdade está estranho pra caramba... Realmente o display_error está Off, e a alteração do allow_call_time_pass_reference foi uma mera coincidência...

Só consegui logar e utilizar o Expresso (a instalação baseada no SVN) quando removi os arquivos de sessão do PHP. Agora o motivo, ainda não sei...

comment:17 follow-up: ↓ 18 Changed 11 years ago by niltonneto

Podemos fechar esse ticket William?

comment:18 in reply to: ↑ 17 Changed 11 years ago by wmerlotto

Replying to niltonneto:

Podemos fechar esse ticket William?

Cara, ainda não... Ainda estou com tenho problemas para acessar o Expresso. Depois que "loguei" uma vez, funciona blz. Mas até conseguir isso é complicado. Tenho que reiniciar o apache, apagar os arquivos de sessão, ... Não sei a causa/motivo e por isso estou na tentativa e erro...

comment:19 follow-up: ↓ 20 Changed 11 years ago by niltonneto

Você me disse que estava usando o Trunk, mas acho que as melhorias na parte de segurança ( Ticket #559) ainda não estavam sendo utilizadas. Troque uma idéia com Muller, responsável por essas implementações.

comment:20 in reply to: ↑ 19 Changed 11 years ago by wmerlotto

  • Cc amuller added

Replying to niltonneto:

Você me disse que estava usando o Trunk, mas acho que as melhorias na parte de segurança ( Ticket #559) ainda não estavam sendo utilizadas. Troque uma idéia com Muller, responsável por essas implementações.

Bom, vou continuar reportando neste ticket, para manter a sequência de problemas e soluções encontradas/testadas.

Veja o que aconteceu hoje:

  1. Iniciei o navegador e conectei no Expresso, de primeira, sem problema algum;
  2. Saí do Expresso (logout);
  3. Imediatamente tentei conectar novamente, e após a autenticação surge a mensagem: Um erro importante ocorreu com seu login, por favor contate seu administrador;
  4. Reiniciei o apache, apaguei os arquivos de sessão do PHP mas ainda assim não consegui acessar novamente o Expresso;
  5. O php.ini está com session.auto_start e session.use_cookies em 0, conforme comentário no ticket #559;
  6. Revisão [1354] do trunk;

Algo mais que eu possa fazer?

comment:21 follow-up: ↓ 23 Changed 11 years ago by amuller

Você atualizou a tabela access_log? Me passa no email uma cópia (fazendo as devidas alterações de senhas) do header.inc.php pra ver se atualizou direito. Se não for nada disso temos que partir pra debugação

comment:22 Changed 11 years ago by rodsouza

Anexe seu php.ini por favor.

comment:23 in reply to: ↑ 21 Changed 11 years ago by wmerlotto

Replying to amuller:

Você atualizou a tabela access_log?

Está atualizada:

sessionid character(32) NOT NULL,
loginid character varying(30) NOT NULL,
ip character varying(30) NOT NULL,
li integer NOT NULL,
lo integer DEFAULT 0,
account_id integer NOT NULL DEFAULT 0,
browser character varying(200)

Me passa no email uma cópia (fazendo as devidas alterações de senhas) do header.inc.php pra ver se atualizou direito. Se não for nada disso temos que partir pra debugação

Ok!

comment:24 follow-up: ↓ 26 Changed 11 years ago by amuller

Vendo no header.inc.php não tem nada de errado

comment:25 follow-up: ↓ 30 Changed 11 years ago by amuller

No header.session.inc.php aonde tem o echo (linha 12) coloca logo acima a linha de código

echo $connection_id."<br>".implode('',$_SESSION['connection_db_info']['user_auth'])."<br>";

comment:26 in reply to: ↑ 24 ; follow-up: ↓ 27 Changed 11 years ago by wmerlotto

Replying to amuller:

Vendo no header.inc.php não tem nada de errado

Em relação ao header que está anexado, a unica alteração que fiz foi desativar o captcha.

Quanto a alteração do header.session.php, este foi o resultado:

64a4607g0p2mn8p53doq7afi91192.168.0.41Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2 64a4607g0p2mn8p53doq7afi91 192.168.0.41Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2Um erro importante ocorreu com seu login, por favor contate seu administrador

comment:27 in reply to: ↑ 26 Changed 11 years ago by wmerlotto

Replying to wmerlotto:

Quanto a alteração do header.session.php, este foi o resultado:

Melhorando a visualização:

t33l67g6n37mech3o4i5blcbp2192.168.0.41Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2
t33l67g6n37mech3o4i5blcbp2 192.168.0.41Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2
Um erro importante ocorreu com seu login, por favor contate seu administrador

Changed 11 years ago by wmerlotto

Changed 11 years ago by wmerlotto

Configurações específicas para o Expresso

comment:28 Changed 11 years ago by wmerlotto

Replying to rodsouza:

Anexe seu php.ini por favor.

Anexei o php.ini, o qual tento manter padrão da distribuição e as alterações específicas para o Expresso, alocadas em um virtualhost do apache.

comment:29 follow-up: ↓ 31 Changed 11 years ago by amuller

Por favor execute na base de dados:

select sessionid, length(sessionid), ip, length(ip), browser from phpgw_access_log where account_id <> 0 and lo = 0 and sessionid='t33l67g6n37mech3o4i5blcbp2';

comment:30 in reply to: ↑ 25 Changed 11 years ago by amuller

Replying to amuller:

No header.session.inc.php aonde tem o echo (linha 12) coloca logo acima a linha de código

echo $connection_id."<br>".implode('',$_SESSION['connection_db_info']['user_auth'])."<br>";

Ao invés de utilizar o procedimento acima, utilize:

                echo $connection_id."<br>";
                var_dump( $_SESSION['connection_db_info']['user_auth'] );

comment:31 in reply to: ↑ 29 ; follow-up: ↓ 33 Changed 11 years ago by wmerlotto

Replying to amuller:

Por favor execute na base de dados:

select sessionid, length(sessionid), ip, length(ip), browser from phpgw_access_log where account_id <> 0 and lo = 0 and sessionid='t33l67g6n37mech3o4i5blcbp2';

O resultado:

"t33l67g6n37mech3o4i5blcbp2      ";26;"192.168.0.41";12;"Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2"

comment:32 Changed 11 years ago by wmerlotto

Replying to amuller:

Replying to amuller:

No header.session.inc.php aonde tem o echo (linha 12) coloca logo acima a linha de código

echo $connection_id."<br>".implode('',$_SESSION['connection_db_info']['user_auth'])."<br>";

Ao invés de utilizar o procedimento acima, utilize:

                echo $connection_id."<br>";
                var_dump( $_SESSION['connection_db_info']['user_auth'] );

O resultado:

7ojs34vknmg54to14ine2d3qt6192.168.0.41Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2
array(3) { ["sessionid"]=> string(32) "7ojs34vknmg54to14ine2d3qt6 " ["ip"]=> string(12) "192.168.0.41" ["browser"]=> string(101) "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2" } Um erro importante ocorreu com seu login, por favor contate seu administrador

comment:33 in reply to: ↑ 31 ; follow-up: ↓ 34 Changed 11 years ago by rodsouza

O resultado:

"t33l67g6n37mech3o4i5blcbp2      ";26;"192.168.0.41";12;"Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2"

Como essa consulta foi executada?

Qual sua versão do Postgres?

O problema está nessa consulta...

comment:34 in reply to: ↑ 33 Changed 11 years ago by wmerlotto

Replying to rodsouza:

O resultado:

"t33l67g6n37mech3o4i5blcbp2      ";26;"192.168.0.41";12;"Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2"

Como essa consulta foi executada?

pgadmin III

Qual sua versão do Postgres?

postgresql-8.3.7

O problema está nessa consulta...

Qual o problema, especificamente?

comment:35 follow-up: ↓ 37 Changed 11 years ago by rodsouza

Por favor execute essa consulta:

select trim(sessionid), length(sessionid), ip, length(ip), browser from phpgw_access_log where account_id <> 0 and lo = 0 and sessionid='t33l67g6n37mech3o4i5blcbp2';

comment:36 follow-up: ↓ 38 Changed 11 years ago by rodsouza

Esse é o problema:

"t33l67g6n37mech3o4i5blcbp2 ";26;"

comment:37 in reply to: ↑ 35 Changed 11 years ago by wmerlotto

Replying to rodsouza:

Por favor execute essa consulta:

select trim(sessionid), length(sessionid), ip, length(ip), browser from phpgw_access_log where account_id <> 0 and lo = 0 and sessionid='t33l67g6n37mech3o4i5blcbp2';

Este sessionid não está mais no banco... Utilizei outro:

"aa5gtqai76ibetuii9qi5arpp4";26;"192.168.0.41";12;"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/4.0.203.0 Safari/532.0"

comment:38 in reply to: ↑ 36 Changed 11 years ago by wmerlotto

Replying to rodsouza:

Esse é o problema:

"t33l67g6n37mech3o4i5blcbp2 ";26;"

O espaço em branco ou o que?

comment:39 follow-up: ↓ 40 Changed 11 years ago by amuller

Isso, é o espaço modifica seu header.inc.php pra ter certeza e fazer a modificação definitiva no trunk. aonde ta

 $GLOBALS['phpgw']->db->query("select sessionid, ip, browser from phpgw_access_log where account_id <> 0 and lo = 0 and sessionid='{$GLOBALS['phpgw']->session->sessionid}' limit 1",__LINE__,__FILE__);

coloque

 $GLOBALS['phpgw']->db->query("select trim(sessionid), ip, browser from phpgw_access_log where account_id <> 0 and lo = 0 and sessionid='{$GLOBALS['phpgw']->session->sessionid}' limit 1",__LINE__,__FILE__);

e veja se funcionou

comment:40 in reply to: ↑ 39 Changed 11 years ago by wmerlotto

Replying to amuller:

Isso, é o espaço modifica seu header.inc.php pra ter certeza e fazer a modificação definitiva no trunk. e veja se funcionou

Funcionou! Perfeito! Valeu!

comment:41 Changed 11 years ago by amuller

r1357 corrige o problema

comment:42 Changed 11 years ago by wmerlotto

  • Status changed from reopened to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.