Je migre un site de mon serveur vers le compte Bluehost (ugh) d'un client. J'ai essayé d'utiliser
Ce sont les statistiques sur mon serveur:
Apache Version 2.2.24
PHP Version 5.3.26
MySQL Version 5.6.28-76.1
Et le serveur du client:
Apache 2.2.31
PHP 5.2.17
MySQL 5.5.42
J'ai mis le php.ini sur le serveur client pour mettre à jour à PHP 5.4. Je présume (peut-être à tort) que la différence de version de MySQL ne devrait pas avoir d’importance.
Chaque fois que je reçois une erreur HTTP 500 (bien qu'après la dernière tentative, il s'agisse d'un serveur interne 500 sur la page d'accueil et de l'erreur HTTP 500 partout ailleurs).
J'ai renommé le .htaccess - pas de dés. Suppression du php.ini - pas de dés. Le préfixe de la base de données est différent et j'ai défini wp-config pour utiliser l'extension du site dev.
Habituellement, ces migrations sont assez faciles, alors je suis perplexe. Qu'est-ce que je rate?
Vous devez activer WP_DEBUG
dans votre wp-config.php
:
define( 'WP_DEBUG', true );
Cela vous aidera beaucoup à déterminer l’origine de cette erreur 500. D'après les versions de PHP que vous avez mentionnées, je suis sûr à 99,999% que l'erreur est due à une fonctionnalité qui n'est pas disponible dans PHP 5.2.17. Vous cherchez probablement soit une notation de tableau abrégée (par exemple, $array = [];
- bien que cela ait été ajouté dans PHP 5.4.0 donc probablement le problème dans votre cas, puisque vous venez de 5.3.26), ou l’une des fonctions anonymes , Les espaces de noms ou array_replace , qui ont tous été ajoutés dans PHP 5.3.0.
Avoir WP_DEBUG sur vous indiquera où cette erreur est causée. Si vous avez écrit le code vous-même, vous pouvez le remplacer par une alternative plus ancienne (par exemple, une notation de tableau plus longue ou une fonction non anonyme), ou si cela est possible sur le serveur sur lequel vous vous trouvez, vous pouvez mettre à jour le PHP version.
Par exemple, pour remplacer une fonction anonyme , vous voudriez changer quelque chose comme ceci:
add_filter( 'the_content', function($content){ return 'hello'; });
pour ça:
add_filter( 'the_content', 'my_content_function');
function my_content_function($content){ return 'hello'; }
Autres choses à essayer:
.htaccess
(ajoutez #
au début de la ligne) qui ne se trouvent pas entre les lignes # START WordPress
et # END WordPress
La meilleure façon absolue de migrer est:
source: ma propre expérience dans une grande liste de sites Web.
PS et important: ne passez pas à travers un plugin WP !!