opencag 0 Denunciar post Postado Novembro 22, 2014 Boa tarde, Tenho um sistema que rodava no ubuntu server 12, agora migramos para o ubuntu server 14 e está voltando um erro de variavel. Parece que a nova versão do php é obrigatório declarar variavel. Bom não gostariamos de mudar o fonte, até mesmo o sistema está rodando há 5 anos sem problemas. Tem como mudar isso através do php.ini ? o erro é este: PHP Notice: Undefined variable: l tentei colocar: error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE Dessa maneira não aparece mais o erro, mas fica tudo em branco. Acredito que está somente escondendo o log de NOTICE utilizando este parametro. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2014 Você pode ocultar as mensagens de erro. Isso é um tanto feio, mas em ambiente de produção é o recomendado. No seu php.ini, encontre a linha onde há a diretiva display_errors. Deixe-a em Off, desta forma: display_errors = Off Compartilhar este post Link para o post Compartilhar em outros sites
opencag 0 Denunciar post Postado Novembro 22, 2014 o problema não é ocultar, o problema é que tem erro no fonte (Essa versão obriga declarar a variável). tentei colocar assim: error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE O erro para, mas acredito que está somente ocultando o erro. Um exemplo, na versão 5.4 era permitido fazer assim: echo $REMOTE_ADDR A versão 5.5 não funciona, acho que vou ser obrigado a fazer um downgrade do php. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2014 não tem a ver com versão do PHP. isso está ligado com a configuração do php.ini. Não existe "declaração" de variável e isso não mudou do PHP 5.4 pro 5.5. O erro que você mencionou no post #1 está ligado com o uso de uma variável inexistente, sem valor. já o caso do $REMOTE_ADDR está ligado ao register_globals. Com ele ativo, era possível fazer isso. Com ele desativado, somente é possível pegar o IP com a variável correta: $_SERVER['REMOTE_ADDR']. O PHP 5.4 já não trazia mais suporte a register_globals. E ela sempre veio inativa desde o PHP 4.2. Se o servidor anterior estava com essa diretiva ativada, é porque o programador ativou-a manualmente, o que não era recomendado. Há duas soluções: 1. Corrigir o código, que você já mencionou que não deseja fazer 2. Esconder os erros Compartilhar este post Link para o post Compartilhar em outros sites
opencag 0 Denunciar post Postado Novembro 22, 2014 na aplicação o registro de global já está ativa, e funcionava na versão 5.4. Mesmo ativando a global no php.ini não funciona mais o $REMOTE_ADDR; na versa 5.5 Bom o arquivo .htaccess php_flag register_globals on php_flag magic_quotes_gpc on tentei colocar: AddHandler application/x-httpd-php54 .php Mesmo assim acontece o erro. obs: Já tentei copiar o php.ini anterior e colocar no novo mas o erro continua. Na verdade o ubuntu 14+php5.5 não tem mais opção de register_global. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2014 Provavelmente você usava PHP 5.3 antes. O PHP 5.4+ não dá mais suporte a register_globals, nem magic_quotes nem safe_mode, como você pode ver no changelog aqui: http://php.net/releases/5_4_0.php Ou seja, não há como ativar register_globals, seja por php.ini ou por .htaccess Para que $REMOTE_ADDR funcione, pode usar extract(), como sugerido aqui: http://stackoverflow.com/a/16706242 Compartilhar este post Link para o post Compartilhar em outros sites
opencag 0 Denunciar post Postado Novembro 22, 2014 Realmente o ubuntu server 12 utiliza os seguintes pacotes: ii php5-cli 5.3.10-1ubuntu3.14 command-line interpreter for the php5 scripting language ii php5-common 5.3.10-1ubuntu3.14 Common files for packages built from the php5 source ii php5-curl 5.3.10-1ubuntu3.14 CURL module for php5 ii php5-gd 5.3.10-1ubuntu3.14 GD module for php5 ii php5-mcrypt 5.3.5-0ubuntu1 MCrypt module for php5 ii php5-mysql 5.3.10-1ubuntu3.14 MySQL module for php5 ii phpmyadmin 4:3.4.10.1-1 MySQL web administration Acho que vou ser obrigado a fazer downgrade do php na versão 14 do Ubuntu Server ... Será que não existe outra solução ? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2014 Acho que vou ser obrigado a fazer downgrade do php na versão 14 do Ubuntu Server ...É a saída mais simples, de fato. Será que não existe outra solução ?Veja as outras respostas do link que passei do Stack Overflow. Há algumas "gambiarras" para simular o comportamento de reigster_globals. Mas não sei dizer até onde elas são funcionais e confiáveis. Fato é que register_globals não existe mais. Então habilitá-la será impossível. Apneas simular seu comportamento será viável. :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
opencag 0 Denunciar post Postado Novembro 22, 2014 Achei no google o pessoal colocando o seguinte código: AddHandler application/x-httpd-php54 .php Mas acredito que é algum pacote com várias versões do php. Alguém sabe o nome desse pacote no ubuntu-server/debian7 etc... ? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2014 Isso só vai adicionar um handler específico para a versão 5.4. Essa técnica era bastante usada há alguns anos, quando os servidores suportavam PHP 4 e PHP 5. Não vejo como isso pode te ajudar, pois você precisa rodar o sistema no PHP 5.3 e não precisa da versão 5.4 no servidor. Compartilhar este post Link para o post Compartilhar em outros sites
opencag 0 Denunciar post Postado Novembro 22, 2014 Pensei que tinha como rodar a 5.3 e 5.5 no servidor. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 23, 2014 Pensei que tinha como rodar a 5.3 e 5.5 no servidor. Até tem. Mas você precisa da 5.5? Se não houver outra aplicação em PHP que rodará na 5.5, nem faz sentido manter duas versões do PHP Compartilhar este post Link para o post Compartilhar em outros sites
opencag 0 Denunciar post Postado Novembro 23, 2014 Tenho outras aplicações, como owncloud torrentflux etc... Bom instalei o phpfarm e consegui rodar o php5.3.2 junto com a ultima versao estavel do php. O problema é que agora preciso instalar a biblioteca ssh2 na versão do php5.3.2 e não estou conseguindo. Compartilhar este post Link para o post Compartilhar em outros sites