» »

Python - pošlji aplikacijo na server

Python - pošlji aplikacijo na server

LimitaL ::

Pozdravljeni,

moje vprašanje je naslednje. Sem začetnica v postavljanju spletnih aplikacij. S Pythonom znam narediti delujočo aplikacijo na disku in Tkinterjem za vmesnik, prav tako si znam za test postaviti localhost, tako da dobim aplikacijo in jo potem urejam v brskalniku.

Znam jo poslati na google app engine. Sedaj bi pa želela to narediti na Okeanos(Storitev, ki jo ponuja Arnes s prijavo aai), kjer lahko naredim poljubno VM (Debian, windows, Ubuntu...).

Kateri OS uporabim za VM in kako se potem lotiti, je kak dober tutorial za začetnike? Verjetno bo treba urediti tudi app.yaml, če sploh pride v poštev, ali je potrebno potem to čisto na novo napisati?

Zadovoljna bi bila že, če bi mi zaenkrat uspelo s "hello world".

Upam, da ne podvajam teme, a res nisem našla oz. niti ne vem, kaj iskati. Hvala.

HotBurek ::

Glede te aplikacije, če lahko malo več napišeš, kako teče. Vsaj meni ni čisto jasno, ali želiš poganjati klasično "okensko" aplikacijo na tem VM-u, ali želiš aplikacijo poganjat preko web strežnika in do nje dostopat do browserja...

Kar set tiče izbire OS-a; Debina über alles. Tu lahko spišem korake in ukaze za različne sistemske taske...


Skratka, ali želiš aplikacijo kot web aplikacijo, ali kot "okenska" aplikacija, do katere dostopaš remote do namizja in jo tam poženeš.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

LimitaL ::

Želim web aplikacijo. Nekakšno evidenco dela. Več uporabnikov bi ločeno izpolnilo obrazec o opravljenem delu, potem bo pa program naredil skupno evidenco vsakega posameznika in bomo imeli tako ločen pregled nad tem kot tudi skupen. To je max 100 ljudi, tako da nekega prometa ni za pričakovati. Sedaj večino stvari delamo papir, excel...

Pa potem še eno aplikacijo, tu bi pa naredila nekakšen imenik emailov. Ta je pa sedaj kar kot namizni program, pa bi ga tudi želela narediti spletnega.

Samo, ker sem še na začetku, bi najprej želela testno vzpostaviti te zadeve in eno preprosto zadevo izpeljati- tipa "Hello world" oz. da tudi eno vnosno polje spoznam. Najprej da se naučim delati s tem, potem pa naprej...
Vzpostaviti bom morala tudi bazo, sedaj se spogledujem s sqlite.

Zavedam se, da sem na tem področju začetnik, vendar se ponavadi "pregrizem skozi" potem s raznimi pomočmi do želenega rezultata.

Potem bom raziskovala Debian, bi prosila za sistemske korake in ukaze za začetek.
Hvala za pomoč.

Goegoff ::

Glede na to, da pišeš v pythonu in bi rada spletno aplikacijo, si mogoče poglej Django?
Dokumentacijo imajo eno najboljših, kar sem jih kdaj zasledil (vključuje tudi precej izčrpen tutorial).
Komuniciranje z bazami ima že vgrajeno (mislim, da je privzeta baza celo qslite), zgenerira pa tudi "admin page", kjer lahko prko browserja brskaš in upravljaš z bazo.

HotBurek ::

Ok, tole bo malo daljši projektič, zato bo lažje, da se gre po korakih.

Prvo potrebuješ VM. Izber Debian. :P

Tule so navodila: https://okeanos.grnet.gr/support/user-g...


Kater client OS uporabljaš?

Če slučajno Winblows, potem potrebuješ še SSH klienta. Eden izmed njih je Putty. Tole je x64 klient:
(shrani na desktop)
https://the.earth.li/~sgtatham/putty/la...

