Framakey WebApp Manager est un ensemble de logiciel vous permettant d'utiliser très simplement une "WebApp", c'est à dire une application normalement destinée pour internet, sur votre ordinateur.
Framakey WebApp Manager vous permet de faire tourner Dotclear, SPIP, Joomla, Wordpress, Drupal et bien d'autres sur votre ordinateur équippé Windows, sans avoir d'installation comlexe à réaliser. Vous pourrez même transporter vos WebApp sur clé USB ou CD/DVD.
Normalement,
lorsqu'on veut utiliser un blog, un wiki, ou autre application web, il
faut soit s'inscrire à un service en ligne (souvent payant ou proposant
de la publicité), soit installer ou faire installer cette application
sur un hébergement web (payant).
L'autre solution, c'est de l'installer sur sa machine.
Ces applications étant (généralement) développées en PHP/MySQL, on utilise alors le plus souvent un système proposant Apache+PHP+MySQL, qu'il faut installer sur sa machine. Par contre, lorsqu'il s'agit d'installer l'application web au sein de ce système, cela peut rapidement devenir complexe (configuration des informations de connexion, mise en place de la base de données, adaptations de la configuration de PHP, etc).
Framakey WebApp Manager propose de livrer, en un seul fichier zip, l'application préconfigurée et prête à l'emploi. Vous n'avez rien d'autre à faire que dézipper et lancer l'application.
A chaque lancement de WebApp, un fichier de session est créé dans le dossier /App/Appinfo/session.lock afin d'éviter de lancer simultanément 2 fois la même WebApp.
Si la WebApp est déjà lancée et accessible, répondez non.
Sinon, répondez oui, le fichier de session sera effacé lorsque vous
quitterez votre WebApp.
La configuration se trouve dans le fichier App\AppInfo\Appinfo.ini
[Format]
Type=Framakey.orgFormat
Version=0.9.8
[Details]
Name=Framakey WebApp Portable
Publisher=Framakey
Homepage=Framakey.org/WebApp
Category=Misc
Description=WebApp Portable.
[License]
Shareable=true
OpenSource=true
Freeware=true
CommercialUse=true
[Version]
PackageVersion=1.0.0.0
DisplayVersion=1.0
[Control]
Icons=1
Start=WebAppPortable.exe
[WebAppSpecific]
ShortName=WebApp
ApplicationPath=wordpress
DatabaseName=wordpress
Website=http://www.wordpress.org
Support=http://wordpress.org/support/
Framasoft=http://www.framasoft.net/
FramasoftSupport=http://forum.framasoft.org/
Logo=logo.gif
L'une des particularités des WebApps est de proposer l'execution de scripts prédéfinis.
Ceux-ci sont réparti en 3 catégories :
Il existe 6 commandes types :
Exemples de scripts commentés
Editer un fichier
;
Identifiant unique du script
[EditPhpIni]
; Nom qui sera affiché dans le
menu
Name=Edit PHP.ini
; Nom en Français (tout champ
terminé en "_fr" sera affiché s'il s'agit de la langue du WebAppManager)
Name_fr=Editer PHP.ini
; Description affichée dans la
boite de dialogue
Description=Open PHP.ini
Description_fr=ouvre le fichier de configuration PHP.ini (pour y
modifier des variables de configuration, par exemple).
; Type de la commande
Type=EDIT
; Le fichier à éditer
File={$zmws_path}\php5\php.ini
Exporter la base de données
;
Identifiant unique du script
[ExportDB]
; Nom qui sera affiché dans le
menu
Name=Export database
; Nom en Français (tout champ
terminé en "_fr" sera affiché s'il s'agit de la langue du WebAppManager)
Name_fr=Exporter la base de données
; Description affichée dans la
boite de dialogue
Description=Export the Whole database
Description_fr=Sauvegarde la totalité de la base dans
\Appinfo\{$CurrentDate}.sql {@CRLF}Attention: MySQL doit être actif.
; Type de la commande
Type=COMMAND
; Le coeur du script : que lui
demande-t-on d'éxecuter ? Evidemment, ça parait un peut abscons vu
comme ça, mais ça revient à lui faire executer un mysqldum de la base
de la WebApp dans un fichier nommé export-(Nom de la base)-(date et
heure).sql
Query={@ComSpec} /c {$mysql_bin_path}\mysqldump --opt {$DatabaseName}
-u root >
{$appinfo_path}\export-{$appShortName}-{$CurrentDate}.sql
; permet d'afficher un message à
la fin de l'execution de la commande.
Done=Executed: {@ComSpec} /c {$mysql_bin_path}\mysqldump --opt
{$DatabaseName} -u root >
{$appinfo_path}\export-{$appShortName}-{$CurrentDate}.sql
Done_fr=Action executée : {@ComSpec} /c {$mysql_bin_path}\mysqldump
--opt {$DatabaseName} -u root >
{$appinfo_path}\export-{$appShortName}-{$CurrentDate}.sql {@CRLF}Rendez
vous dans le dossier {$appinfo_path} pour récupérer votre sauvegarde.
Executer une requête SQL
[ResetLogPass]
Name=Reset Login and Password
Name_fr=Réinistialiser log/pass
Description=Reset Title, login and password to initial values.
Description_fr=Réinitialise le mot de passe adminstrateur avec
"admin"/"framasoft"
Type=SQL
; la requête qui sera executée
(il est possible d'en passer plusieurs sur la même ligne en les
spéarant par des points-virgules
Query=UPDATE `wp_options` SET `option_value`='WordPress
Portable',`autoload`='yes' WHERE `option_id`=2 AND `blog_id`=0 AND
`option_name`='blogname'; UPDATE `wp_options` SET `option_id`='62',
`blog_id`='0', `option_name`='secret',
`option_value`='aD)2Hujr&NooM5^&Eqq&vPHO#bRlOY!^cKUzpMC&qJEb43U5cyrt2XMcDh1#P0qU',
`autoload`='yes' WHERE `option_id`='62' AND `blog_id`='0' AND
`option_name`='secret';
Done=Done: login=admin, Password=framasoft
Done_fr=Action executée: login=admin, Password=framasoft
Executer un ensemble de requêtes depuis un fichier
[ResetSettings]
Name=Reset settings
Name_fr=Réinitialiser la configuration
Description=Reset all the settings (Title, Email, login and password
etc) to initial values.
Description_fr=réinitialise toutes les options (titre, email, login,
password, etc) aux valeurs initiales, sans toucher à votre contenu.
; contrairement à la commande
SQL, ici, on va executer les requêtes depuis un fichier (pratique par
exemple pour réimporter une base de données)
Type=SQLFILE
; le nom du fichier
file={$appinfo_path}\reset_main_options.sql
Done=Done
Done_fr=Réinitialisation terminée.
Faire un rechercher/remplacer
[Synchronize]
Name=Syncronize MySQL Port
Description=Update Wordpress config with the OpenMySQL Port
Name_fr=Syncronise le port MySQL
Description_fr=Met à jour le fichier de config WordPress avec le port
MySQL actuellement assigné.
Type=REPLACE
; nom du fichier dans lequel on
va faire le rechercher/remplacer
File={@ScriptDir}\..\..\App\{$ApplicationPath}\wp-config.php
; la chaine de recherche, notez
qu'il est possible d'utiliser les expressions régulières ;) Ici, on
recherche le mot "localhost" suivi (ou pas, grâce au caractère "?") de
":" et d'un chiffre (représenté par "\d") répété plusieurs fois (grâce
au caractère "*"). Ainsi, on cherche "localhost", "localhost:3306",
"localhost:88", etc.
SearchPattern=localhost(:\d*)?
; chaine de remplacement, ici on
remplace par localhost suivi de ":" puis du port MySQL ouvert par la
WebApp
ReplaceValue=localhost:{$mysql_port}
Done=Done
Done_fr=Fait
Chaînes de remplacement
Comme on l'a vu ci-dessus, il est possible d'utiliser des chaines de remplacement, par exemple {$mysql_port} sera automatiquement remplacé par le port en mysql ouvert lors du lancement de la WebApp. Voici la liste de ces variables :
{$DatabaseName} = nom de la base de
données (cf appinfo.ini)
{$ApplicationPath} = nom du dossier de la WebApp (cf appinfo.ini)
{$root_path_absolute} = chemin absolu du root de la WebApp (ex:
"E:\dossier\sous-dossier\DrupalPortable" )
{$r_p_a_backslashes} = équivalent au précédent, mais avec des doubles
backslashes (ex: "E:\\dossier\\sous-dossier\\DrupalPortable" )
{$appinfo_path} = chemin vers le dossier AppInfo (ex:
"E:\dossier\sous-dossier\DrupalPortable\AppInfo" )
{$ApplicationURL} = url de la WebApp (ex:
http://127.0.0.1:8083/wordpress )
{$appShortName} = Nom court de l'application (ex: "Wordpress"). Les
espaces sont déconseillés.
{$CurrentDate} = Date au format YYYY-MM-DD-HH-MM-SS (ex:
"2009-03-20-12-59-25")
{$mysql_bin_path} = chemin vers les binaires mysql (ex:
"E:\dossier\sous-dossier\DrupalPortable\ZMWS\mysql\bin" )
{$mysql_bin_name} = nom du binaire mysql (ex: "mysqld.exe")
{$mysql_port} = numéro du port MySQL utilisé au lancement de la WebApp
(par défaut 3306, mais peut être fixé dans
Framakey-WebAppManager-config.ini, ou positionné automatiquement si le
port n'est pas libre)
{$zmws_webdir} = chemin du "webdir" ZMWS, c'est à dire le root web
relativement au fichier \ZMWS\ZazouMiniWebServer.exe (ex: "..\App"
{$zmws_path} = chemin vers ZMWS
("E:\dossier\sous-dossier\DrupalPortable\ZMWS")
{$zmws_port} = numéro du port web utilisé au lancement de la WebApp
(par défaut 80, mais peut être fixé dans
Framakey-WebAppManager-config.ini, ou
positionné automatiquement si le port n'est pas libre)
{@ComSpec} = chemin vers le fichier cmd.exe de Windows (ex:
"C:\WINDOWS\system32\cmd.exe")
{@CRLF} = retour chariot
{@ScriptDir} = chemin du root de la WebApp (ex:
"E:\dossier\sous-dossier\DrupalPortable")
Le splashscreen (l'image qui est affichée au lancement de la WebApp est composé de 4 éléments :
Une image de fond (497x341px): Other\Framakey-WebAppManager\empty_splash.jpg
Un logo (de préférence en 128x128 fond blanc) : App\AppInfo\logo.gif (le nom peut être redéfini dans App\AppInfo\appinfo.ini)
Un titre : c'est la variable ShortName=xxxxxxx qui sera utilisée.
Une durée : par défaut 2500 ms. Peut être modifiée dans Other\Framakey-WebAppManager\Framakey-WebAppManager.ini => SplashTimeout=2500
L'écran de configuration avancée permet de manipuler simplement le fichier Other\Framakey-WebAppManager\Framakey-WebAppManager.ini (cf plus haut). Il est conseillé d'arrêter les services, de faire les manipulations et de les enregistrer avant de relancer les services.