phpBB – Installation du serveur

phpBB (pour PHP Bulletin Board) est le moteur de forum Open Source le plus utilisé à travers le monde. Il est écrit en PHP, utilise le framework Symphony, et sous licence GNU GPLv2. Il fut créé à l’origine en juin 2000 par James Atkinson (theFinn) pour sa femme, avant de connaître un large engouement auprès de la communauté. Actuellement en version 3.2.0 (Arsia), le développement par la société phpBB Limited de la version 4.0 (Rhea) est en cours avec l’apport de la communauté.
Il possède toutes les fonctions nécessaire à un moteur de forum :

  • Ajout de fonctionnalités et langues par l’intermédiaire d’extensions et packs de langues
  • Gestion du HTML5, CSS3 et du responsive design
  • Modération, préférences utilisateurs, administration, moteur de recherche, suivi des messages non lus, système de messages privés, etc.
  • Enregistrements des utilisateurs avec règles de sécurité sur la politique de mot de passe et l’authentification
  • Utilisateurs locaux ou utilisation d’un annuaire LDAP pour l’authentification
  • Messages, pièces jointes, citations, émoticônes et emojis, prévisualisation, BBcodes, surbrillance, etc.
  • Forums, sous-forums, catégories, notes d’informations, forums protégés par mot de passe, etc.
  • Anti-spam, extensions, plugins, personnalisation et modularité, etc.

Alternatives Open Source à phpBB :

Comparatif de certaines de ces solutions à cette adresse.

 

Objectif

 

L’objectif de cet article est l’installation et la configuration d’un serveur LAMP5 (Linux Apache MySQL PHP5) auto-hébergé phpBB en version 3.2.0 sur une distribution Linux Debian Jessie 8.7 32bits.

 

Schéma logique

 

 

Pré-requis

 

1. Pré-requis avant réalisation

  • Un serveur Debian Jessie 8.7 32 bits fonctionnel (installation basique avec utilitaires usuels du système et service SSH)
  • Packages de base supplémentaires : sudo, resolvconf, tree, unzip
  • Domaine utilisé : opensharing.priv

 

2. Configuration réseau initiale

Serveur phpBB
FQDN phpbb-test.opensharing.priv
Adresse IP 192.168.1.19
Réseau 192.168.1.0/24
Passerelle 192.168.1.1
dns-nameservers 192.168.1.11 192.168.1.12
dns-search opensharing.priv

 

Contenu initial du fichier /etc/network/interfaces :

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
	address 192.168.1.19
	netmask 255.255.255.0
	network 192.168.1.0
	broadcast 192.168.1.255
	gateway 192.168.1.1
	dns-search opensharing.priv
	dns-nameservers 192.168.1.11 192.168.1.12

 
Contenu initial du fichier /etc/hosts :

127.0.0.1	localhost.localdomain              localhost
192.168.1.19	phpbb-test.opensharing.priv        phpbb-test
192.168.1.19	phpbb.opensharing.priv             phpbb

Rmq : L’adresse 127.0.1.1 doit être retirée sur un serveur à IP fixe et remplacée par cette dernière, tel que l’exemple ci-dessus.
 
Contenu initial du fichier /etc/host.conf :

order hosts, bind
multi on

 
Contenu initial du fichier /etc/resolv.conf :

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.11
nameserver 192.168.1.12
search opensharing.priv

Rmq :
Le fichier /etc/resolv.conf ne doit pas être édité dès lors que le paquet resolvconf a été installé.

Pour prendre en compte les modifications des fichiers de configuration relatifs au réseau, redémarrage du service réseau :

# /etc/init.d/networking restart
# /etc/init.d/networking reload

 

Réalisation

 
Cette procédure d’installation de phpBB pourrait être simplifiée en installant uniquement le paquet phpbb3 mais elle pour but de mettre en évidence l’installation d’un serveur LAMP (Linux Apache MySQL PHP) destiné à accueillir phpBB.
 

1. Installation de Apache

# apt install apache2 apache2-doc

Installe les paquets suivants par dépendances :

apache2 apache2-data apache2-doc apache2-utils

 

2. Installation de MySQL

# apt install mysql-server mysql-client

Installe les paquets suivants par dépendances :

libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl
libmysqlclient18 libterm-readkey-perl mysql-client mysql-client-5.5
mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5

 
Choisir le mot de passe pour le compte d’administration de MySQL (“root“) et le confirmer.


 

3. Installation de PHP

# apt install php5 php5-mysql php5-imagick php5-ldap

Installe les paquets suivants par dépendances :

apache2 apache2-data apache2-utils libapache2-mod-php5
libmysqlclient18 libonig2 libqdbm14 mysql-common
php5 php5-cli php5-common php5-imagick
php5-json php5-ldap php5-mysql php5-readline
ttf-dejavu-core

 

4. Installation de phpMyAdmin

# apt install phpmyadmin

Installe les paquets suivants par dépendances :

dbconfig-common javascript-common libjs-jquery libjs-sphinxdoc
libjs-underscore libmcrypt4 php-gettext php-tcpdf
php5-gd php5-mcrypt phpmyadmin

 
Choisir le serveur web à reconfigurer automatiquement, dans notre cas apache2.


Faut-il configurer la base de données de phpmyadmin avec dbconfig-common ? Non
Nous allons le faire manuellement plus loin.

 

5. Installation de phpBB

# wget https://www.phpbb.com/files/release/phpBB-3.2.0.zip
# unzip phpBB-3.2.0.zip -d /var/www/
# chown -R www-data:www-data /var/www/phpBB3/
# chmod 660 /var/www/phpBB3/config.php

 

