Wątek przeniesiony 2022-10-24 20:40 z Nietuzinkowe tematy przez somekind.

Jak wrzucić napisany program na serwer?

0

Cześć,
napisałem swój pierwszy w życiu, banalny programik (wszystko w nim robi się w konsoli, proste operacje na tekstach / liczbach). Mam wykupioną domenę oraz serwer, Jak umieścić program na serwerze, żeby każdy kto otrzyma link, miał do niego dostęp?

Program został napisany w języku Go. Domyślam się, że samo kopiuj-wklej pliku tekstowego nie wystarczy. Czy muszę na moim serwerze zainstalować kompilator Go, czy coś podobnego? Jestem totalnie zielony w tym temacie.

1

Jaki serwer masz wykupiony? Potrzebujesz minimum vps, poza tym, ta apka wtedy będzie ci działaś tylko z konsoli a nie przez www. Żeby chodziła przez www musisz postawić serwer http.

1

Wyjaśnij może, jak to sobie wyobrażasz. Chcesz żeby ktoś kto wejdzie na stronę mógł użyć Twojego programu bezpośrednio w przeglądarce? Czy może, żeby mógł sobie go pobrać i uruchomić bezpośrednio na komputerze?

0

@sayWHAT: - te dwa rozwiązania o których pisał @enedil dzieli przepaść technologiczna. Jeśli chcesz, żeby można było Twój program tylko pobrać to musisz skopiować (najlepiej spakowany) program do katalogu /var/www/html na Twoim VPSie, albo do jakiegoś podkatalogu. Ja używam do tego narzędzia, które nazywa się scp. Sprawdź w terminalu czy je masz - składnia jest taka:

scp moj_program.zip [email protected]_domena.com:/var/www/html

Program scp zapyta Cię o hasło, musisz podać hasło ssh (to do logowania na serwerze). Po tej operacji każdy będzie mógł ściągnąć Twój zip z linku:

http://www.moja_domena.com:/moj_program.zip

Żeby to zadziałało musi na Twoim VPSie działać jakiś serwer http, ja mam Apacza, on udostępnia na ogół pliki właśnie z /var/www/html. Jeżeli chcesz możesz zrobić sobie stronkę (dokument HTML, na przykład index.html) i też ją wepchnąć na serwer. Wtedy będziesz mógł wysyłać ludziom adres strony, na niej powinien być link ze ścieżką (w href) do tego pliku (względną!).

To pierwsze rozwiązanie jest ciekawsze ale trudniejsze. Ostatnio się tym bawiłem, kolega z forum poradził mi, żebym sobie zrobił sandbox. Zrobiłem dla swojego własnego języka. Musisz napisać program (albo ktoś musi go napisać dla Ciebie), tzw serwer http, który zna ten język, czyli Go, przy czym to powinna być wersja sandboxowa, to bardzo ważne, żeby Ci się nikt nie włamał na VPSa. Ten program nie musi być napisany w Go - tylko musi potrafić dla zadanego tekstu sparsować go i wykonać. Serwery http mogą być dość prostymi programami, możesz też skorzystać z jakiejś biblioteki do tego. Pewnie można byłoby zrobić też tak, że Twój serwer http działa sobie sam, ale nie umie Go, i komunikuje się z jakimś innym serwerem, który nie umie http, ale umie Go.

0

Mam wykupiony serwer, na którym m.in. stoi służbowa strona www.
Chciałbym móc mieć dostęp do mojej aplikacji poprzez obojętnie jaką przeglądarkę. Po prostu chciałbym stworzyć /podstronę ,na której byłaby emulacja wiersza poleceń (mój program działa właśnie w wierszu poleceń, lokalnie na kompie).
Na HTML się nie znam, informatyk mi stawial stronę

2

To tego co chcesz zrobić nie zrobisz tak jak chcesz.

2

No to wykonałeś może ze 20% potrzebnej pracy, a pewnie i mniej — teraz potrzebujesz właśnie, w wybranej przez siebie technologii, stworzyć tę emulację wiersza poleceń.

Jeśli program ma być dostępny jedynie dla grupki bardzo zaufanych ludzi, możesz rozważyć przyznanie im dostępu przez SSH, żeby mogli sobie uruchomić ten program na serwerze.

Albo przerobić program, żeby prezentował jakieś publiczne API dostępne przez sieć.

3
Althorion napisał(a):

