WP 2.7, PHP5, 1&1 et le file access
Mea culpa maxima, la prochaine fois qu’on me dira que le php5 c’est mieux, je ne me dirai pas que cela marche “comme ça”, et je testerai.
La mise en place de php5 m’a effectivement permis de résoudre tous les problèmes que j’avais sur ce blog (et sur d’autres), et notamment les incompatibilités de plugin, comme Subscribe2 comments.
Plus d’erreurs 500 non plus, bref le bonheur total.
Presque…
Car mon petit bouton de vote Wikio m’affichait une erreur
PHP Warning: fopen(http://www.example.com): failed to open stream: HTTP request failed!
fsockopen(): unable to connect to …
file_get_contents(): failed to open stream: HTTP request failed!
PHP Warning: main(): Failed opening ‘http://www.example.com/index.html’ for inclusion …
PHP Warning: include(/usr/local/index.php): failed to open stream: No such file or directory in …
Activer le php5 sur un serveur mutualisé
Que ce soit sur OVH, sur 1&1 ou sur d’autres, la manipulation est identique.
D’abord, dans le fichier .htaccess on va rajouter une ligne (deux en fait), disant à votre serveur de traiter un certain nombre de fichiers comme du php5.
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
Ensuite on va créer/modifier le fichier php.ini, qui doit lui aussi être placé à la racine du site.
Chez 1&1, il faut augmenter la taille mémoire, par défaut à 8 mega pour php5.
Chez tous, il faudra aussi mettre la variable register_globals à off (attention quand même à faire évoluer vos script, car cette variable ne sera plus supportée dans les versions ultérieures).
Et si, comme moi, vous utilisez les includes de fichiers externes (ce qui est le cas pour beaucoup de monde), il faudra autoriser ceux-ci.
Un fichier externe, c’est un fichier hébergé dans un autre nom de domaine que celui qui l’appelle. Par exemple, l’image du bouton de vote Wikio, ou des pubs.
D’un côté c’est un paramétrage “dangereux”, car il permet d’inclure et d’éxécuter des fichiers malveillants.
D’un autre côté, jusqu’à maintenant, comme M. Jourdain, vous faisiez de l’url_include et du f_open par défaut, sans le savoir.
C’est juste le paramétrage “de base” du serveur qui change entre php4 et php5.
Voilà ce qu’il y a dans mon fichier php.ini
memory_limit = 40MB
register_globals = off
allow_url_fopen = 1
allow_url_include = 1
Curieusement, la syntaxe en mettant = on ne marchait pas chez 1&1…
Disons qu’ici le problème n’est pas de savoir si c’est PHP4 ou PHP5.
La différence, c’est les extensions PHP chargées par les 2 versions, et ça c’est OVH et plus généralement ton hébergeur qui spécifie cela ;)
Généralement ils mettent plus de choses sur le PHP5 d’où les erreurs en moins ;)
Bonjour Amaury,
Il est exact que WP2.7 fonctionne “tout seul” très bien sous php4. Néanmoins, je ne suis pas sure que ce soit un problème d’extensions de php.
Blog en WP 2.6, sous php4, avec “par exemple”, subscribe2comments, simpletags, organizeseries
Ça fonctionne parfaitement
Passage à la 2.7, ces extensions, mêmes seules, ne fonctionnent plus en php4
Passage au php5, ça marche à nouveau.
De plus, le bug (erreur 500) se produisait le plus souvent au moment de l’activation de l’extension.
Si c’était la librairie php qui était différente, les problèmes seraient apparus aussi sous la version 2.6
(Sinon moi je suis sur 1&1, pas OVH)
Le coup du php.ini c’est très intéressant, surtout pour la mémoire php.
Merci !
Oups, finalement php4 ne fonctionnait pas si bien que ça finalement pour que tu aies eu le gout de passer à php 5, non? :D
Comme j’ai dit, mea culpa, mea culpa maxima :)
Retour du gros nul : j’ai eu plusieurs soucis d’install d’extensions dûs à ma version php, j’ai dû solliciter les auteurs (lesterchan notamment) pour y parvenir quand-même, l’extension n’ajoutant les tables nécessaires à la base que si la version php n’est pas trop ancienne (j’ai dû du coup les créer à la main); par ailleurs, Lise indique sur son blog que la manip accèlére un peu les affichages…
Bref, j’ai tout fait comme indiqué (je suis en php 4.9 je crois si ça existe, chez ovh), mais l’ajout des deux lignes à mon .htaccess plante le site, qui affiche une page blanche : je pense que je ne les ajoute pas où il faudrait…
Mon fichier .htaccess existant est ainsi conçu :
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Si vous avez trente secondes, Marie-Aude, pourriez-vous me dire où précisément j’y ajoute ces deux lignes ?
Par ailleurs, tant qu’on y est, je n’ai pas de php.ini, et en ai donc créé un, mais j’ignore dans quel format il faut le faire : codage ANSI et langage “normal text”, c’est bon ?
Voilà, désolé, mais c’est seulement si vous avez le temps -et grosses bises au passage, dans tous les cas, tiens !
Je me permets de répondre à Mô, étant le premier levé :)
Sur la FAQ d’OVH il est indiqué que :
Pour changer la version de php qui va exécuter un fichier .php, il suffit de creer un .htaccess dans le repertoire de votre site. Avec le bloc note de Windows ou tout autre éditeur de texte, tapez :
SetEnv PHP_VER 5
Enregistrez ce fichier et uploadez le sur votre ftp dans le répertoire concerné et renommez le en .htaccess. Les fichiers .php seront alors exécutés avec la version 5 de php.
La FAQ d’OVH en question
Pour le php.ini, j’aurais fait pareil au niveau du format :-)
Merci Wolforg !!
Manip’ effectuée, pas d’erreurs en vue…
Maintenant, question idiote : comment sais-je que la commande est prise en compte, c’est à dire que je suis bien en php5 ? (Après j’arrête de squatter notre hôtesse..!)
Pas de quoi Mô :)
Alors perso j’utilise deux plugins d’administration assez utiles [mode_remuage_de_couteau_dans_la_plaie=ON]que tu connaitrais aussi, si tu ne nous avais pas lachement fait faux-bond au wordcamp :p[mode_remuage_de_couteau_dans_la_plaie=OFF]
GD Press Tools et Wp-Tuner.
GD Press Tools te foruniras un maximum d’informations concernant la configuration de ton serveur et Wp-Tuner te permettra quand à lui d’avoir un résumé de ces infos dans le footer de ton backend (voire de ton front-end).
Je suis ce que je suis grâce à ce que nous sommes tous
Tu crées un fichier phpinfo.php à la racine dans le quel tu mets cette commande :
Et tu fais . Et là joie, tu verras la lumière :)
Je confirme – du fin fonds du Maroc ensoleillé – les dire de Wolforg et Dric, avec tous mes remerciements pour le “SAV” en on absence :)
Merci mes amis !
En fait j’avais déjà créé phpinfo.php, ce dont je ne me souvenais pas (et heureusement car les instructions de Dric sont translucides; pour ceux que ça intéresse, le contenu de ce fichier doit être :
) et du coup le lien de Dric me donne que je suis en php 5.2.6, ça m’a l’air tout bon… (même si je n’y comprends rien, comme d’hab’ !)
Vous êtes des Chevaliers -sauf ceux qui glandent au soleil, évidemment…
Merci beaucoup !
Ah oui d’accord, Marie-Aude, il y a bug : votre zone de commentaires efface le code qu’on veut y citer : je disais que ça doit être :
php
echo realpath(‘phpinfo.php’);
phpinfo();
mais avec autour !
C’est clair que y’a un bug, mon commentaire est resté tout le week-end en modération (sûrement car j’avais dépassé la limite de liens autorisés par Askimet), ça me rapelle une époque pas si lointaine sur le Môs Blog :-)
Sinon aucun souci d’avoir pu te permettre de passer un week-end au soleil Marie-Aude, à charge de revanche on va dire :-D
It’s not a bug it’s a security feature :)
Yes and I understand the reasons of this security feature, but personnally I think that Internet is a matter of links.
Regulary I’m inserting many links in my posts or comments and I prefer to param Askimet with a maximum of five links but it’s only my method and I don’t want to influe on you Marie-Aude ;-)
C’est pas ça la question :)
Le bug /feature est pour l’affichage du code en php, en gros, le php proprement dit est squeeze dans les commentaires, il faut donc l’introduire avec les fautes de frappe.
Pour les liens… quand je ne suis pas là on verra à voir :)