Developpez.com - Rubrique PHP

Le Club des Développeurs et IT Pro

Passage à PHP 5.4 chez 1and1

Comment s'y prendre

Le 2013-01-08 09:52:22, par Freedolphin, Membre actif
Si vous êtes client chez l'hébergeur 1and1, vous avez probablement reçu un email vous prévenant du passage obligatoire des serveurs à PHP 5.4 le 1er avril 2013. Ce n'est pas une blague mais bel et bien l'initiative de 1and1 de mettre à jour ses serveurs sur la dernière version de PHP. Si vous avez souhaité anticiper cette mise à jour, vous avez peut-être basculé vous-même votre hébergement sur PHP 5.4. Et là, c'est le drame : requêtes truffées d'erreur, affichage incomplet, bref site en vrac. Pas de panique : voici comment procéder.

1/ Préférez le fichier .htaccess
Si vous avez plusieurs sites sur le même hébergement, ne passez pas tout d'un coup sur la dernière version de PHP. Allez-y site par site, en installant un fichier nommé .htaccess à la racine du site. Puis collez dans le fichier les lignes suivantes :
Code :
1
2
AddType x-mapp-php6 .php
AddHandler x-mapp-php6 .php
2/ Modifiez vos paramètres de configuration à la base
Le mode de connexion à la base de données MySQL est un peu différent.
Voici les informations qui doivent figurer sur votre fichier de configuration, pour permettre de se connecter à la base (entre deux balises php bien sûr) :
Code :
1
2
3
4
5
$serveur='nom du serveur';
$user='nom d'utilisateur';
$password='mot de passe de connexion';
$database='nom de la base';
$connexion = mysqli_connect("$serveur", "$user", "$password", "$database");
3/ Modifiez toutes vos requêtes MySQL
Le principal changement avec cette version de PHP (surtout si vous en étiez encore à la version 4), c'est la modifications des fonctions, avec le simple ajout d'une petite lettre : i.
C'est ainsi que vos fonctions de type mysql_xxx deviennent mysqli_xxx.
Code :
1
2
3
4
Exemple : 
$data = mysql_fetch_assoc($requete)
devient
$data = mysqli_fetch_assoc($requete)
Autre modification, cette fois sur la requête principale (que ce soit avec select, update ou autre) : vous devez ajouter la variable de connexion dans la requête. Celle-ci prendra donc cette forme :
Code :
$requete = mysqli_query($connexion, "SELECT * FROM matable");
Utilisez la fonction Rechercher/Remplacer de votre éditeur de code pour modifier tous vos fichiers rapidement.

4/ Attention à bien récupérer vos variables
Si malgré tout cela, votre contenu ne s'affiche pas, vérifiez que vos variables passées dans l'URL sont bien récupérées avec $_GET.
Par exemple, si vous récupériez de façon peu rigoureuse l'identifiant de la page avec un simple $id, vous devrez préciser avant cela :
Code :
$id = $_GET['id'];
5/ Mettez à jour votre base MySQL
Les bases de données enregistrées sous MySQL4 ne fonctionneront plus. Il vous faut dupliquer votre base et l'enregistrer sous MySQL5.

Et voilà, il ne vous reste plus qu'à tout mettre à jour par FTP et à vérifier que votre site fonctionne parfaitement. Votre passage à PHP 5.4 s'est déroulé sans accroc.

Sources

le site de 1&1 : http://faq.1and1.fr/scripts/php/13.html
  Discussion forum
1 commentaire
  • sebelbarbo
    Nouveau Candidat au Club
    Bonjour

    Est ce qu'il s'agit des mêmes modifications à opérer pour un site en full flash? J'ai 2 sites un en html un en full flash, en passant en 5.4 le site full flash fonctionne sauf qu'on a plus accès aux contenues (photos et textes).
    A savoir que je considère ces sites comme obsolète. je souhaite prolongé (environ 1 an) la vie du site full flash quelques tps encore. je suis en train de travailler à à la conception d'un autre site me permettant un référencement plus efficace. La solution recherchée sera donc provisoire et fonctionnelle.

    Cordialement
    Merci

    seb