en-CAfr-CA

Comment copier un site DotNetNuke vers un autre serveur

févr. 10 2014

Transfer DotNetNuke to another serverQue vous vouliez faire des tests sans affecter un site actif or que vous changiez d'hébergeur, il est parfois nécessaire de copier un site DotNetNuke vers un autre serveur. Dans ce tutoriel je vais vous montrer exactement comment le faire correctement.

Le processus est fait en 4 étapes

  1. Copier les fichiers originaux et la base de données
  2. Restaurer les fichiers et la base de données sur le nouveau serveur
  3. Configurer la base de données sur le nouveau serveur
  4. Modifier le fichier Web.Config pour la nouvelle base de données

Alors commençons:

Outils utilisés

  • Pour travailler avec la base de données j'utiliserai SQL Server Management Studio 2008, mais votre version peut être différente. La version express gratuite est suffisante pour cette tâche.
  • Vous pouvez transférer les fichiers de n'importe quelle manière, dans mon cas j'utiliserai un logiciel FTP gratuit appelé Filezilla, ce logiciel est également gratuit et la compagnie offre autant un client qu'un serveur (s'il n'y a pas de serveur FTP déjà sur le serveur).
  • Vous pouvez utiliser n'importe quel utilitaire de compression de fichiers (Zip), dans mon cas j'utilise 7-zip car il offre de bonnes options (par exemple il supporte les répertoires vides) et est également gratuit. Mais pour cette tâche vous pouvez utiliser l'utilitaire disponible directement dans Windows.
  • Pour éditer les fichiers textes, j'utiliser Notepad++ car il colore le texte selon le type de fichier ce qui rends la lecture plus facile. Mais pour cette tâche vous pouvez utiliser le bloc-notes de Windows ou n'importe quel éditeur de texte brut (pas Microsoft Word ou WordPad, ces logiciels ne sont pas conçus pour éditer le texte brut).

Étape 1: Préparer les fichiers sur le serveur original

  1. Copier les fichiers: Nous devons prendre une copie de tous les fichiers du répertoire du site original. Cette étape est très simple, vous n'avez qu'à naviguer vers le dossier de votre site web et y compresser tous les fichiers dans une archive Zip. Si vous n'êtes pas certain de l'emplacement de ces fichiers, vous pouvez dans DotNetNuke voir l'emplacement dans Hôte->Réglages de l'hôte à côté de: Chemin d'accès.
  2. Copier la base de données: Ensuite nous devons faire une "Copie Seulement" (Copy only backup) de la base de données. Ce type de copie de sûreté copiera votre base de données sans affecter les stratégies de sauvegardes existantes. Ce type de sauvegarde est également complet et non incrémental, ce qui fait que nous aurons toutes les données nécessaires dans un seul fichier.

    Crating a copy only backup in SQL Server Managent Studio

    Pour faire cette sauvegarde, ouvrez SQL Server Management Studio, connectez-vous et faites un clic droit sur votre base de données.
    Ensuite choisissez Tâches(Tasks)->Sauvegarder(Backup)
    Dans la nouvelle fenêtre, choisissez Complète(Full) dans le type de sauvegarde, cochez Copie Seulement(Copy only backup) et notez l'emplacement du fichier (ou choisissez un nouvel emplacement en enlevant l'existant et en ajoutant un autre). Il devrait y avoir un seul emplacement de fichier dans la boîte. Finalement cliquez sur OK et vérifiez que l'opération s'est complétée avec succès.
    Si vous n'êtes pas certain quelle base de données est utilisée par votre site, vous pouvez aussi le voir dans les réglages de l'hôte.

  3. Transférer les fichiers: Maintenant utilisez la technique de votre choix pour copier les deux fichiers que nous venons de créer sur le nouveau serveur. Une archive avec tous les fichiers de votre site et une sauvegarde de votre base de données.

Étape 2: Restaurer les fichiers sur le nouveu serveur

Restaurer les fichier: Il suffit d'extraire notre archive (zip) vers le répertoire d'hébergement du site.

