Gambas-it

Gambas3 => Domande tecniche => Topic aperto da: kicco - 15 Giugno 2020, 09:33:02

Titolo: Avvio programma Web
Inserito da: kicco - 15 Giugno 2020, 09:33:02
 :ciao:
Ho scritto un programmino Web (usando gb.web.form) e ho generato l'eseguibile .gambas.
Non riesco ad avviarlo!  :-\
Come si fa?
 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: Gianluigi - 15 Giugno 2020, 14:17:38
:ciao:
Ho scritto un programmino Web (usando gb.web.form) e ho generato l'eseguibile .gambas.
Non riesco ad avviarlo!  :-\
Come si fa?
 :ciao:

Credo che tu faccia un po di confusione, la possibilità che Gambas offre di creare un'applicazione web come se fosse un'applicazione desktop non deve trarti in inganno.
Sono due cose differenti; l'una gira sul tuo computer l'altra gira su un server, e solo successivamente sul desktop.
Io non me ne capisco e non posso aiutarti, ma penso che tu debba per prima cosa comprendere cosa questa differenza implichi.

 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: akrobaticone - 15 Giugno 2020, 14:36:36
Se può servire avevo fatto qualche prova
 https://www.gambas-it.org/smf/index.php?topic=6754.0
Titolo: Re:Avvio programma Web
Inserito da: kicco - 15 Giugno 2020, 14:50:42
Grazie ad entrambi!
 :)
Titolo: Re:Avvio programma Web
Inserito da: kicco - 15 Giugno 2020, 15:11:48
Sono due cose differenti; l'una gira sul tuo computer l'altra gira su un server, e solo successivamente sul desktop.
Ok sono d'accordo, ma quando eseguo dall'IDE il programma, Gambas si comporta da server e lancia l'applicazione nel browser.
Pensavo si potesse fare la stessa cosa col file.gambas (l'eseguibile).
Akrobaticone invece propone l'uso di apache2 per l'esecuzione del programma sul server.
...
Speravo fosse più semplice!
 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 16 Giugno 2020, 13:55:14
Ho guardato anche i video youtube di Alessandri
https://www.gambas-es.org/viewtopic.php?f=1&t=7942 (https://www.gambas-es.org/viewtopic.php?f=1&t=7942)
ma non ne parla.
C'è una buona anima che ha la pazienza di spiegarmi (spiegarci) i concetti base che stanno dietro ad una applicazione web?
Anche nella Mailing List non ho trovato niente!  :-\
 :)
 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: akrobaticone - 16 Giugno 2020, 17:02:01
come mai vuoi usare una applicazione web al posto di una desktop?
se deve girare in locale non mi sembra molto adatta

(avere un raspberry aiuta molto a svluppare cose del genere ;))
Titolo: Re:Avvio programma Web
Inserito da: akrobaticone - 16 Giugno 2020, 17:31:53
Una aplicazione web serve a generare una pagina visualizzabile su un browser
serve quindi a far visualizzare informazioni a dispositivi remoti
creare una applicazione che deve girare in locale ma visualizzata sul browser non mi sembra molto utile
in ogni caso dovresti avere l'interprete installato, tanto vale installare gambas e creare una applicazione desktop
immagina invece di avere , per esempio, un server in una rete al quale accedi per interagire magari con database
con gambas web crei l'interfaccia visualizzabile da un browser accessibile da dispositivi remoti oppure una applicazione che puoi utilizzare da tutti i pc della rete senza differenza di sistema operativo.
dato che sono fissato con raspberry
crea un qualsiasi dispositivo basato sul lampone (centralina meteo, piccolo server con database incorporato, controller per stampante 3d etc..)
creaci mediante gambas una interfaccia web che ti permette di controllarlo da qualsiasi pc della tua rete opure addirittura da remoto

ti stuzzica?
Titolo: Re:Avvio programma Web
Inserito da: Gianluigi - 16 Giugno 2020, 18:10:50
Giusto, condivido quanto dice Akrobaticone.

Se si possiede un server il vantaggio di creare un'applicazione web rispetto a quella desktop è che mentre l'applicazione desktop fatta con Gambas gira solo su linux, l'applicazione web, sempre fatta con Gambas, ha il vantaggio di girare su qualunque piattaforma (Linux, Windows, Mac ecc.) perché sfrutta i browser multi piattaforma.
Quindi devi studiare, credo che su internet, anche se non li ho mai cercati, ci siano dei tutorial che spiegano come fare un'applicazione web e come farla girare.
Le applicazioni web girano in localhost solo per crearle o provarle.
Ripeto sto parlando solo per sentito dire, non avendo mai fatto nulla di questo genere.

 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 16 Giugno 2020, 18:18:00
