Wiki » Historique » Révision 7
Révision 6 (Patrice Nadeau, 2015-06-13 09:23) → Révision 7/87 (Patrice Nadeau, 2015-06-13 09:31)
h1. Drupal {{TOC}} h2. Configuration préalable Un serveur openSUSE avec les options « LAMP » (Linux, Apache, MySQL, PHP) ainsi que Postfix devrait déjà être installé. h3. PHP Les modules PHP supplémentaires suivants doivent être installés : <pre><code class="bash"> zypper install php5-mbstring php5-gd php5-ftp php5-zlib pecl </code></pre> h4. Permettre les modules via FTP Voir #45 > Basé sur https://www.drupal.org/node/1608658 Voir le lien pour l’installation : [[guides_opensuse:ftp]] h4. Module « file upload progress bar » de PHP > Facultatif Télécharger le module : <pre><code class="bash"> pecl install uploadprogress </code></pre> Ajouter à */etc/php5/apache2/php.ini* <pre><code class="bash"> extension=uploadprogress.so </code></pre> h3. Préparation de MySQL Choisir et noter les 3 items suivants : * _database_ : nom voulu de la base de donnés de Drupal * _username_ : nom voulu pour l’usager MySQL * _password_ : mot de passe voulu pour l’usager MySQL À partir du serveur : > root est l’usager « root » de MySQL <pre><code class="bash"> mysqladmin -u root -p create database mysql -u root -p </code></pre> Inscrire les commandes SQL suivantes : <pre><code class="sql"> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES, CREATE TEMPORARY TABLES ON database.* TO 'username'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; quit; </code></pre> h2. Installation de Drupal > Les fichiers sont installés dans */srv/www/htdocs* À partir d’un navigateur web, allez sur le site https://drupal.org/project/drupal. Choisir le fichier « tar.gz » et copier le lien pour l’insérer dans la commande _wget_ plus bas. À partir du serveur : > x.xx indique la version <pre><code class="bash"> cd /srv/www/htdocs wget http://ftp.drupal.org/files/projects/drupal-x.xx.tar.gz tar xvf drupal*.tar.gz rm drupal*.tzr.gz mv drupal-x.xx drupal cd drupal cp sites/default/default.settings.php sites/default/settings.php chmod 0777 sites/default sites/default/settings.php </code></pre> À partir d’un navigateur web : http://server/drupal h3. Sécurité > Le fichier *sites/default/settings.php* contient les noms de la BD, de l’usager et de son mot de passe en texte. Changer les droits des fichier et repertoires : <pre><code class="bash"> chmod 0755 sites/default chmod 0444 sites/default/settings.php </code></pre> h2. Personnalisation h3. Logo Copier un logo (32x32 pixels) dans le répertoire *sites/default/files*. À partir de la page web, Administration, Appearance Dans le thème par défaut, choisir Settings, TOGGLE DISPLAY Sélectionner Logo, Site Name, LOGO IMAGE SETTINGS, Path to custom logo Entrer le nom du logo h3. Date local au lieu de UTC Dans le fichier */etc/php5/apache2/php.ini* (Date section) <pre><code class="bash"> date.timezone =’America/New_York’ </code></pre> Relancer apache h3. Type de fichier permis A partir de Drupal Management, Administration > Structure > Content types # Choisir le type de contenu # Choisir _Edit_ pour le _FIELD TYPE_ *File* h2. Modules supplémentaires h3. Gallery Formater Module pour la présentation de photos. Sélectionner le fichier à partir de http://drupal.org/project/galleryformatter Installer en mode manuel (voir la section précédente) A partir de Drupal : Management, Administration, Modules * Sélectionner le module et sauvegarder h4. Créer un nouveau type de contenu Administration, Structure, Contents types, Gallery, onglet *MANAGE FIELDS* * Ajouter un champ de type *Image* Éditer le champ et dans la section *Image field settings* choisir *unlimited* pour le nombre de valeurs Administration, Structure, Contents types, Gallery, onglet *MANAGE DISPLAY* * Pour le champ _Image_, choisir le format *JQuery Gallery* h3. GeSHi Filter Modules d’affichage de code Ce module est basé sur GeSHi et supporte plus de 200 langages. > Ne fonctionne pas avec avec les éditeurs de type WYSIWYG. 3 solutions existent pour contourner ce problème : * L’utilisation de Wysiwyg Geshi ** Je ne l’ais pas essayé. * La définition d’un nouveau type de format texte sans éditeur * La définition d’un nouveau type de champ à ajouter dans les documents h4. Installation A partir du serveur : <pre><code class="bash"> cd /srv/www/htdocs/drupal/modules wget http://ftp.drupal.org/files/projects/libraries-7.x-2.2.tar.gz tar -xvf libraries-7.x-2.2.tar.gz rm libraries-7.x-2.2.tar.gz # wget http://ftp.drupal.org/files/projects/geshifilter-7.x-1.2.tar.gz tar xvf geshifilter-7.x-1.2.tar.gz rm geshifilter-7.x-1.2.tar.gz # cd ../sites/all/librairies # La version doit etre 1.0.x (la version 1.1.x ne fonctionneras pas wget http://sourceforge.net/projects/geshi/files/geshi/GeSHi%201.0.8.11/GeSHi-1.0.8.11.tar.gz tar xvf GeSHi-1.0.8.11.tar.gz rm GeSHi-1.0.8.11.tar.gz </code></pre> Dans la gestion des modules (Home, Administration, Modules), activer * Filters ** GeSHi field ** GeSHi Filter * Libraries Dans la page d’administration, sélectionner l’onglet INDEX, l’option GeSHi Filter apparaitra. * GENERAL SETTINGS Les option pour afficher le numéro de ligne peux être choisis ainsi que des options plus avancées * LANGUAGES Activer/désactiver seulement les langages nécessaires. S’assurer d’avoir des «tags» de définis pour chaque langage. * FILTER CONFLICTS Vérifier qu’il n’y a pas de conflit. Dans la page d’administration, Configuration, Content authoring, Text formats. Choisir Full HTML, activer le filtre GeSHi. Déplacer l’ordre de traitement de ce filtre en dernier. h4. Nouveau format texte Création du nouveau format texte sans éditeur associé. Home » Administration » Configuration » Content authoring * Text formats Ajouter un format texte Code ** Roles Admin anonymous user authenticated user ** Enabled filters GeSHi * Wysiwyg profiles S’assurer que le format Code n’as pas d’éditeur associé. h4. Nouveau type de champ Création d’un nouveau champ. Administration » Structure Choisir le type de contenu et manage fields. Ajouter une nouveau champ _Code_ de type *GeSHi*. Un écran d’information sur le champ apparaitra. On peux y définir le langages par defaut et le nom de champ disponibles. Répéter pour les autres type de contenu, si nécessaire. h2. Maintenance h3. Copie de sécurité Faire une copie des fichiers et de la bd : <pre><code class="bash"> cd /srv/www/htdocs mysqldump -u username -p database > drupal.mysql tar czf drupalbackup.tgz drupal.mysql drupal/ </code></pre> h3. Récupération d’une copie de sécurité <pre><code class="bash"> cd /srv/www/htdocs tar xf drupalbackup.tgz mysql -u root -p < drupal.mysql </code></pre> h3. Mise à jour Mettre le site en mode maintenance (Management, Administration, Configuration, Developement, Maintenance mode) À partir du serveur <pre><code class="bash"> cd /srv/www/htdocs wget http://ftp.drupal.org/files/projects/drupal-x.xx.tar.gz tar -xvf drupal-*.tar.gz cp -R drupal-x.y/* drupal-x.y/.htaccess drupal rm -r drupal-x.y rm drupal-x.xx.tar.gz </code></pre> Se brancher sur la page web http://server/drupal/update.php Remettre en mode en ligne h3. Mise à jour des modules Mode manuel (sans FTP) À partir du serveur * Télécharger dans le dossier sites/all/modules * Décompresser À partir d’un navigateur web : http://server/drupal/update.php H2. Bogues H3. Configuration du module Image (core) PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Editer le fichier *drupal/modules/images.image.install*, ligne 231 <pre><code class="BASH"> # ligne en probleme db_create_table(’image_effect’, $schema[’image_effects’]); # remplacer par db_create_table(’image_effects’, $schema[’image_effects’]); </code></pre> Arrêter Apache <pre><code class="bash"> systemctl stop apache2.service </code></pre> Lancer MySQL <pre><code class="bash"> mysql -u </code></pre> Changer le nom de la table <pre><code class="sql"> use drupal; rename table image_effect to image_effects; quit; </code></pre> Relancer apache <pre><code class="bash"> systemctl start apache2.service </code></pre> h2. Configuration NAT via n Proxy Situation : * serveur Drupal local doit être accessible depuis l'internet * plusieurs site web (port 80) sont aussi utilisé pour ce domaine * le site Drupal est hébergé sur un autre serveur que le reste des pages web # Faire une règle de NAT dans le pare-feu pour le port 80 (si n'est pas déjà en place). # Activer les redirection « proxy » sur le serveur Apache # Configurer Drupal Solution avec Apache