"update.php not found" após update de versão php

Events happening in the community are now at Drupal community events on www.drupal.org.
bmateus's picture

Olá a todos.

Tenho um pequeno site D7 de suporte em share hosting.

Quando o user está logged-in, o site torna-se significativamente mais lento. Tenho Boost, mas apenas funciona para non-logged users.

Nas configurações do Host, vi que podia actualizar o php de 5.2.x para 5.3.13. Fiz e fiquei positivamente agradado com o ligeiro aumento de velocidade.

No entanto, quando fui correr o update.php, fiquei surpreso por ele devolver "update.php not found!". Depois de ter a certeza que estava tudo correcto, e até copiar uma nova versão do update.php para o sitio certo, sem resultados, regressei ao php 5.2, e para meu espanto, tudo voltou ao normal.

Assim, a minha pergunta é: a instalação de drupal fica diferente consoante a versão php na altura da instalação? sempre tive na ideia que o Drupal 7 até preferia o php 5.3...

De qualquer forma, alguém sabe se à algum parametro a alterar, para corrigir isto? Já procurei a net e o drupal,org de uma ponta a outra.

Um abraço e obrigado.

Comments

O /authorize.php também não é

bmateus's picture

O /authorize.php também não é encontrado...

Começo a achar isto estranho. Especialmente porque basta regressar ao php 5.2 para estar tudo ok.

<< I tried others - still returned to Drupal. >>

A solução tem pouco de drupal

bmateus's picture

Resolvido! (é sempre assim, pedimos ajuda e a resposta bate-nos como um bacalhau seco!!!)

Ok, parece que se o PHP tiver uma versão 5.3.10 ou superior, correr em CGI, com a flag force-cgiredirect, tem de levar uma correcção no php.ini. Foi o que encontrei em http://php.net/security.cgi-bin.

This is what I found out while trying to get php to work as CGI with Apache VirtualHosts.

By enabling 'force-cgiredirects', you *must*:
1) set 'cgi.fix_pathinfo=1' in php.ini
2) leave doc_root commented out (php.ini also)

If you miss item 1, the apache logs will show 'unexpected T_STRING' in the php binary.
If you miss item 2, you'll only see 'No input file specified.', instead of the expected output.

You can then turn on the php support for a particular vhost by defining:

Action php-script /cgi-bin/php

inside the corresponding directive.

Depois de acertar no php.ini o que ali está descrito, ainda tive de abrir permissões de execução para o owner no authorize.php e no update.php, mas o update.php lá ficou a funcionar.

Espero que ajude alguém.

<< I tried others - still returned to Drupal. >>