Restaurer la base de données:
Restore Database to SQL Server

  1. Dans SQL Server Management Studio, faites un clic droit sur Bases de données(Databases) plus choisissez Tâches(Tasks)->Restaurer(Restore)

  2. Dans la nouvelle fenêtre, entrer le nom de la base de données dans le champs To destination.

  3. Ensuite choisissez From device et liquez sur le bouton ... pour localisez le fichier de la sauvegarde.

  4. La sauvegarde contenue dans ce fichier s'affichera en bas. Le type devrais être Full (Copy only)

  5. Finalement cliquez sur OK et vérifiez que vous avez un message de succès

    Ceci restaure la base de données, par contre nous avons encore un petit problème, l'utilisateur databaseOwner n'existe probablement pas sur le serveur, il nous faut donc le créer.

Étape 3: Configurer la base de données sur le nouveau serveur

Maintenant il nous faut régler 2 problèmes, l'utilisateur de la base de données et l'alias du portail qui sera utilisé sur le nouveau serveur.

  1. Régler le problème de l'utilisateur: Le problème que nous avons est que l'utilisateur de base de données que DotNetNuke utilise pour se connecter est inclus dans la sauvegarde mais il n'y a pas d'identifiant équivalent dans le nouveau serveur SQL. On appelle cette situation un "Utilisateur Orphelin". Heureusement pour nous il existe une procédure enregistrée qui prends ce problème en charge pour nous assez facilement.
    1. Ouvrez SQL Server Management Studio et connectez-vous au serveur
    2. Cliquez sur New Query
    3. Supprimez tout le texte qui se trouve dans la nouvelle fenêtre et tapez-y ce qui suit en remplaçant databasename par le nom de votre base de données.

      USE databasename
      EXEC sp_change_users_login 'Report'
    4. Ceci va afficher un tableau contenant tous les utilisateurs orphelins (normalement un seul), copiez ou prenez en note le nom d'utilisateur.
    5. Maintenant nous allons créer un identifiant portant ce nom d'utilisateur dans le serveur SQL. Naviguez vers l'object Sécurité dans les objets du serveur (pas dans la base de données), faites un clic droit et choisissez Security puis New->Login
    6. Dans la nouvelle fenêtre, tapez ou collez le nom d'utilisateur obtenu à l'étape précédante. Choisissez l'option SQL Server authentication et assurez vous que la case Enforce password policy ne soit PAS cochée. Finalement sélectionnez votre base de données dans Default database et cliquez sur OK.
      Create User in SQL Server
    7. Nous avons maintenant un utilisateur (dans la base de données) et un identifiant (dans le serveur SQL) qui ont le même nom d'utilisateur. Par contre il faut maintenant faire comprendre au serveur qu'ils doivent aller ensembles. Pour ceci tapez le code suivant dans la fenêtre de requête et exécutez-la. Remplacez databasename par le nom de votre base de données et username par le nom d'utilisateur en question:
      USE databasename
      EXEC sp_change_users_login 'Auto_fix', 'username'
      Si réussi vous obtiendrez un message similaire à: The row for user 'username' will be fixed by updating its login link to a login already in existence... + quelques statistiques
    8. Maintenant pour vérifier, déconnectez-vous et reconnectez-vous avec cet identifiant et vérifiez que vous pouvez accéder à la base de données.
  2. Modifier l'alias du site: L'alias du site est le nom de domaine utilisé pour accéder au site. Si vous déménagez le domaine, sautez cette étape, sinon vous copiez le site pour des tests et devrez y accéder en utilisant un autre nom de domaine (même un nom fictif parfois).
    1. Dans SQL Server Management Studio, ouvrez votre base de données et trouvez le tableau dbo.PortalAlias
    2. Faite un clic droit dessus et choisisez Edit top 200 rows, puis ajoutez une ligne avec les informations suivantes:
      PortalAliasID: rien
      PortalId: 0 (ou si vous avez plusieurs sites, refaites cette opération pour tous les PortalId que vous voyez das ce tableau)
      HTTPAlias: entrez le nom de domaine que vous voulez utiliser
      CreatedByUserId: -1 (-1 signifie système)
      CreatedOnDate: La date actuelle au format yyyy-mm-dd
      LastModifiedByUserId: -1 (Signifie Système)
      BrowserType: (Vous pourriez ne pas avoir ce champs, si vous l'avez, laissez vide)
      Skin: (Vous pourriez ne pas avoir ce champs, si vous l'avez, laissez vide)
      CultureCode: (Vous pourriez ne pas avoir ce champs, si vous l'avez, laissez vide)
      IsPrimary: (Vous pourriez ne pas avoir ce champs, si vous l'avez, entrez True)
    3. Ensuite nous devons vérifier si nous avons besoin de changer l'alias par défaut. Trouvez le tableau PortalSettings, plus faites un clic droit et choisissez Edit Top 200 rows
      Dans ce tableau regardez si vous trouvez defaultPortalAlias dans la colonne SettingName, si vous le trouvez (un ou plusieurs) éditez la collone SettingValue pour y entrer le nom de domaine que vous voulez utiliser.

Étape 4: Modifier le fichier Web.config pour la connexion au nouveau serveur SQL

  1. Naviguez vers les fichiers de votre site et ouvrez le fichier Web.Config
  2. Ouvrez ce fichier avec un éditeur de texte brut
  3. Nous devons modifier 2 sections (indiquées en jaune):
        <connectionStrings>
        
        <add name="SiteSqlServer" connectionString="Data Source=(local);Initial Catalog=databasename;User ID=userid;Password=password" providerName="System.Data.SqlClient" />
      connectionStrings>
      <appSettings>
        
        <add key="SiteSqlServer" value="Data Source=(local);Initial Catalog=databasename;User ID=userid;Password=password" />
    Remplacez (local) par nom nom de votre instance SQL (ou laissez local ou lacalhost selon comment vous pouvez vous connecter au serveur SQL sur cette machine)
    Répétez pour la deuxième ligne jaune.

Finalement, ouvrez un navigateur et tapez le nouveau nom de domaine. DotNetNuke devrais démarrer après un certain temps, soyez patient ceci est normal.

Si vous obtenez une erreur copiez-la et faites un recherche Google ou écrivez dans les commentaires sur ce blog. Cet article est un peu long pour une procédure relativement simple mais après l'avoir fait quelques fois l'étape la plus longue est le transfert des fichiers.

Total: 1 Comment(s)
Marty Hermsen
  THANKS Daniel, you saved my day.... Thanks for your amazing great guide.... I am happy man with the DB transition to a new server....
· reply ·

Auteur

Daniel Valadas 12477 9

Calendrier

2018 juil.  11  1
2018 juin  26  1
2018 mai  46  1
2014 oct.  2553  3
2014 juin  4931  1
2014 févr.  3432  1
2012 mars  1478  1

Publications Récentes

Premier enregistrement de la réunion de l'équipe de developement des modules Dnn
2018-07-06 12:53 | Daniel Valadas
Redynamiser les anciens modules DotNetNuke
2018-06-25 16:23 | Daniel Valadas
Comment sécuriser un site DotNetNuke avec un certificat SSL
2018-05-08 16:51 | Daniel Valadas
Prendre une liste de courriels et les séparer par des points-virgule (;)
2014-10-24 05:14 | Daniel Valadas
Solution: Les utilisateurs de DotNetNuke ne peuvent pas réinitialiser leur mot de passe
2014-10-24 03:21 | Daniel Valadas
Corriger les noms d'affichage en double dans DotNetNuke
2014-10-19 23:17 | Daniel Valadas
Créer un service web dans DotNetNuke 7
2014-06-11 13:02 | Daniel Valadas
Comment copier un site DotNetNuke vers un autre serveur
2014-02-10 10:51 | Daniel Valadas
Journée mondiale de la copie de sauvegarde
2012-03-31 13:28 | Daniel Valadas