2009-11-15 7 views
1

J'avais une installation Drupal au www.example.com/test. Maintenant, il est prêt à aller en direct, et j'essaie de le déplacer à www.example.com. J'ai changé la ligne sites/default/settings.php à:Erreur d'analyse PHP; Drupal6 Deployment

$base_url = 'http://www.example.com/'; // NO trailing slash! 

Quand je navigue à mon index.php, je reçois toutes sortes d'erreurs parse, comme ceci:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' 
in /home/example/public_html/sites/all/modules/typogrify/typogrify.class.php 
on line 18 

Le problème est le suivant:

public static function amp($text) { 
    $amp_finder = "/(\s| )(&|&|&\#38;|&)(\s| )/"; 
    return preg_replace($amp_finder, '\\1<span class="amp">&amp;</span>\\3', $text); 
    } 

Chaque fonction de ce type provoque des erreurs. alors PHP ne comprend-il plus cette syntaxe qui fonctionnait parfaitement bien dans un sous-répertoire?

+2

Quelle version de PHP utilisez-vous? – Gumbo

+0

PHP Version 4.4.9 –

+1

Eh bien, c'est votre problème ici. – troelskn

Répondre

3

IIRC, c'est l'erreur que l'on a eu en essayant d'utiliser les déclarations de visibilité (private/protected/public) en PHP 4. Est-ce que votre environnement live utilise une version différente de PHP?

Alors que Drupal 6 noyau est censé être toujours compatible avec PHP 4, de nombreux modules ne sont pas, comme PHP 4 n'est plus maintenu et ne reçoit pas de correctifs de sécurité depuis Août 2008. L'utiliser pour un site de production est donc un grand NON sécurité sage.

Donc avant d'investir du temps à «réparer» cela, je vous recommande de passer à PHP 5 immédiatement.

Probablement sans rapport avec votre problème, mais avez-vous lu le commentaire sur la ligne définissant la variable $base_url? Vous devez supprimer la barre oblique finale, au cas où vous l'auriez également avec votre URL réelle.


Edit: la classe viens de vérifier 'Typogrify' à partir du fichier incriminé. Il semble être juste une collection de méthodes statiques (fonctions). Donc, si c'est le seul fichier qui vous pose problème, vous pourrez peut-être contourner ce problème en supprimant toutes les déclarations «publiques», car elles ne sont pas strictement nécessaires.

Notez que je ne recommande pas ce - vous ne devriez pas lancer un site de production avec une dépréciée, unmaintained version PHP)

3
$base_url = 'http://www.example.com/'; // NO trailing slash! 

NO slash! ;)

+0

WOW. bon pour moi. –