Je viens de tester, l'installation de phpBB est tout ce qu'il y a de plus classique (pas de spécificité comme pour MediaWiki)
Je résume vite fait ce qu'il faut faire sur le WordPressPortable modèle avant de démarrer l'installation de phpBB :
- édition de appinfo.ini,
- suppression de export-WordPress-xxx.sql, reset_main_options.sql, script.ini et master.sql
- suppression du dossier "/data/wordpress" (base de donnée mysql)
- suppression du dossier wordpress (site web)
- édition de startup.ini pour ne laisser que la partie [UpdateEskuelPort]
- création des icônes logo.gif (128x128, utilisée dans le splash), appicon.ico (16x16 utilisé dans le systray) et appicon48.ico (48x48 utilisé par la suite pour refaire le lanceur)
- renommage de WordPressPortable.exe en phpBBPortable.exe
- création de la base de donnée "phpbb" avec Eskuel (ou directement en créant le dossier data/phpbb ça semble marcher aussi)
Maintenant l'installation :
Configuration de la base de donnée a écrit:Type de base: MySQL avec l'extension MySQLi
Serveur de base de données ou DSN: localhost
Port du serveur: laisser vide
Nom de la base: phpbb
Nom d’utilisateur: root
Mot de passe: laisser vide
Préfixe de tables: phpbb_
Configuration de l’administration a écrit:Langue par défaut: Français
Nom de l’administrateur: admin
Mot de passe administrateur: framasoft
Confirmez le mot de passe: framasoft
E-mail de contact: adresse@email.test (par convention je mets ça)
Confirmez l’e-mail de contact: adresse@email.test
Ensuite on a une page
Paramètres des e-mails et
Paramètres des URLs du serveur donc ça signifie que dans la base de donnée vont être stocké des variables de configuration du serveur (notamment on voit
nom de domaine et surtout
port du serveur. (c'est bon à savoir pour la suite)
Une fois l'installation finie, supprimer le dossier
phpbb/installA ce stade, c'est portable. On peut exporter la base de donnée (script > générique) et faire une copie du fichier export-phpBB-xxx.sql qu'on renomme en master.sql (c'est ce fichier qui sert ensuite pour réinitialiser la base de donnée)
On peut aussi éditer le fichier help.fr.html et générer le lanceur avec la nouvelle icône (nécessite autoit)
Bon c'est portable certes, mais c'est toujours incompatible avec plusieurs webapps.
Si on a plusieurs webapps lancées simultanément, chaque webapp aura un port web et un port d'accès à MySQL différent d'attribué donc la configuration doit être modifiée dynamiquement au démarrage de la webapps par le script startup.ini.
D'abord on s'occupe de la configuration d'accès à la base de donnée, là faut chercher un peu un fichier qui s'intitulerait config.inc.php ou config.php ou localsettings.php ou db_config.php, etc
Là c'est config.php à la racine de phpbb. On a la ligne :
- Code: Tout sélectionner
$dbhost = 'localhost';
qu'il faut qu'on remplace par
- Code: Tout sélectionner
$dbhost = 'localhost:{$mysql_port}';
où $mysql_port est la variable du port utilisé par la webapp. Exemple, si je lance WordPressPortable, ce port sera 3306 puis je lance phpBBPortable, il faut que ce port soit 3307 ainsi de suite selon le nombre de webapps lancées.
Du coup, dans le fichier startup.ini il faut qu'on mette une section sur le même modèle que ça (utilisé pour wordpress) :
[UpdateMySQLPort]
Name=Syncronize MySQL Port
Description=Update config with the Open MySQL Port
Type=REPLACE
File={$root_path_absolute}\App\{$ApplicationPath}\wp-config.php
SearchPattern=localhost(:\d*)?
ReplaceValue=localhost:{$mysql_port}
en remplaçant wp-config.php qui est le fichier pour wordpress équivalent à config.php pour phpbb.
Bon ensuite, on a un problème avec le port web qui est enregistré dans la base de donnée à 80 or toujours avec le même exemple d'un Wordpress démarré puis de phpBB. On a Wordpress qui monopolise le port 80 et phpBB devrait donc utiliser le port 8080 (8081, 8082, etc pour les autres webapps lancées ensuite).
Donc même chose dans le startup.ini on modifie la base de donnée sur le même modèle que ça (utilisé aussi dans wordpress) :
[UpdateOptionsValues]
Name=Update Options table
Description=Update Wordpress "Options" table with some rela config values
Type=SQL
Query=UPDATE `wp_options` SET `option_value`='http://127.0.0.1:{$zmws_port}/wordpress' WHERE `option_name`='siteurl';UPDATE `wp_options` SET `option_value`='http://127.0.0.1:{$zmws_port}/wordpress' WHERE `option_name`='home';
C'est là que c'est intéressant de fouiller dans la base de donnée avec Eskuel pour savoir où se trouve cette information. Dans la requête ci dessus (Query), voilà les équivalent avec phpBB : la table s'appelle "phpbb_config" au lieu de "wp_options" ; structuré par "config_name" et "config_value" au lieu de "option_name" et "option_value" (titre des colonnes) ; et le paramètre s'appelle server_port au lieu de "siteurl" avec comme valeur {$zmws_port} (variable du port web ici à 80) au lieu de "http://127.0.0.1:{$zmws_port}/wordpress"
Là différence ici c'est que pour wordpress on changeait toute l'url pour y inclure le port alors que là on a une variable spécifique pour le port.
Ça devrait être tout, après il faut tester (wordpress d'abord, puis phpbb, lancés ensemble) pour voir si ça fonctionne et si ce n'est pas le cas il faut chercher s'il n'y aurait pas d'autres données importantes de ce type stockées dans un autre fichier de config (ça se fait
) ou dans la base de donnée. Il faut vérifier aussi si le script startup.ini a bien le comportement voulu. (vérifier l'entrée dans la base de donnée et que le remplacement s'est bien effectué dans le fichier de config) Parfois, il y a des caractères spéciaux à échapper (\$, \=, \(, \), etc ). C'est très variable d'une webapp à une autre.
Là c'est juste les premiers trucs que je vois sans trop entrer dans le cambouis et avec de la chance ça sera tout. Je te laisse le faire...
Tu peux aller
jeter un œil là aussi si ça peut aider.