6. Configuration de MySQL

# mysql_secure_installation
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Change the root password? [Y/n] n
 ... skipping.

Remove anonymous users? [Y/n] Y
 ... Success!

Disallow root login remotely? [Y/n] Y
 ... skipping.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] Y
 ... Success!
# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 49
Server version: 5.5.54-0+deb8u1 (Debian)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE IF NOT EXISTS phpbbdb;
Query OK, 1 row affected (0.00 sec)

mysql> CREATE USER phpbbadmin@localhost IDENTIFIED BY "phpbbadminpw";
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON phpbbdb.* TO phpbbadmin@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| phpbbdb            |
+--------------------+
4 rows in set (0.00 sec)

mysql> quit;
Bye

 

7. Configuration de Apache

# a2enmod rewrite
# nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin admin@opensharing.priv
    <Directory /var/www/phpBB3/>
        Require all granted
        AllowOverride All
   </Directory>
    DocumentRoot /var/www/phpBB3/
    ServerName phpbb.opensharing.priv
        ErrorLog /var/log/apache2/phpbb.error.log
        CustomLog /var/log/apache2/access.log combined
</VirtualHost>
# service apache2 restart
# service mysql restart

 

8. Configuration de phpBB par le navigateur Web

Saisir, dans la barre d’adresses, l’adresse suivante :

http://phpbb.opensharing.priv

redirigeant automatiquement vers :
http://phpbb.opensharing.priv/install/app.php
 
Choisir l’onglet INSTALL.

Puis le bouton Install.

Choisir un identifiant pour l’administrateur, ici identique à celui de la base de données phpbbdb par souci de simplification mais rien ne l’oblige.
Mais aussi une adresse mail valide et un mot de passe pour ce dernier.

Remplir les informations relatives à la base de données phpbbdb définies lors de la configuration de MySQL, ainsi qu’un préfixe arbitraire pour chaque table de cette dernière. Chaque table sera stockée dans /var/lib/mysql/phpbbdb/ sous forme d’un fichier du type phpbbos_tablename.frm.

Laisser les valeurs par défaut et saisir l’URL du serveur phpBB.

Nous ne définirons pas ici de paramètres SMTP (ils pourront être définis dans un second temps).

Choisir un titre et une description pour le forum. Ils apparaitront en haut de chaque page, sur la bannière.

La base de données est ensuite automatiquement remplie et l’installation s’effectue.

Cliquer ensuite sur Take me to the ACP (Administration Control Panel).

Le tableau de bord de l’administrateur s’affiche ensuite, permettant via diverses sections le paramétrage du serveur et du forum.

En cliquant sur Board index, en haut à droite, la page d’accueil du forum s’affiche mais nous informe que le répertoire ayant servi à l’installation doit maintenant être supprimé.

# rm -rf /var/www/phpBB3/install/

 
Le répertoire d’installation supprimé, l’index du forum est opérationnel et nous pouvons y créer notre premier forum ou plutôt modifier celui qui est créé par défaut.

Sécurisation du dossier phpBB3 :

# chown -R root:www-data /var/www/phpBB3/
# find /var/www/phpBB3/ -type f -print0 | xargs -0 chmod 0640
# find /var/www/phpBB3/ -type d -print0 | xargs -0 chmod 0750
# chown -R www-data:www-data /var/www/phpBB3/files/
# chown -R www-data:www-data /var/www/phpBB3/cache/
# chown -R www-data:www-data /var/www/phpBB3/store/
# chown -R www-data:www-data /var/www/phpBB3/images/avatars/upload/
# service apache2 restart
# service mysql restart

 

Pour aller plus loin

 

1. Effectuer une sauvegarde assistée de la base de données

La sauvegarde assistée de la base de données peut se faire via l’ACP (ou PCA en français) :
MAINTENANCE (onglet) > Sauvegarder (section BASE DE DONNEES)
Les sauvegardes locales (pouvant être restaurées) sont stockées dans /var/www/phpBB3/store/.

 

2. Effectuer une restauration assistée de la base de données

La restauration assistée de la base de données peut se faire via l’ACP (ou PCA en français) :
MAINTENANCE (onglet) > Restaurer (section BASE DE DONNEES)
Elle ne gère que les sauvegardes effectuées de manière assistée (cf ci-dessus) et stockées localement dans /var/www/phpBB3/store/.

 

3. Effectuer une sauvegarde manuelle complète

# mkdir -p /home/adminsys/backup/3.2.0/
# cd /home/adminsys/backup/3.2.0/
# tar -czvf backup-phpbb-20170406.tar.gz -C /var/www/ phpBB3/
# mysqldump --user=phpbbadmin --password=phpbbadminpw --databases phpbbdb > phpbb-20170406.sql

 

4. Effectuer une restauration manuelle complète

# cd /home/adminsys/backup/3.2.0/
# tar -xzvf backup-phpbb-20170406.tar.gz -C /var/www/
# mysql --user=phpbbadmin --password=phpbbadminpw phpbbdb < phpbb-20170406.sql

 

5. Installer le pack de langue française

Les packs de langues sont téléchargeables sur la page du site officiel.

# wget https://www.phpbb.com/customise/db/download/134661 -O french.zip
# unzip french.zip
# cp -r french_3_0_0/* /var/www/phpBB3/
# chown -R www-data:www-data /var/www/phpBB3/

ACP > (onglet) CUSTOMIZE > Language packs (section LANGUAGE MANAGEMENT) > Install (French)


La langue du forum peut ensuite être modifiée sous GENERAL puis Board settings (sur l’ACP).

 

Références

 

Fermer le menu
%d blogueurs aiment cette page :