Help di Framakey WebApp Manager Sommario Domande frequenti......................................................................................................................1 Che cos'è Framakey WebApp Manager?...............................................................................1 Non ho capito bene.................................................................................................................1 Continuo a non capirci niente!...............................................................................................2 Qual è la differenza rispetto a EasyPHP, WAMP Server, XAMP, MovAMP, ecc ?.............2 Che differenza c'è rispetto a Bitnami?....................................................................................2 Quali sono le applicazioni compatibili?.................................................................................3 Perché la password è già inserita?..........................................................................................3 Altri utenti di internet possono accedere alla mia WebApp?.................................................3 Posso trasferire la mia WebApp su una chiave USB?............................................................3 Posso trasferire la mia su un CD o un DVD?.........................................................................3 Posso trasferire la mia WebApp su internet?.........................................................................3 Problemi frequenti.......................................................................................................................3 Ho questo messaggio di errore "impossibile collegarsi al database" (o simili).....................3 All'avvio mi dice che "Il file di sessione esiste già", perché e cosa devo fare?.....................3 Configurazione tecnica...............................................................................................................4 I launcher................................................................................................................................4 Configurazione di Framakey WebApp Manager..................................................................4 Configurazione della mia WebApp .......................................................................................5 Gli script generici e specifici ................................................................................................6 Lo splashscreen e l'icona........................................................................................................9 La configurazione avanzata....................................................................................................9 Come creare la mia WebApp ?...................................................................................................9 Domande frequenti Che cos'è Framakey WebApp Manager? Framakey WebApp Manager è una raccolta di software che permette di utilizzare in modo molto semplice sul proprio computer una "WebApp", cioè un'applicazione normalmente destinata ad internet. Framakey WebApp Manager permette di far girare Dotclear, SPIP, Joomla, Wordpress, Drupal e altre applicazioni sul proprio computer dotato di Windows, senza dover fare complesse installazioni. Puoi anche trasportare le tue WebApp su una chiave USB o su CD/DVD. Non ho capito bene... Di solito, quando si vuole utilizzare un blog, un wiki, o un'altra applicazione web, bisogna o iscriversi a un servizio on line (spesso a pagamento o con della pubblicità) o installare o far installare questa applicazione su uno spazio web ( a pagamento). L'altra soluzione è di installarla sul proprio computer. Visto che queste applicazioni (di solito) sono sviluppate in PHP/MySQL, si utilizza per lo più un sistema che comprende Apache+PHP+MySQL e che occorre installare sul proprio computer. Invece, quando si tratta di installare l'applicazione web all'interno di questo sistema, l'operazione può diventare complessa (configurazione delle informazioni di connessione, creazione del database, modifiche della configurazione di PHP, ecc). Framakey WebApp Manager vuole fornire,in un solo file zip, l'applicazione preconfigurata e pronta all'uso. Non c'è altro da fare che scompattare il file e lanciare l'applicazione. Continuo a non capirci niente! Esempio: hai scaricato Wordpress portable, L'hai scompattata e vuoi utilizzarla. Se hai mai provato a installare Apache+PHP+MySQL+Wordpress sotto Windows, allora puoi capire l'interesse di Framakey WebApp Manager. Qual è la differenza rispetto a EasyPHP, WAMP Server, XAMP, MovAMP, ecc ? Prima di tutto, l'applicazione viene già fornita con un sistema del genere, per cui l'installazione è ultra semplificata. Se conosci perfettamente XAMP o EasyPHP, allora l'interesse è nettamente più limitato. Il fatto che l'applicazione sia pronta all'uso permette di guadagnare tempo nella configurazionoe e nell'installazione e anche nel settaggio dell'ambiente (così si può facilmente proporre l'aumento del tempo limite di esecuzione di uno script PHP da 30 secondi a 5 minuti, per un'applicazione che richiede molte risorse e solamente per quella). Inoltre, le WebApps dispongono di propri script preconfigurati, per esempio per aprire la pagina di supporto (nella maggior parte dei casi un forum) dell'applicazione. Ma gli script possono anche servire a importare o esportare dei dati SQL o a fare automaticamente dei ricerca/sostituisci nei file. Questi script sono facilmente configurabili (vedi più sotto). Per finire, la WebApp è portabile, è possibile fare il copia/incolla su una chiavetta USB e lavorare su quella, copiarla sull'hard disk e riprendere il lavoro dove lo si era lasciato: i settaggi della WebApp saranno aggiornati automaticamente. Con MovAMP o EasyPHP, questo non succede: se si sposta WordPress dalla chiavetta USB all'hard disk, occorre, per esempio, aggiornare manualmente il percorso di upload nel database, cosa che può diventare presto fastidiosa. Che differenza c'è rispetto a Bitnami? Bitnami ha largamente ispirato le WebApps di Framakey, ma purtroppo le "Bitnami stacks" : non sono libere al 100% (utilizzano l'installatore BitRock, che non è libero) utilizzano un'installazione "come servizio". Questo vuol dire che sono "embedded" in Windows (spesso lanciate all'avvio, condividono dei dati comuni, e girano sullo sfondo in modalità "nascosta"). Quest'ultimo punto impedisce di rendere l'applicazione portabile e può creare dei problemi se si utilizzano più applicazioni contemporaneamente. Al contrario, le WebApps di Framakey utilizzano un processo separato per ciascuna WebApp (un MySQL e un ZMWS per WebApp) e questo gli permette di essere portabili e indipendenti. Così, è possibile lanciare contemporaneamente 2, 3 o 10 WebApps. Ah, e poi Bitnami è solo anglofono,mentre WebAppManager è multilingue... Quali sono le applicazioni compatibili? In teoria, tutte le applicazioni PHP/MySQL capaci di girare sotto Windows. Perché la password è già inserita? L'applicazione viene distribuita già preconfigurata per guadagnare tempo e soprattutto per guadagnare in semplicità. E' sempre possibile modificare la password. Altri utenti di internet possono accedere alla mia WebApp? Potenzialmente, sì. Se non sei dietro un routeur o un firewall e se comunichi l'indirizzo pubblico della tua WebApp, allora altri utenti potranno accedervi. Puoi conoscere l'indirizzo pubblico cliccando sulla voce "Info" del menu. Ti verrà indicato nel modo seguente: Public URL: http://88.180.138.246:80/wordpress Puoi impedire l'accesso barrando la casella "bind" nel menu "Configurazione avanzata" Posso trasferire la mia WebApp su una chiave USB? Sì. Occorre arrestare la WebApp prima di trasferirla, ma poi basta un semplice copia/incolla. Posso trasferire la mia su un CD o un DVD? (Non ancora testato, ma dovrebbe funzionare ;) ) Posso trasferire la mia WebApp su internet? Sì... e no. L'opzione "automatica" è prevista per una futura versione. Tuttavia è possibile fare un trasferimento "manuale" seguendo le seguenti fasi: 1. procurarsi uno spazio web PHP/MySQL 2. trasferire i propri file via FTP 3. esportare il database (Menu > Script > Generici > Esporta il database) 4. importare il file /App/Appinfo/export-xxxxxx.sql che viene creato nel database remoto. Possono essere necessarie delle modifiche, ma saranno specifiche di ciascuna WebApp. TORNA AL SOMMARIO Problemi frequenti Ho questo messaggio di errore "impossibile collegarsi al database" (o simili) Probabilmente non è stato lanciato MySQL. Arresta la tua WebApp riavviala. All'avvio mi dice che "Il file di sessione esiste già", perché e cosa devo fare? A ciascun avvio della WebApp, viene creato un file di sessione nella cartella /App/Appinfo/session.lock per evitare di lanciare contemporaneamente due volte la stessa WebApp. Se la WebApp è già lanciata e accessibile, rispondi no. Altrimenti, rispondi sì, il file di sessione verrà cancellato quando uscirai dalla tua WebApp. TORNA AL SOMMARIO Configurazione tecnica I launcher Il launcher XxxxxxPortable.exe (es: WordPressPortable.exe) serve solo a lanciare il WebAppManager ("WAM"), perciò non è molto interessante. Infatti il vero launcher è il file \Other\Framakey-WebAppManager\\FramakeyWebAppManager.exe . Questo è comune a tutte le WebApps. La configurazione specifica di ciascuna WebApp si trova infatti nella cartella /App/Appinfo Configurazione di Framakey WebApp Manager File \Other\Framakey-WebAppManager\\Framakey-WebAppManager.ini [Config] ;Si "True", affiche l'aide de la WebApp au démarrage DisplayHelp=True ;Temps d'affichage de Splashscreen (0 ou False = désactivation du splash) SplashTimeout=2500 ;Si True, enregistre certains évènements dans \Other\FramakeyWebAppManager\WAMLog.txt Log=False ;Langue utilisée pour l'interface (par défaut utilise la langue du système, sinon l'anglais) Lang=fr [ZMWS] ;browse : lance le navigateur de l’utilisateur sur le site hébergé après le démarrage du serveur ou si le port demandé est déjà occuppé par un serveur (avec unique-port) (par défaut, on ne lance pas le navigateur). browse=False ; port : le port de fonctionnement (80 par défaut). Si celui ci n’est pas libre, ZMWS essaie de se lancer sur un port entre 8080 et 8089 (premier libre). port=False ; unique-port : force l’utilisation du port 80 ou celui spécifié par l’option -p, quitte s’il est déjà occupé (par défaut, ZazouMiniWebServer essaie ensuite d’utiliser les ports 8080 à 8089 avant de quitter) unique-port=False ; quiet : avec cette option, ZazouMiniWebServer n’affiche plus les requêtes traitées dans la console. Par défaut, le serveur affiche de nombreuses informations. Empêcher cet affichage permet une sensible amélioration des performances. quiet=True ; nolog : désactive la création des logs (activée par défaut). nolog=True ;closebrowser : combinée à -stop, permet de fermer le navigateur lors de l’arrêt du serveur (en envoyant un javascript au client). closebrowser=True ; noindex : désactive l’indexation des répertoires (activée par défaut). noindex=False ; webdir : fonctionnalité non encore implémentée. webdir=False ; bind : Utilisez cette option pour que ZazouMiniWebServer ne réponde que sur une seule adresse IP (exemple -bind 127.0.0.1 pour n’autoriser que les connexions depuis la machine). Par défaut, ZazouMiniWebServer répond sur toutes les IP de la machine. bind=False ;stop : permet d’arrêter le serveur lors de la visite de /_stopServer.zmwsc stop=True [MYSQL] ; permet de fixer le port mysql si besoin. Sinon "Auto" permet de tester les ports un par un à partir de 3306 port=Auto Questo file può essere modificato attraverso il menu "Configurazione avanzata" Configurazione della mia WebApp La configurazione si trova nel file 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 Evidentemente le informazioni interessanti sono quelle alla fine del file ;) Gli script generici e specifici Una delle particolarità delle WebAppsè di proporre l'esecuzione di script predefiniti Questi sono divisi in 3 categorie: • Script generici: sono comuni a tutte le applicazioni Per esempio: l'esportazione del database. Il file si trova in \Other\Framakey-WebAppManager\scripts.generic.ini • Script specifici:sono propri della WebApp in esecuzione. Per esempio: riportare la password a un valore predefinito. Il file si trova in App\AppInfo\scripts.ini • Script di avvio: sono eseguiti "silenziosamente" all'avvio della WebApp. Per esempio per adattare il database alla porta MySQL attualmente in esecuzione.. Il file si trova in App\AppInfo\startup.ini Esistono 6 comandi tipo: • • • • • • SQL : per eseguire un comando SQL SQLFILE : esegue il contenuto di un file SQL COMMAND : esecuzione di un comando SQL o di un programma REPLACE : ricerca/sostituisci in un file EDIT : apre un file con l'editor di default URL : apre una pagina web Esempi di script commentati Modificare un file ; 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 Esportare il database ; 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. Eseguire una query 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 pointsvirgules 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 Eseguire un insieme di query a partire da un file [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. Fare un ricerca/sostituisci [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 Stringhe di sostituzione Come si è visto qui sopra, è possibile utilizzare delle stringhe di sostituzione, per esempio {$mysql_port} sarà automaticamente sostituito dalla porta inn mysql, aperta all'avvio della WebApp. Ecco l'elenco delle variabili: {$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\\sousdossier\\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-0320-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 FramakeyWebAppManager-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\sousdossier\DrupalPortable\ZMWS") {$zmws_port} = numéro du port web utilisé au lancement de la WebApp (par défaut 80, mais peut être fixé dans FramakeyWebAppManager-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\sousdossier\DrupalPortable") Lo splashscreen e l'icona Lo splashscreen (l'immagine che viene visualizzata all'avvio della WebApp) è composto di 4 elementi: Un'immagine di fondo (497x341px): Other\Framakey-WebAppManager\empty_splash.jpg Un logo (di preferenza 128x128 fondo bianco) : App\AppInfo\logo.gif il nome può essere ridefinito in App\AppInfo\appinfo.ini) Un titolo: verrà utilizzata la variabile ShortName=xxxxxxx . Una durata: di defaultt 2500 ms. Può essere modificata in Other\FramakeyWebAppManager\Framakey-WebAppManager.ini => SplashTimeout=2500 La configurazione avanzata La schermata di configurazione avanzata permette di modificare in modo semplice il file Other\Framakey-WebAppManager\Framakey-WebAppManager.ini (vedi più sopra). Si consiglia di arrestare i servizi, di fare le modifiche e di salvarle prima di riavviare i servizi. TORNA AL SOMMARIO Come creare la mia WebApp ? L'help (al momento in francese) è disponibile on line qui: http://www.framakey.org/WebApp/CreerMaWebApp TORNA AL SOMMARIO Testo originale: http://framakey.org/WebApp/FAQ Traduzione italiana: [email protected] Software libero & TD Distribuito con licenza Creative Commons BY-SA Milano, luglio 2009.