Forum > Lazarus e il web

Semplice CGI

(1/2) > >>

slapshot:
Ciao a tutti, per iniziare a capire la programmazione web con Lazarus/FPC sto iniziando dai loro wiki, ovvero da qui: https://wiki.freepascal.org/fcl-web#What_is_fpWeb . Attualmente, sia server che client sono Linux Mint o Ubuntu e per configurare il mio server Apache2 ho seguito questa guida: https://noviello.it/come-avviare-cgi-scripts-in-apache2-su-ubuntu-16-04-17-04/. Infatti, con lo script pyton riportato nella guida non ho problemi e viene eseguito correttamente.

Tuttavia, se nella directory cgi-bin inserisco il progetto Lazarus creato come CGI Application non viene eseguito. Il log degli errori di apache non lo individua come tale mentre il log normale individua una richiesta GET a cui però viene dato seguito nella pagina del browser con questo errore. Non riesco a capire se possa dipendere da Apache oppure da qualcosa del progetto, anche se non credo perché è identico all'esempio del wiki. Grazie.


--- Codice: ---
cgiproject1: ERROR
The application encountered the following error:
Error: Not found
Stack trace:
$00000000004990C0
$000000000049866F

--- Termina codice ---

xinyiman:
Ciao slapshot. E' sempre cosa buona e giusta allegare un esempio che riproponga l'errore in modo da poterti aiutare senza andare a caso.

Oltrtutto dovresti dirci un paio di cosette:

la versione di apache che usi, il sistema operativo e la versione di lazarus/fpc che hai usato.

slapshot:
Hai ragione, più tardi provo ad allegare il codice. Ho continuato a fare dei test, comunque. Di seguito alcuni dati che possono aiutare.

Server remoto:
16.04.6 Ubuntu Linux LTS.
Apache: Server version: Apache/2.4.18

Server locale su Linux Mint 19:
Apache come da repository (verifico più tardi)
fpc: 3.0.4 - Lazarus 2.1.0 versione 65.xxx (snapshot svn, non ricordo esattamente, potrò essere più preciso in seguito.

Localmente sono riuscito a far andare il CGI semplicemente settando il vecchio meccanismo di routing (anche se non so cosa significhi):
https://wiki.freepascal.org/fpWeb_Tutorial#Routing. Ho provato anche copiando via scp l'eseguibile sul server di produzione ma ho comunque lo stesso problema.

Grazie

slapshot:
Sul pc Mint in locale: apache2 v. 2.4.29
Lazarus 2.1.0: svn co 62568.

Codice lazarus:, unico evento nell'unico WebModule:


--- Codice: ---
procedure TFPWebModule1.DataModuleRequest(Sender: TObject; ARequest: TRequest;
  AResponse: TResponse; var Handled: Boolean);
begin
  AResponse.ContentType := 'text/html;charset=utf-8';
//  AResponse.Contents.LoadFromFile('codice.html');
  AResponse.Content := '<p>CIAO</p>';

//  AResponse.Contents.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'codice.html');
  Handled := True;

end;                                                             
--- Termina codice ---

xinyiman:

--- Citazione da: slapshot - Gennaio 20, 2020, 12:09:51 pm ---Hai ragione, più tardi provo ad allegare il codice. Ho continuato a fare dei test, comunque. Di seguito alcuni dati che possono aiutare.

Server remoto:
16.04.6 Ubuntu Linux LTS.
Apache: Server version: Apache/2.4.18

Server locale su Linux Mint 19:
Apache come da repository (verifico più tardi)
fpc: 3.0.4 - Lazarus 2.1.0 versione 65.xxx (snapshot svn, non ricordo esattamente, potrò essere più preciso in seguito.

Localmente sono riuscito a far andare il CGI semplicemente settando il vecchio meccanismo di routing (anche se non so cosa significhi):
https://wiki.freepascal.org/fpWeb_Tutorial#Routing. Ho provato anche copiando via scp l'eseguibile sul server di produzione ma ho comunque lo stesso problema.

Grazie

--- Termina citazione ---
Bhe ma allora il problema non è nel tuo programma. Probabilmente l'eseguibile compilato su mint non gira su ubuntu. Quindi ti consiglio di creare una macchina virtuale con ubuntu, compili li il progetto e poi lo trasferisci. Assicurati che se il server è a 64 bit usi una verisone di lazarus a 64 bit.

Navigazione

[0] Indice dei post

[#] Pagina successiva

Vai alla versione completa