Pri kreaciji VM-a se lahko nastavijo tudi SSH Key:
https://okeanos.grnet.gr/support/user-g...

Jst tega načeloma nimam, ampak samo user/pass. Tako, da če se da kreirat VM brez SSH Key, pol kr brez.

Za prijavo v VM uporabiš SSH klienta in navodila:
https://okeanos.grnet.gr/support/user-g...


Ko se ti bo ratal konektat preko SSH-ja v Debian VM, sporoči, pa gremo naprej. Če ti do tja kej zašteka, pa napiši.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

LimitaL ::

O, super. Je šlo, kot user sem sedaj preko putty povezana.
Zelo jasna navodila. Hvala.

HotBurek ::

Ok, gremo naprej.


Prvo se naj preveri, če je trenutni user member skupine "root". Ukaz:

groups "tvojusername"
(pa brez narekovajev)

Če je (99% je), potem se lahko dela spremembe naprej.


Nano je eden izmed tool-ov za pregledovanje in editiranje text fajlov.

Primer, da pogledaš userje:

nano /etc/passwd
(Navadi se uporabljat tipko TAB. Se pravi, napišeš nano /etc/passwd ter 2x hitro pritisneš tipko TAB. Ta ti bo zlistala vse, kar je poimenovano "passwd" v /etc folderju. Če je samo en fajl (ali folder), se ti bo dodal space ob koncu poti. Neke vrste autocomplete. Npr. napišeš nano /et, pritisneš TAB, dopišeš passw, pritisneš TAB, itn....
Iz programa NANO greš ven z ukazom Ctrl+x.)

Primer, da pogledaš LAN nastavitve:

nano /etc/network/interfaces

Primer, da pogledaš DNS serverje, ki jih strežnik uporablja:

nano /etc/resolv.conf


Potem, prvo da se vidi verzija OSa. Potrebno je namestit lsb release (ukaz: apt-get install lsb-release), ter pognat ukaz:

lsb_release -a

Kaj izpiše? Verzija 9.x, mogoče celo 10.


Naslednja stvar, ki je gut za pogledat, je apt. S to rečjo se nastavi "pointerje", od koder strežnik (in uporabnik) dobiva updejte, dodatne pakete itn. Pomakneš se v direktori (cd /etc/apt/), ter odpreš sources.list (nano sources.list). (Vsebino direktorija lahko zlistaš z ls -l ali ls -rtl)

Tu notri so linki. Možno, da so dali svoje, možno da so default. Moj config je sledeč:

deb http://ftp.si.debian.org/debian/ buster main contrib non-free
deb-src http://ftp.si.debian.org/debian/ buster main contrib non-free

deb http://security.debian.org/ buster/updates main contrib non-free
deb-src http://security.debian.org/ buster/updates main contrib non-free

deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main

deb http://ftp.si.debian.org/debian/ buster-updates main contrib non-free
deb-src http://ftp.si.debian.org/debian/ buster-updates main contrib non-free


Tisto, kar ima spredaj #, so (v tem primeru) komentarji in se ne upoštevajo. Če teh ni, jih lahko dodaš.

Buster je verzija 10, Stretch je 9, Jessie je 8.

Ko imaš to zloženo je dobro, da se strežnik posodobi na najnovejšo verzijo.

Ukazi:

apt-get update
apt-get upgrade
apt-get dist-upgrade
apt autoremove


Ko je vse updejtano, sta ukaza:

lsb_release -a
uname -a

Kaj pokažeta/izpišeta.


Pol naprej pa na firewall....
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

secops ::

Kdaj bo pa migracija na centos in docker :D

LimitaL ::

Imam težavo. Po moje nimam root dostopa, oz. ne vem gesla.

Pri izvedbi groups user, kako vem, da imam te pravice.
Napiše:
user : user cdrom floppy audio dip video plugdev netdev scanner

Pri izvedbi nano pa prvo vrstico tole in še potem druge naprej.
root:x:0:0:root:/root:/bin/bash

