Posts Tagged ‘1and1’

SimpleXML chez 1and1

Mardi, juin 10th, 2008

Envie de manipuler un peu de XML facilement avec SimpleXML en php, mais vous êtes hébergé en mutualisé chez 1and1.fr et vos scripts refusent de fonctionner… des interdictions dans tous les sens, des fonctions non prises en charges, l’impression d’être attaché avec des menottes dans le dos?

Voici la petite procédure à suivre:

D’abord il est probable que votre hébergement soit encore en php4 par défaut alors que php5 est installé. Or SimpleXML est une composante de php5.
Pour activer le support de php5, placer un fichier .htaccess dans votre dossier (où à la racine de votre site) avec dedans:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

Cela permet d’activer l’interpréteur php5 pour les fichiers php.

Puis on se rend compte que la fonction simplexml_load_file a été désactivée car “la directive allow_url_fopen est sur Off dans la configuration de PHP”.
C’est bien dommage car cette fonction est très efficace pour charger un fichier xml en tant qu’objet xml. La FAQ de 1and1 conseille plutôt d’utiliser la fonction fsockopen (toute bridée) et implicitement de passer par simplexml_load_string ensuite. Ils donnent même un exemple bien poussif pour utiliser fsockopen chez 1and1. Il n’en reste que cette solution est bien trop lente et surtout bien trop lourde (en testant leur solution, charger un fichier xml en objet est à vue d’oeil 50 fois plus lent que par simplexml_load_file).
On va donc faire fit de cette solution et activer la directive allow_url_fopen = On. Il suffit pour cela d’ajouter un fichier php.ini dans le répertoire où s’exécutent vos scripts en mettant dedans la ligne
allow_url_fopen = On

Ainsi il est possible de charger un fichier distant avec simplexml_load_file.

Recommandations:
- Veillez à bien sécuriser vos scripts afin que l’on ne puisse utiliser à votre insu cette fonctionnalité pour charger du contenu ou des scripts.
- Et puis veillez à optimiser vos scripts pour qu’ils soient efficaces et qu’ils consomment le moins de ressources possible afin de ne pas vous faire taper sur les doigts (coupure du site, mise sur un serveur poubelle) par 1and1.

Hébergement 1and1: passer de windows à linux initial

Samedi, avril 19th, 2008

Alors voilà, je devais faire un petit site web pour un ami. Pour l’hébergement, je lui recommande 1and1.fr en hébergement linux Pack Perso Initial (amplement suffisant pour son site et bon marché).

Son site doit tourner avec Wordpress arrangé en CMS, donc devant utiliser PHP et une base de donnée MySQL (d’où l’hébergement Linux).
Que ne fait-il pas? Il souscrit à un hébergement Windows (WinPack perso initial)!
Bon déjà c’est plus cher (et oui, faut prendre en compte le coût de la licence à Microsoft); et puis surtout: pas de language de programmation (dont php), pas de base de donnée, juste les extensions frontpage (l’horreur Frontpage, ce truc m’a traumatisé quand j’ai été contraint de l’utiliser dans les années 90).

Du coup, comment faire? Acheter un autre pack (mais quid du nom de domaine lié au premier pack, et puis le surcoût)? Faire une mise à niveau? mais uniquement les mises à niveau vers les pack plus élevés sont proposées (plus cher et surtout inutile pour l’usage de ce site). La possibilité de migrer d’un Winpack perso initial à un Pack Perso Initial Linux n’est proposé nulle part et n’est absolument pas documentée sur le site de 1and1.

En fait c’est très simple…
Malgré le fait que la possibilité n’est mentionnée nulle part chez 1and1, c’est un problème qui semble arriver régulièrement à leurs clients car ils ont même une procédure déjà prévue pour ça.
Il suffit de les appeler par téléphone, de simplement leur dire que l’on s’est trompé et que l’on a pris un winpack perso initial au lieu d’un pack perso initial linux. L’opératrice vous demande votre numéro de client, et zouh ils activent l’option pour que l’on puisses migrer vers le pack perso initial linux depuis l’interface client.

Et comme par magie, le choix “pack perso intial linux” apparaît dans les options de mise à niveau à la prochaine connexion sur l’interface client.
Il suffit alors de lancer la commande (gratuite) de mise à niveau vers linux et sous 30 minutes c’est réglé.

En fait cette option de migration existe en standard mais est désactivée par défaut (histoire de vendre un pack plus élevé) mais elle s’active sur simple demande du client.