Correr .cgi Localmente
Olá! :D
Esta página é um tutorial de como correr os ficheiros .cgi
no vosso computador, de forma a conseguirem fazer debug e serem mais eficientes a fazer a aplicação web de BD.
Servidor Local
Precisam de um servidor local. Vamos usar o que vem com o Python.
Para isso, corram este código numa shell de Linux (se usarem Windows, podem fazer por WSL):
python3 -m http.server --cgi 8000
Ao fazer isso, o output esperado é algo do género:
Este código tem que ficar a correr enquanto querem ter acesso ao script .cgi
, ou seja, vão ter de deixar a “janela aberta”.
Se escreverem localhost:8000
no browser, vão ver algo do género:
No meu caso, o localhost:8000
está a apresentar a minha pasta de Ambiente de Trabalho.
Pasta cgi-bin
Agora, precisam de criar um diretório chamado cgi-bin
na diretoria que o localhost:8000
está a mostrar:
mkdir cgi-bin
Criar um symlink
Pode acontecer que não nos dê jeito colocar os ficheiros dentro desta pasta ou preferir que a pasta tenha outro nome. Alternativamente a criar a pasta acima, podemos criar um symlink, como se fosse um "atalho":
ln -s ./web cgi-bin # ./web é o caminho para a pasta original
Obviamente, pode-se substituir ./web
pelo caminho adequado para a pasta onde se encontram os scripts .cgi
.
Este diretório é reconhecido pelo código que correram no 1º passo para correr os ficheiros que estão lá dentro.
Coloquem neste diretório o ficheiro .cgi
que querem que seja corrido, juntamente com o diretório templates
contendo os ficheiros .html
que querem que corra (podem colocar o ficheiro do lab9 que serve como template e vão mudando as cenas):
Instalar as Dependências
Têm que ter flask
, psycopg2
e, opcionalmente, postgresql
instalados:
sudo apt install python3-psycopg2 python3-flask postgresql
Alternativamente, instalar pelo pip
pip3 install Flask psycopg2
Também tive que fazer isto:
pip3 install --upgrade wheel
pip3 install testresources
pip3 install --upgrade setuptools
sudo apt-get install libpq-dev
Aceder ao Ficheiro
Finalmente, basta aceder ao link http://localhost:8000/cgi-bin/test.cgi/
para que o vosso código flask seja corrido!