Pri prijavi na strežnik sem dobila le eno geslo, ko se logiram je po privzetem uporabnik: user.
Če se poskusim z root prijaviti, pa mi ne dovoli dostopa s tem geslom. Je kako generično geslo?

napisala sem sudo -s pa je zahtevalo geslo za root, če to kaj pove o mojih pravicah.

nano kaže, da dela, zatakne se pri namestitvi:
apt-get install lsb-release
Napiše:
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Hvala.

HotBurek ::

To je prva reč, katero je treba uredit.

Dokumentacija:
https://okeanos.grnet.gr/support/faq/cy...

Možno, da se lahko namesto z user prijaviš tudi z root, in je geslo isto.

Sicer pa, ko si prijvaljena kot user, se z ukazom su dvigneš na root. Poizkusi s tem ukazom in istim geslom, kot je za uporabnika user.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

LimitaL ::

Tako, je šlo. Sistem je posodobljen.

HotBurek ::

Ok. Katero verzijo ti pa pokaže, da je?

Naslednji korak je namestitev najnovejše verzije nginx-a 1.17.4. Navodila so tule:
https://nginx.org/en/linux_packages.htm...
(Če se prijaviš kot root, ne potrebuješ ukaza sudo)
(Jst namesto apt uporabljam apt-get ...)
(Pri inštalaciji si lahko poleg curl namestiš še wget. Gre za tool, ki omogoča delat HTTP GET requeste. Jst sm bolj navajen na wget...)

Nginx je d best web strežnik.

Ko bo nginx nameščen, v terminalu regled:

nginx -v
(Ta mora vrnit verzijo)

netstat -anotlp
netstat -anotlp | grep nginx
(Ta ukaz bo zlistal odprte porte, med njimi bi moral biti tudi nginx na portu 80)

service nginx status
service nginx stop
service nginx start
service nginx restart
(To so ukazi za delo s servisom, v tem primeru nginx)

systemctl enable nginx
(Ukaz, da se bo servis nginx samodejno zagnal po vsakem restartu srežnika)


Config file za sam nginx se imenuje nginx.conf, ki se nahaja v direktoriju /etc/nginx/.

Potem so pa tu še "strani". Načeloma lahko imaš na enem IPv4 naslovu več spletnih strani. In za vsako stran lahko narediš svoj config file. Le-ti se po defaltu nahajajo v /etc/nginx/conf.d/ direktoriju. Tu notri bo en fajl poimenovan default.conf.

Ko boš do tu, povej.


Pa še enkaj. Ali imaš kakšno svojo domeno, ki ti bo kazala na ta sajt? Npr. mojjobprojek.si...

Sicer bo težka za postavt HTTPS. Šlo sicer bi. Potrebno je pogledat v navodila, kater DNS rekord kaže na tvoj VM. Slika spodaj iz navodil, tisto kar je desno od @.

root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

LimitaL ::

Kaže Debian 10 (buster).

Zaenkrat ne bom dala na domeno, ker bom postavila testno in se bo uporabljalo samo iz točno določene povezave. Drugače pa bom potem verjetno prestavila. Dokler testiram verjetno ni tako pomembno, da je https?

Hvala. Javim, ko mi uspe drugi del. Navodila so res obsežna, upam, da bodo še komu koristili napotki. Res hvala.

LimitaL ::

Kaže, da se je nekje zalomilo.
Ko vpišem komando: nginx -v
Mi napiše:
nginx: command not found

Amapk, ko sem šla še enkrat čez orake, mi je napisalo:
nginx is already the newest version (1.16.1-1~buster).

Bila sem v dilemi, katero od teh dveh pognati:

echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

echo "deb http://nginx.org/packages/mainline/debi... `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Potem sem prvo. Ampak mislim, da sem tu z napako nekaj, potem pa sem šla po korakih naprej.
Vse je nekaj delalo, dokler ni bilo treba napisati: nginx -v,
potem pa tema :).

