web-dev-qa-db-fra.com

Stumped sur la migration

Je migre un site de mon serveur vers le compte Bluehost (ugh) d'un client. J'ai essayé d'utiliser

  • Tout en un WP Migrer
  • BackupBuddy
  • migration manuelle (copie de fichiers et exportation d'une base de données à l'aide de WP Migrate DB)

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?

1
Arp Laszlo

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:

  • Commentant les lignes de votre .htaccess (ajoutez # au début de la ligne) qui ne se trouvent pas entre les lignes # START WordPress et # END WordPress
  • Réinitialisation de vos autorisations de fichiers
  • Désactivation habituelle de tous les plugins - et changement de thème - pour voir si le problème disparaît (si vous ne pouvez pas accéder à l'administrateur, vous pouvez simplement renommer les plug-ins individuels ou les dossiers de thèmes pour les désactiver).
3
Tim Malone

La meilleure façon absolue de migrer est:

  1. avoir accès à votre serveur mysql
  2. faire un dump de la base de données
  3. avoir accès à votre serveur de fichiers
  4. Zip votre dossier/wp-content
  5. télécharger vos fichiers Zip et SQL sur le nouveau serveur
  6. décompresser le fichier/wp-content
  7. charger l'ancien dump dans votre nouveau serveur de base de données
  8. modifiez votre fichier wp-config.php et pointez sur le nouveau serveur de base de données

source: ma propre expérience dans une grande liste de sites Web.

PS et important: ne passez pas à travers un plugin WP !!

0
BredeBS