Grazie Akrobaticone!
Intanto devo dire che ho seguito il tuo metodo per Raspberry installando Apache2. Ti confermo che anche su Ubuntu le cartelle sono le stesse che hai indicato per Raspbian.
Tutto è andato bene tranne che Apache2 non digerisce nelfile di configurazione il comando
Codice: [Seleziona]
Set Handler cgi-script
Ergo non si avvia. Se commento quella riga parte ma non vedo la pagina.  :-\

La mia applicazione nasce desktop e funziona sul desktop. HO costruito una secondo programma Web che leggendo due file prodotti dal primo programma, mette in rete delle informazioni. Tutto molto semplice.
Se il programmino web lo faccio girare direttamente dall'IDE di Gambas, da qualsiasi PC in rete, ovviamente indicando al browser l'indirizzo IP posso vedere la pagina di cui sopra.
Quindi Gambas è già in grado di "mettere in rete" la pagina, come fosse un webserver.  :-\
Pensavo e speravo  :'( che lanciando il programma compilato fosse ancora possibile sfruttare questa possibilità!

Invece  :'( :'( :'( :'( :'( :'(
Titolo: Re:Avvio programma Web
Inserito da: kicco - 16 Giugno 2020, 18:25:31
Aggiungo anche che il programmino è visibile anche usando un smartphone.
Sembra poco ma contate che in un'azienda molti sono collegati alla rete aziendale e quindi in molti possono controllare lo stato del programma principale (Desktop) senza dover andare per forza al PC sul quale gira e se questo PC viene "affacciato" ad internet, l'accesso diventa possibile anche da remoto!
 :ciao: :ciao: :ciao:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 16 Giugno 2020, 19:03:43

Tutto è andato bene tranne che Apache2 non digerisce nelfile di configurazione il comando
Codice: [Seleziona]
Set Handler cgi-script
L'istruzione è SetHandler (tutto attaccato)!
 :hatecomputer:

 :ciao:
PS: Riesci a correggerlo nel tuo vecchio post?  :-*
Titolo: Re:Avvio programma Web
Inserito da: akrobaticone - 16 Giugno 2020, 19:25:03
Grazie kicco per la dritta
non mi compare modifica
possibile??
Titolo: Re:Avvio programma Web
Inserito da: Gianluigi - 16 Giugno 2020, 19:32:23
Grazie kicco per la dritta
non mi compare modifica
possibile??

Non so cosa dirti, ma l'ho modificato io.

 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 16 Giugno 2020, 20:08:49
Gianluigi, non mandarmi al diavolo ma anche
Citazione
Allow Override All
AllowOverride va scritto tutto attaccato!
 :-*
Titolo: Re:Avvio programma Web
Inserito da: akrobaticone - 16 Giugno 2020, 20:24:42
accidenti
e siamo a due :-[
confermo le modifiche
Titolo: Re:Avvio programma Web
Inserito da: kicco - 16 Giugno 2020, 20:50:10
 :'(
il file gambas è in /var/www/html/file.gambas ma non legge i file che sono in /tmp
Codice: [Seleziona]
   
If Exist("/tmp/now.txt") Then
            Message.Warning("now.txt OK")
else
            Message.Warning("now.txt KO")
endif
mi da sempre il messaggio "now.txt KO" cosa che non accade nell'IDE di Gambas!  :-\

PS: per i due errori solo una preghiera per Lui  sanmidi
Titolo: Re:Avvio programma Web
Inserito da: Gianluigi - 17 Giugno 2020, 09:32:15
:'(
il file gambas è in /var/www/html/file.gambas ma non legge i file che sono in /tmp
Codice: [Seleziona]
   
If Exist("/tmp/now.txt") Then
            Message.Warning("now.txt OK")
else
            Message.Warning("now.txt KO")
endif
mi da sempre il messaggio "now.txt KO" cosa che non accade nell'IDE di Gambas!  :-\


Siccome "Now" è una parola chiave, potrebbe essere che da qualche parte il codice metta "now" a "Now"?
Trattasi di ipotesi labile, comunque io cerco sempre di evitare l'uso delle parole chiave...

 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 17 Giugno 2020, 10:31:54
Citazione
Siccome "Now" è una parola chiave...
Giusta osservazione, ma anche cambiando il nome del file la solfa non cambia!
Mi sto s-cervellando !
 :hard:
Titolo: Re:Avvio programma Web
Inserito da: akrobaticone - 17 Giugno 2020, 11:28:00
Hai provato un altro percorso?
magari nella home
Titolo: Re:Avvio programma Web
Inserito da: kicco - 17 Giugno 2020, 11:58:48
Hai provato un altro percorso?
magari nella home
No non ho provato. Ho invece provato a mettere tutto il progetto nella cartella /var/www/html dove c'è, anche l'eseguibile.
Ho cambiato i permessi alla cartella di progetto e ho eseguito il programma dall'IDE.
Funziona perfettamente!!!
 :hard: :hard: :hard:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 17 Giugno 2020, 20:14:00
Allora:
se verifico l'esistenza della directory /tmp, mi dice che esiste. (usando il compilato su Apache)
Se verifico l'esistenza di /tmp/nomefile mi dice che non esiste.(usando il compilato su Apache)
Il file ovviamente esiste!
Nel programma eseguito da IDE funziona in entrambi i casi!
Potrebbe essere un baco?
 :'(
Titolo: Re:Avvio programma Web
Inserito da: kicco - 17 Giugno 2020, 20:25:27
Hai provato un altro percorso?
magari nella home
Sai che sembra un problema legato alla directory /var
Pare che nella /home funzioni!
Approfondisco!
 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 19 Giugno 2020, 07:40:01
 :ciao:
Ho fatto un po' di supposizioni, ma alla fine non ho capito perchè nella /var Apache sembra non essere in grado di leggerne il contenuto.
Quindi ho optato per mettere i suddetti file in una cartella nella /home in forma nascosta e di cancellarli alla chiusura del programma principale che li genera.
Il tarlo però rimane  :-\
 :ciao: :ciao: :ciao:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 22 Giugno 2020, 17:25:58
http://gambaswiki.org/wiki/howto/getstartedwebgambas (http://gambaswiki.org/wiki/howto/getstartedwebgambas)
Nella wiki ho trovato questo documento che spiega come l'avvio di un programma WEB dall'IDE, impieghi un web server embedded a Gambas stesso.
 :ciao:
Titolo: Re:Avvio programma Web
Inserito da: kicco - 27 Giugno 2020, 15:52:53
 :ciao:
Ho scoperto anche che quando compilo il programma web e lo metto nella cartella /var/www/html, per farlo eseguire ad Apache, la verifica della presenza di un file può avvenire solo usando la path assoluta:
Codice: [Seleziona]
/home/username/LOG/....
con gli ovvi problemi.
Ho provato allora nell'applicazione compilata ed eseguita da Apache a usare le istruzioni:
user.home  ->  /var/www
user.name  ->  www-data

Non credo sia corretto!
Titolo: Re:Avvio programma Web
Inserito da: ujlain - 23 Febbraio 2021, 16:51:45
Not certain if this old tread was completely resolved or not
Kindly follow the following steps to run your compiled Gambas web application under Apache2 Web server

Install Apache2
1.   Check Apache is installed   
$ apache2 -v
2.   Else install acahe2
$ sudo apt-get install apache2
3.   $ sudo mkdir /var/www/gbCGI
4.   $ sudo xed /etc/apache2/apache2.conf

Add following into above file
# --------- added by UZI -------------------------
ServerName localhost
ScriptAlias /gbCGI/ /var/www/gbCGI/
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py .gambas

        <Directory "/var/www/gbCGI">
            AllowOverride None
      Options +Indexes
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
        </Directory>
# ------------------------------------------------


Gambas Test Project
    • Create a sample test Gambas Web project .. it could something as simple as print "Hi there"
    • Check its functioning within local webserver by compiling and running it
    • Copy the myGbWebApp.gambas file into /gbGI directoiry (as above at step 3 )
    • Give it execute permissions chmod +x myGbWebApp.gambas
    • It should show now in broswer http://localhost/gbCGI/myGbWebApp.gambas
    • Even if myGbWebApp.gambas is renamed to a.cgi – it works !! works even without any extension .. perhaps the #! is embedded within Gambas executable file

5.  Try checking the hosted files in browser, it may spit out text as it is i.e the CGI module did not have a symbolic link there: The CGI module was not enabled by default.
6.  $ cd /etc/apache2/mods-enabled
7.  $ sudo ln -s ../mods-available/cgi.load
8.  Reload Apache configuration  $ sudo service apache2 reload

Now you are ready to host big web applications too !!