A grem še vse enkrat od začetka, ali kako pridem na neko ustrezno točko nadaljevanja.

HotBurek ::

Ok.

Z nano odpri file, in poglej, kaj je notri.

nano /etc/apt/sources.list.d/nginx.list

V mojem primeru:

deb http://nginx.org/packages/debian/ buster nginx
deb-src http://nginx.org/packages/debian/ buster nginx

deb http://nginx.org/packages/mainline/debi... buster nginx
deb-src http://nginx.org/packages/mainline/debi... buster nginx


Ter potem še enkrat:

apt-get update
apt-get upgrade
(Tu bi moralo najti novejši nginx)

Potem še, kaj ti izpše ukaz:

echo $PATH

V mojem primeru:

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin

Možno, da ni dodanega /usr/sbin...

Tale ukaz bi znal delat:

/usr/sbin/nginx -v

Pa če poženeš spodnja dva ukaza, se bi nginx process moral najti:

netstat -anotlp
netstat -anotlp | grep nginx
(S tem zlistaš procese, ki imajo odprte TCP porte. Nginx po default inštalaciji posluša na portu 80.)
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

LimitaL ::

Z nano dodala poti, potem posodobila.

Z user/sbin/nginx -v je šlo:javi verzijo
nginx version: nginx/1.16.1

netstat -anotlp ---> mi vrne nekaj številk v tabeli:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
Za eno piše, da je ESTABLISHED

netstat -anotlp | grep nginx ------> pa ni nič, to vse vpišem ko ukaz, ali ta ravna črta kaj druga pomeni?

HotBurek ::

Kaj pa pokaže ukaz:

service nginx status

...

Bom videl, če bo ratalo uredit screen sharing, ker tam bi šlo 100x hitrej, pa še razložit se da stvari... We will see.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

LimitaL ::

Pravi:
service: command not found
Sem dala potem tudi:
user/sbin/service nginx status
Pa isto.

Lahko dam v ZS IP in Geslo strežnika, saj ga tako delam samo testno, pravega bom poskusila potem še enkrat postaviti, čeprav upam, da bo potem manj kompleksno oz. bom bolj vedela korake.

HotBurek ::

Ok, no daj, pa ti naredim cel testrun po korakih.

Mogoče najbolje, če lahko pobrišeš trenutni VM, narediš novega, potestiraš gesla do root dostopa, potem pa pošlješ podatke.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

jype ::

Priporočam vzajemni tmux in zvočno povezavo. Tako lahko tipkaš in sproti razlagaš, kaj počneš.

HotBurek ::

Sem naredil testrun s tmate.

apt-get install tmate

Potem pa je potrebno na server in client (za ssh dostop) strani zgenerirat key-e:

ssh-keyegen

Ukaz zgenerira id_rsa in id_rsa.pub v folderju ~/.ssh/.

Potem na strežniku poženemo tmate, ki odpre session. Potrebno je vpisat geslo, ki smo ga vnesli pri ukazu za generiranje key-ev.

Potem ukaz tmate show-messages, ki izpiše možnosti za povezavo (SSH in HTTPS, ter read-only in read-write).


Levo zgoraj je server, levo spodaj je SSH klient, desno pa HTTPS klient.

root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Postavitev mySQL

Oddelek: Programiranje
92085 (1663) M01O
»

Debian in nvidia

Oddelek: Operacijski sistemi
222001 (1726) Icematxyz
»

Debian Gnu/Linux kot workstation (strani: 1 2 3 437 38 39 40 )

Oddelek: Operacijski sistemi
1960117197 (32871) RedDrake
»

APT mi dela problem

Oddelek: Operacijski sistemi
111249 (1053) Bug
»

X window na Debianu mi ne dela

Oddelek: Operacijski sistemi
91272 (1191) roscha

Več podobnih tem