mercredi 4 septembre 2013

gRSShopper Set-up Log

Journal d'installation - Application gRSShopper

J'utiliserai ce forum pour décrire, étape par étape, la procédure d'installation de gRSShopper sur le site Web MOOC - RÉL, ceci à la fois pour mon usage personel, mais aussi pour les personnes intéressées.

  1. Vérifier l'accès SFTP au serveur Web: j'ai ouvert le client Filezilla et testé la connexion SFTP au site Web en utilisant les coordonnées d'accès qui m'ont été transmises. Le test est concluant. J'ai localisé les dossiers Web à  /var/www/html and /var/www/cgi-bin
  2. Vérifier l'accès SSH au serveur Web: j'ai ouvert PuTTY et testé la connexion SSH au serveur Web en utilisant les coordonnées d'accès qui m'ont été transmises (les mêmes que pour SFTP). Le test est concluant. J'ai testé SU avec les mêmes coordonnées d'accès. Cela fonctionne.
  3. J'ai testé l'accès MySQL avec le mot de passe principal fourni (>mySQL -p). Test concluant.
  4. Testé le serveur Apache en entrant l'URL ou IP dans une fenêtre de fureteur. Test concluant. J'ai utilisé vi(un éditeur de texte) pour tester la location des pages Web en créant une page Index-test (dans /var/www/html/index.htm pour le cas présent). Ça marche. Modifié le propriétaire et le groupe pour 'apache' et testé de nouveau. Encore bon.
  5. J'ai créé la base de données gRSShopper sur MySQL. >CREATE DATABASE database;                 Pour conférer les privilèges d'administrateur à un utilsateur: mysql> GRANT ALL PRIVILEGES ON database.* TO user@localhost IDENTIFIED BY 'password';
  6. J'ai assigné mon compte utilisateur au groupe apache: >usermod -G wheel,apache myusername et j'ai ensuite changé le propriétaire et le groupe de /var/www/html et /var/www/cgi-bin de 'root' à 'apache'. Ensuite, j'ai donné au groupe  'apache' le droit d'écriture sur cgi-bin: >chmod 775 cgi-bin.
  7. Créé la base de données pour le cours UMCourse dans gRSShopper à partir de l'archive de cours Change 2011. J'ai exécuté la commande 'archive_cgi.sh' sur downes.ca; ceci crée une archive de la version courante de gRSShopper qui inclut le dossier de données tout juste créé (data pack). [À noter que toute autre personne que moi accéderait la plus récente archive de code - qui contient le paquet de données - à partir de http://sourceforge.net/projects/grsshopper/ ou http://grsshopper.downes.ca/grsshopper_0.52.tar.gz
  8. J'ai sauvegardé grsshopper_0.51.tar.gz sur downes.ca et je l'ai copié sur le site UdeM dans /var/www/cgi-bin.
  9. J'ai utilisé PuTTY pour extraire les fichiers: tar -zxvf grsshopper_0.51.tar.gz
  10. J'ai exécuté le script pour tester le serveur: http://url/cgi-bin/server_test.cgi. Ceci génère une erreur. Pour vérifier le journal d'erreurs: > tail /var/log/httpd/error_log. Le résultat indique: Exec format error. J'ai téléchargé server_test.cgi sur ma machine locale, je l'ai ouvert pour l'éditer et j'ai déplacé la ligne #!/usr/bin/perl tout en haut du fichier (avant même les commentaires). J'ai essayé à nouveau et ça a fonctionné cette fois. J'ai été aussi corriger cette erreur sur downes.ca afin qu'elle ne se reproduise plus à l'avenir.
    Ce script teste que les modules nécessaires sont présents. Malheureusement, le script est un peu vieux et il m'indique qu'il manque  XML::Feed, XML::Feed OPML, XML::LibXML et Net::OpenID::Consumer. J'ai donc écrit un nouveau script de test de l'environnement serveur pour vérifier la présence des modules Perl pré-requis - pour les intéressés, tous les modules sont chargés par grsshopper.ph load_modules(). J'ai versé ce nouveau script sur downes.ca et aussi sur le site UdeM, donc à l'avenir le script server_test.pl devrait fonctionner beaucoup mieux.
    J'ai ensuite exécuté le nouveau script server_test.cgi avec un résultat tout à fait satisfaisant:
    gRSShopper web server environment test. Checking PERL version... OK
    Checking for CGI. This module handles form input functions. OK
    Checking for CGI::Carp. This module displays error messages. OK
    Checking for DBI. This module handles database functions. OK
    Checking for LWP. This module connects to other web servers. OK
    Checking for LWP::UserAgent. This module emulates a web browser. OK
    Checking for LWP::Simple. This module emulates a web browser. OK
    Checking for File::Basename. This analyzes file names and is used for file uploads. OK
    Checking for File::stat. This examines files and is used for file uploads. OK
    Checking for HTML::Entities. This encodes and decodes strings with HTML entities. OK
    Checking for Scalar::Util 'blessed'. This is a set of useful utilities. OK
    Checking for Text::ParseWords. This is used to extract lists of words from strings (ignoring delimiters insider quotes) OK
    Checking for Net::Twitter::Lite::WithAPIv1_1. This connects to Twitter and executes the new Twitter API) OK
    Checking for Image::Magick. This connects to Twitter and executes the new Twitter API) OK
    Checking for DateTime. This converts dates and times) OK
    Checking for DateTime::TimeZone. This manages time zone conversions) OK
    Checking for Time::Local. This manages local time) OK
    Checking for Digest::SHA1 qw/sha1 sha1_hex sha1_base64/. This excrypts passwords and access tokens) OK
  11. J'ai créé un répertoire secret de données dans lequel j'ai placé un fichier nommé 'multisite.txt'. Il s'agit d'un fichier délimité par les espaces Tab contenant les valeurs suivantes:  url    database_name    localhost    database_user   user_password. Inutile de dire que ce fichier n'est pas inclus avec la distribution gRSShopper. On peut éditer le début de grsshopper.pl pour donner des valeurs spécifiques de base données, définir la location du script multisite.txt au début de grsshopper.pl (sinon il est assigné par défaut à /cgi-bin/data/multisite.txt). À noter, pour utilisation future, que la table capcha est aussi située dans le répertoire de données.
  12. J'ai exécuté le script d'initialisation avec la commande  http://website/cgi-bin/admin.cgi. À noter que ceci redirige à initialize.cgi, mais j'aime l'exécuter ainsi afin de tester admin.cgi et la redirection.
    Résultat: 'server error' (*Misère*). Je vérifie de nouveau le journal d'erreurs: 'Error:  Can't locate MIME/Types.pm'. Je modifie donc server_test.cgi pour inclure MIME::Types (heh heh). J'ai utilisé CPAN pour installer MIME::Types
    J'exécute donc de nouveau le script d'initialisation: http://website/cgi-bin/admin.cgi. Le résultat est celui attendu, c'est-à-dire qu'on obtient le message suivant, en très gros caractères: gRSShopper Initialization - Unable to Access Database.
  13. J'initialise la base de données en cliquant à l'endroit indiqué, et j'obtiens une erreur:  "The requested URL /cgi-bin/initialize.cgi was not found on this server." Je modifie le nom de fichier, de /cgi-bin/initialize.cgix à /cgi-bin/initialize.cgi; ceci afin d'éviter que j'exécute par accident le fichier d'initialisation sur mon propre site. Vous voudrez supprimer ce fichier lorsque vous aurez terminé l'installation.
    1. Étape 1 - Initialisation de la base de données. Vérifier les valeurs dans le formulaire. Je modifie les valeurs du Data Directory (répertoire des données) pour celles de l'emplacement de mon fichier secret de données. Les détails comme les noms et les balises peuvent être modifiés plus tard. Je clique Soumettre.
    2. Étape 2 - Sélection du dossier de données (data pack). Je sélectionne le dossier de données créé plus tôt. (Note: On peut passer d'un dossier de données à un autre aussi longtemps que la routine initialize.cgi demeure sur sa machine. On peut aussi créer de nouveaux dossiers de données et passer de l'un à l'autre en autant qu'on est très prudent: basculer d'un dossier de données à un autre effacera les données existantes; il faut donc s'assurer de sauvegardrer les données existantes en tant que dossier de données avant de basculer.)
      Le dossier de données crée un répertoire et des tables de données pour vous. Il charge aussi Javascript, Image et les fichiers CSS associés à l'installation courante. Ceux-ci deviennent parfois mélangés et il faudra que je répare quelques petits trucs, plus bas. L'installeur n'est pas encore parfait.
    3. Étape 3 - Tester le témoin (cookie) de login. Il me fait grand plaisir de constater que le témoin peut être trouvé avec succès.
      L'Installeur crée alors un ID d'usager Admin ainsi qu'un ID d'usager Anonyme. À noter que le mot de passe par défaut n'est pas 'L60iAoNSIza8k' ou quelque chose du genre, mais plutôt 'admin'. Je dois corriger le message de l'installeur ici.

  14. Cliquer le lien pour être ramené à cgi-bin/admin.cgi où vous attendra un message d' erreur et une invitation à vous loguer.
    Le lien vers la page de login était mauvais; c'était le lien par défaut (http://www.yoururl.ca/cgi-bin/login.cgi) qui apparaît au début de grsshopper.pl. J'ai corrigé grsshopper.cgi. Maintenant, s'il détecte la location cgi-bin 'yoururl' par défaut (qui est toujours mauvaise), il remplacera cet emplacement par défaut à la location (généralement correcte) url/cgi-bin. Si cette correction ne fonctionne pas pour vous, vous devrez entrer manuellement l'URL du script de login. À noter que vous pouver modifier l'emplacement de vos scripts cgi dans admin.cgi, mais vous ne devriez pas le faire, à moins qu'ils soient bousillés, car vous allez tout foutre en l'air.
    Le login ne fonctionne pas comme il faut. Cela est dû au fait qu'on utilsee une URL numérique (e.g. 123.45.67.89). Normalement, le système établit le domaine des témoins (cookies) en laissant tomber la première partie de l'url (p. ex. www.downes.ca donne downes.ca comme domaine), mais ceci ne fonctionne pas pour les domaines en deux sections (e.g. myspace.ca), ni pour les domaines numériques. Il faut vraiment que je corrige cela.
    Mais pour l'instant, j'ai édité login.cgi afin qu'il établisse explicitement un domaine pour les témoins. L'entrée est à la ligne 65 - our ($Site,$dbh) = &get_site("page");
    # Get Site Information
    $Site->{co_host} = "123.45.67.89";

    et elle fonctionne bien pour l'instant.
  15. J'ai oublié d'inclure les "boîtes" dans le dossier de données UMCourse, donc il n'y en a aucunes. De plus, toutes les URL des scripts et des CSS sont erronées dans la template, et les données de la page n'ont pas -été sauvegardées. Je ne sais pas pourquoi . Je devrairs peut-être revoir cette section du script d'installation du dossier de données. Je peux cependant manuellement créer les données que je n'ai pas pu importer: je peux créer des boîtes, des pages ainsi que les autres contenus à l'aide de l'interface admin. Dans le cas présent, j'ai simplement copié les boîtes et le contenu des pages du cours change.mooc.ca pour les besoins de la cause!

Aucun commentaire:

Publier un commentaire