Sfida di architettura: come scriveresti un programma di installazione di script opensource da eseguire in un browser?

2

Al momento ho un programma di installazione che funziona, ma devo riconfezionare le app open source e hackerare le cose insieme per far installare il programma di installazione. Voglio essere in grado di utilizzare il metodo di installazione delle app senza dover hackerare e riconfezionare. Quindi sto pensando di riscriverlo.

Permetterà a un utente con poca o nessuna esperienza tecnologica di installare app open source (ad esempio WordPress, Joomla, Drupal, et.al.). Ci sono alcuni requisiti che voglio incontrare:

  • L'installazione dovrebbe eseguire il processo di installazione degli script per essere sicuro il database è configurato correttamente e le password utilizzano le app processi di crittografia password predefiniti.
  • Possibilità di tenere traccia dell'avanzamento e segnalare eventuali errori.
  • Possibilità di eseguire aggiornamenti per versioni future.
  • Possibilità di rimuovere l'applicazione se qualcuno decide che non desidera ancora.
  • L'unico accesso che sicuramente avrò sul server remoto degli utenti è tramite FTP.

Ho pensato di usare il selenio. Tuttavia, se sei stato sfidato a girare il codice in PHP, come lo faresti?

AGGIORNAMENTO PER CHIARIMENTO:

Il programma di installazione raccoglierà le impostazioni degli script da un modulo nel browser compilato dall'utente finale. Il processo di installazione (che viene eseguito in background e si connette tramite FTP al server degli utenti) elaborerà quindi l'installazione. (Ad esempio SimpleScripts, Installatron, Softaculous, Fantastico, WebPub, ecc.) Sto cercando di capire come progettare il processo di installazione più semplice possibile. Ha bisogno di creare database, installare l'applicazione usando il metodo di installazione degli script (come se l'utente lo stesse eseguendo manualmente), ecc. Spero che chiarisca la sfida.

    
posta Chuck Burgess 06.02.2012 - 18:34
fonte

2 risposte

2

Non avrai la possibilità di eseguire script via FTP, ovviamente.

Tuttavia, puoi caricare un file .PHP nella directory web dell'utente e quindi eseguire da remoto quel file PHP (o qualsiasi altra lingua tu scelga). Ecco perché non diamo diritti scrivibili a livello mondiale alle directory in cui sono memorizzati gli script! : -)

Quindi, un approccio che si potrebbe prendere potrebbe essere:

  • Raccogli i parametri dell'applicazione (quali programmi, dove archiviarli, informazioni sul database)
  • Genera un grande file .PHP che esegue script dell'installazione delle applicazioni. Caricalo tramite FTP nella directory root del dominio.
  • Esegui in remoto (e assicurati che il file php non possa essere eseguito più di una volta).

Problemi pratici:

  • L'utente che sta funzionando il web server potrebbe non avere i diritti necessari per creare directory dove ne hai bisogno. Presumibilmente l'utente lo fa, quindi questi potrebbero essere creabili via FTP.
  • L'utente db fornito dall'utente potrebbe non avere i diritti per creare un nuovo database, quindi potrebbe doverlo creare tramite qualsiasi strumento fornito dal proprio ISP.
  • La quantità di informazioni richieste in anticipo potrebbe essere molto grande e richiede un certo livello di familiarità con le strutture di directory del server ... e se l'utente lo ha, allora l'utilità del servizio è deminata poiché la maggior parte delle app ha i propri programmi di installazione simili.
  • Se mancano librerie o estensioni PHP, ad esempio un'app PHP che richiede cUrl e la sua mancanza, sei sfortunato.
risposta data 08.02.2012 - 23:18
fonte
1

Probabilmente stai pensando a qualcosa di simile a Installatron . Offrono un modo semplice e gratuito per installare da remoto le applicazioni web più popolari. Hai solo bisogno di compilare il modulo con DB, FTP e le impostazioni dell'applicazione, selezionare la versione dell'applicazione desiderata e fare clic su Installa.

NOTA: Non sono affiliato con Installatron in alcun modo. La mia unica associazione con loro è che il mio provider di hosting utilizza il proprio plug-in.

UPDATE:

PHP è una buona scelta per la creazione dinamica di script. Come già suggerito da GrandmasterB, non è possibile eseguire script tramite FTP, quindi la soluzione più semplice è creare uno script di installazione, caricarlo sul server di destinazione ed eseguirlo.

Probabilmente vorrai supportare molte diverse applicazioni, quindi renderei un sistema molto configurabile. Fondamentalmente ogni azione che deve essere eseguita per installare un'applicazione deve essere scritta in una configurazione. La configurazione può essere archiviata come file o in un database (RDBMS o anche NoSQL). In questo modo è possibile modificare facilmente la procedura di installazione senza modificare il codice. Ciò consentirà inoltre di supportare facilmente più sistemi operativi e consentire ad altri di scrivere procedure di installazione per la loro applicazione.

È possibile riscontrare numerosi problemi durante l'installazione dell'applicazione sul server, ad es. non hai le autorizzazioni sufficienti per scrivere / eseguire o l'applicazione che stai installando richiede una versione più alta di PHP / MySQL / qualche libreria ecc.

In caso di errore, l'applicazione dovrebbe essere in grado di eseguire il rollback di tutte le modifiche apportate in modo che il sistema di destinazione rimanga nello stesso stato prima dell'inizio dell'installazione.

Hai scelto come target utenti con competenze tecniche minime o assenti, quindi renderei l'interfaccia utente il più semplice possibile. Ma non importa quanto sia semplice l'interfaccia, non è possibile nascondere alcuni dettagli tecnici da loro, cioè dovranno conoscere le credenziali FTP e del database. Per alcuni utenti sarà anche un problema, ma l'unica cosa che puoi fare è scrivere una sorta di aiuto o wizard che li guidi attraverso il processo.

    
risposta data 06.02.2012 - 22:00
fonte

Leggi altre domande sui tag