No to wykonałeś może ze 20% potrzebnej pracy, a pewnie i mniej

Sądzę, ze nie 20% a 5%

sayWHAT napisał(a):

Cześć,
napisałem swój pierwszy w życiu, banalny programik

Duzo nauki przed tobą.

sayWHAT napisał(a):

Program został napisany w języku Go. Domyślam się, że samo kopiuj-wklej pliku tekstowego nie wystarczy. Czy muszę na moim serwerze zainstalować kompilator Go, czy coś podobnego? Jestem totalnie zielony w tym temacie.

Kompilator ... żebyż tylko ... zupełnie przepisać program.
Do uruchamiania nie zintegrowanych programów w czasach dinozaurowych był standard CGI, umożliwiało to że commnd liniowy program (w dowolnym języku, byle "chodził") realizujący precyzyjne wymogi interfejsu CGI, mógł się komunikowac co do danych ze "stronką"
To był "jeden strzał", jedno wykonanie programu na jeden request, więc wielopoziomowe dialogi to nie.
Czy współczesne hostingi ciągle maja CGI ... coraz mniej, może gdzieś znajdziesz. Niewydajne, nie w pełni bezpieczne dla serwera

sayWHAT napisał(a):

... ,na której byłaby emulacja wiersza poleceń (mój program działa właśnie w wierszu poleceń, lokalnie na kompie).

Na HTML się nie znam, informatyk mi stawial stronę

Emulacja terminala to bardzo podnosi poziom trudności, przy poziomie beginner uznajmy za niemożliwe
Cóż, napisałes swój pierwszy program, zupełnie nie zastanawiajac się nad założeniami, więc już z guzem na głowie wiesz jak nie. Wiedza cenna.
Co więcej, nawet gdyby to twoi potencjalni użytkownicy będą mieć go w .u.ie, to nikogo oprócz programistów nie rajcuje, chca "normalnego" weba

Teraz pora uczyć się dalej, być może (a wręcz prawie na pewno) języka o prostszym hostowaniu na webie i dostosowanej bibliotece. PHP / Python. Pehapa raczej będziesz miał, nawet na bieda-hostingu.

Nie przejmuj sie, w 99% pierwszy język nie jest tym w którym się później pracuje.

0

Dzięki wszystkim za odpowiedzi. Kod napisałem do celów bardzo trywialnych, chciałem po prostu, żeby kumpel też mógł korzystać z niego np. przy użyciu telefonu. To znaczy przede wszystkim chciałem się czegos nauczyć, wrzucenie go na stronę to tak dodatkowo. Myślałem, że w przypadku czegoś tak prostego, gdzie program jedynie mieli pewne dane w środku a następnie je wypluwa, kwestia wrzucenia go na stronę nie będzie trudna. Skoro to kupa roboty, to szkoda zachodu i można zamykać temat :)

0

Skompiluj sobie do webassembly ten program i z poziomu javascript go wywołaj, z parametrem z jakiegoś inputa, dodaj do tego addEventListener z keypressem pod enter, a wypluty wynik gdzieś na stronie wyświetlisz i jak się trochę pobawisz to jakiś tam interface zrobisz do tego.

2
sayWHAT napisał(a):

Dzięki wszystkim za odpowiedzi. Kod napisałem do celów bardzo trywialnych, chciałem po prostu, żeby kumpel też mógł korzystać z niego np. przy użyciu telefonu. To znaczy przede wszystkim chciałem się czegos nauczyć, wrzucenie go na stronę to tak dodatkowo. Myślałem, że w przypadku czegoś tak prostego, gdzie program jedynie mieli pewne dane w środku a następnie je wypluwa, kwestia wrzucenia go na stronę nie będzie trudna. Skoro to kupa roboty, to szkoda zachodu i można zamykać temat :)

Tak to jest, wierzch, frontend jest zupełnie inny na różne wyjścia, i to znaczny problem w projektach. Teraz już wiesz.

W dodatku w jezykach tworzących kod maszynowy (Go,C,C++,Pascal itd) jest temat kompilacji na docelową maszynę (Intelowskie, Arm, inne) i system operacyjny - nie ma tego w językach bardziej przenośnych (PHP, Python, Java, Ruby itd), choć i tam można polec, np używając ścieżek do plików Win/Linux

1 użytkowników online, w tym zalogowanych: 0, gości: 1