phpInfo.netLes ArchivesLes éléPHPants

  
  Accueil
  Trucs & Astuces
  Scripts
  Regex
  Annuaire
  Articles

.
      
 Articles   Installer Phorum 3.2.11  Par J-Pierre DEZELUS   Décembre 2000    »  Objectif
 »  Installation
 »  Créer un forum
 »  Sécuriser l'installation
 »  Personnaliser son forum
 »  Liens


Objectif

Cet article décrit comment installer Phorum 3.2.11 sur un serveur disposant de PHP (3 ou 4) et MySQL ou PostgreSQL. La procédure qui suit a été testée en local sous Windows 98 avec PHP4 et sur un site personnel hébergé par Free (donc PHP3).

Remarques importantes : plusieurs fichiers et répertoires sont renommés pendant l'installation afin de garantir l'intégrité de l'application. Je propose des noms, mais je vous conseille fortement d'en adopter d'autres (ils apparaissent en jaune).
D'autre part, les fichiers fournis dans l'archive portent l'extension .php (pour PHP4), mais il est bien sûr possible d'utiliser Phorum avec PHP3 (sur Free par exemple). C'est ce que nous ferons dans cet exemple en changeant l'extension de certains fichiers pour les passer en .php3.

Installation

  1. Décompressez le fichier phorum-3.2.11.zip [133 Ko] ou le fichier phorum-3.2.11.tar.gz [91 Ko] dans un répertoire de votre serveur Web en conservant l'arborescence de l'archive.

  2. Renommez éventuellement le répertoire phorum-3.2.11 nouvellement créé. Nous allons nous le renommer forum.

  3. Editez le fichier common.php :

    1. Déplacez les fichiers forums.php-dist et forums.bak.php-dist du répertoire include vers un nouveau sous-répertoire de 'forum' (vous avez le choix du nom) et indiquez ce chemin dans la variable $inf_path (par défaut : ./include). Nous allons créer un répertoire config et y déplacer ces 2 fichiers :
        $inf_path="./config";  // Sans slash de fin
      Supprimez le suffixe -dist. Vous pouvez aussi renommer les 2 fichiers (en leur donnant l'extension .php3 si vous ne disposez pas de PHP4). Nous allons les nommer mes_forums.php3 et mes_forums.bak.php3 :
        include/forums.php-dist     => config/mes_forums.php3
        include/forums.bak.php-dist => config/mes_forums.bak.php3
      [common.php] Indiquez ces 2 nouvelles valeurs dans les variables $inf_file et $inf_back :
        $inf_file="$inf_path/mes_forums.php3";
        $inf_back="$inf_path/mes_forums.bak.php3";
    2. [common.php] Indiquez dans la variable $include_path le chemin d'accès aux autres fichiers placés dans le répertoire 'include'. Nous renommons ce répertoire en inc, ce qui donne :
        $include_path="./inc"; // Sans slash de fin
      Supprimez à cette occasion le suffixe -dist des fichiers footer.php-dist et header.php-dist.

    3. [common.php] Indiquez dans la variable $admindir le chemin d'accès aux fichiers d'administration placés dans le répertoire 'admin'. Nous renommons ce répertoire adm, ce qui donne :
        $admindir="adm";
    4. Renommez le fichier principal d'administration index.php du répertoire 'admin'. Dans notre cas, nous renommons 'adm/index.php' en adm/my_admin.php3, puis renseignez la variable $admin_page [common.php] :
        $admin_page="my_admin.php3";
    5. [common.php] Configurez Phorum pour l'interfacer avec votre SGBD en mettant en commentaires les 2 lignes qui ne vous concernent pas :
        $db_file = './db/mysql.php';        // MySQL
        // $db_file = './db/postgresql.php';   // PostgreSQL 6.4.1 à 6.5
        // $db_file = './db/postgresql65.php'; // PostgreSQL 6.5 et >
      
      Remarque : dans cette nouvelle version, il n'est plus nécessaire de créer la table forums manuellement en exécutant un requête SQL, le script s'en charge.

    6. Donnez au serveur Web les droits d'écriture sur le répertoire forum/adm/forums. Phorum y placera ces fichiers de configuration.
      Attention ! Sur certains serveurs (Free et Online par exemple), cette opération n'est pas nécessaire puisque le serveur Web dispose des droits suffisants pour créer des fichiers dans vos répertoires.
        cd forum/adm
        chmod 707 forums
      
      Cette opération peut aussi se faire à l'aide de certains clients FTP, en sélectionnant les propriétés du répertoire.
      Si vous avez un message du type "Warning: fopen("adm/forums/session0.php","w") - Permission denied in adm/login.php", c'est que nous n'avez pas correctement effectué cette opération.

    7. Il faut faire la même chose sur les fichiers de configuration mes_forums.php3 et mes_forums.bak.php3 :
        cd forum/config
        chmod 707 mes_forums.php3
        chmod 706 mes_forums.bak.php3
      
  4. Affichez le menu d'administration avec votre navigateur en pointant sur http://www.votresite.com/forum/adm/my_admin.php3 (ou .../phorum-3.2.11/admin/index.php si vous n'avez pas renommé les fichiers et répertoires).

    Menu Principal

    Vous n'êtes pour l'instant pas connecté à la base : No Database Connection Available. C'est normal, nous allons maintenant configurer l'accès au SGBD.

  5. Sélectionnez 'Phorum Setup' puis 'Database Settings' dans le menu. Renseignez les différents champs en fonction de votre propre configuration puis validez. Le valeurs indiquées dans l'exemple ci-dessous correspondent à mon compte phpinfo chez Free.

    Configuration de la base


  6. Sélectionnez 'Files/Paths'.
    Vous remarquerez que vous qu'apparait en haut de l'écran : Database Connection Established. Vous êtes donc maintenant correctement connecté à la base.

    Attention, dans le champ Forum URL vous pouvez avoir une valeur qui ne correspond pas à l'URL réelle de votre forum (Phorum utilise une des variables d'environnement pour mettre une valeur par défaut). Par exemple, pour Free il proposera http://proxyphp3.free.fr/.../phorum/index.php3. Pensez à corriger cette valeur.

    Chemins et fichiers

    Vous pouvez, si vous le souhaitez, changer le nom des 7 fichiers de bases index, list, search, read, post, violation, et down (il faut alors aussi les renommer manuellement dans le réperoire forum). Nous n'allons pas le faire, par contre nous allons utiliser l'extension .php3 pour ces 7 fichiers (il faut donc changer manuellement leur extension dans le répertoire forum).

    Important : vérifier que vous avez bien dans le champ Forum URL l'URL exacte de votre Forum.

  7. Copiez le fichier french.php [3 Ko] dans le répertoire lang. Sélectionnez maintenant 'Global Options', puis renseignez le nombre de messages par page, l'email par défaut, la langue (sélectionner French dans la liste). Validez.

    Options globales

  8. Sélectionnez 'HTML Settings' pour configurer l'apparence de votre forum (largeur, couleurs des différents tableaux le constituant).

    Apparence

  9. Sélectionnez maintenant 'Main' pour revenir au menu principal, puis 'Change Password'. Entrez votre nouveau mot de passe pour l'administration du forum (il peut être différent de celui qui vous permet d'accéder à la base) et validez.

    Mot de passe Administrateur

    Phorum est prêt à être utilisé.



Créer un forum

  1. Dans le menu principal, sélectionnez 'New Forum'

  2. Renseignez les différents champs et validez.
    Ne pas oublier de renseigner le nom de la table créée par Phorum (Table Name) avec un nom quelconque, ma_table par exemple.

    Paramétrage du nouveau Forum

    Remarque : Le paramètre Config Suffix est à renseigner si vous souhaitez utiliser des fichiers header.php et footer.php différents pour chacun de vos forums (ils devront alors porter le nom header_suffix.php, et footer_suffix.php).

  3. Votre premier forum est maintenant créé, il ne vous reste plus qu'à sélectionner le lien 'forum' en haut de la page pour l'afficher.

    Activer le forum

Répétez les opérations 1 à 3 pour ajouter d'autres forums.

Vous pouvez maintenant aller dans le forum poster votre 1er message et ajouter un lien sur votre site pour permettre aux utilisateurs d'y accéder.

Installation réussie !



Sécuriser l'installation

Cette partie vous explique comment utiliser les directives du serveur Web Apache (sous Unix/Linux) pour mettre en place un système de protection des fichiers et répertoires critiques de Phorum.

Nous allons utiliser pour cela les fichiers .htaccess (Docs Free : Activer la restriction d'accès sur certaines pages et ApacheToday : Using .htaccess Files with Apache). Pour l'explication nous opterons pour le système de proctection propre à Free/Online (PerlSetVar AuthFile fichier). Pour les autres cas référez-vous au manuel proposé sur Apache Today.

Je vous rappelle, avant de passer à la suite, que la 1ère précaution à prendre lors de l'installation, était de renommer les fichiers et répertoires lorsque cela était possible. Dans la suite de l'explication, nous allons utiliser les noms choisis précédemment.

  1. Protéger les fichiers de configuration

    Nous allons créer le fichier .htaccess suivant que nous placerons dans le répertoire config contenant les fichiers mes_forums.php3 et mes_forums.bak.php3 :
      <Files mes_forums.php3>
      Order Deny,Allow
      Deny From All
      </Files>
    
      <Files mes_forums.bak.php3>
      Order Deny,Allow
      Deny From All
      </Files>
    Nous protégeons de la même façon le fichier common.php dans le répertoire forum.
    Ce fichier est à protéger absolument puisqu'il contient les noms des fichiers et des répertoires que vous avez choisis.
      <Files common.php>
      Order Deny,Allow
      Deny From All
      </Files>
    Ce type de protection empêchera un utilisateur quelconque de demander les différents fichiers en utilisant leur URL. Une erreur 403 (accès refusé) sera déclenchée (vous pouvez l'intercepter si vous le souhaitez).

  2. Protéger le script d'administration

    Le script d'administration a un système de sécurité intégré (par demande d'un mot de passe). Il est toutefois conseillé de restreindre l'accès au répertoire adm en y plaçant le fichier .htaccess suivant :
      PerlSetVar AuthFile rep-droits/fichier-droits
      AuthName "Admin PHORUM"
      AuthType Basic
    
      <Limit GET POST PUT>
      require valid-user
      </Limit>
    Dans l'exemple donné ci-dessus, nous disposons d'un répertoire rep-droits à la racine de notre site contenant le fichier fichier-droits suivant :
      un_compte1:un_mot_de_passe_en_clair1
      un_compte2:un_mot_de_passe_en_clair2
      ...
    Lorsqu'un fichier quelconque du répertoire adm sera demandé par un utilisateur, celui-ci devra s'identifier, et son nom et son login devront correspondre à ceux du fichier fichier-droits.

    Il est conseillé d'ailleurs de protéger aussi le répertoire rep-droits par un fichier .htaccess !!
      PerlSetVar AuthFile rep-droits/fichier-droits
      AuthName "Accès Privé"
      AuthType Basic
    
      <Limit GET POST PUT>
      require valid-user
      </Limit>


Personnaliser son forum

Comme je l'ai fait avec le forum de phpInfo.net, vous pouvez adapter Phorum à la charte graphique de votre site, mais aussi définir définir l'en-tête de vos pages avec votre logo par exemple.

  1. La 1ère personnalisation peut se faire lorsque vous définissez les couleurs des différents tableaux constituant votre forum (Cf. Créer un forum - § 2).

  2. La deuxième opération consiste à définir l'en-tête et le bas de page des écrans de Phorum. Chaque page de Phorum appelle d'abord le fichier include/header.php pour l'en-tête puis le fichier include/footer.php pour le bas de page. Il vous suffit donc de placer dans ces fichiers les codes HTML pour définir le fond, les styles (via des feuilles CSS), les logos, ...

    Vous pouvez placer dans ces fichiers un appel à vos propres fichiers entete.inc.php3 et basdepage.inc.php3 par exemple.

    header.php
    <?
      require("entete.inc.php3");
    ?>
    footer.php
    <?
      require("basdepage.inc.php3");
    ?>


Liens

 » Le site officiel Phorum.org
 » La FAQ
 » Free : Activer la restriction d'accès sur certaines pages
 » ApacheToday : Using .htaccess Files with Apache
Synseo