VPS i .NET za sirotinju
Svaki pravi web developer bi sigurno htio imati jedan web server! Cijeli server, sa pristupom cijelom operativnom sustavu, da si moze naštimavati sve opcije, optimizirati, podešavati i tjunirati svaki HTTP paket koji odlazi. Kod shared hosting paketa se dobije samo FTP pristup i osnovna funkcionalnost putem nekog Control Panela, ali dalje od tih opcija se ne može. Nista od štimanja ISAPI filtera, mapiranja ekstenzija, dodavanja neograničeno domena i slicnih stvarčica. Za takve stvari ipak treba imati telnet, ssh ili remote desktop pristup, i dozvole podešavanja. To imaju Dedicated i VPS server, od kojih je ovaj prvi pre skup (cca od 50$/mj) i odmah ću ga odbaciti, ali ovaj drugi, VPS server, se ipak može pronaći za skromnije novce. Cijena uglavnom ovisi o dostupnom RAMu i procesorskoj snazi.
Pošto se ovdje radi o pokretanju .NET web aplikacija, u obzir prirodno dolaze samo Windows serveri, ali zahvaljujući Novellu i Miguel de Icazi, aplilacije možemo pokretati i na Linuxu uz pomnoć Mono projekta.
Ako spojimo VPS Linux hosting i Mono framework, znači da već za 9,99$ mjesečno imamo svoj vlastiti server s kojim možemo raditi što god nas je volja! Već neko vrijeme planiram zakupiti jedan takav VPS server i poigrati se. Neki da sam konačno našao vremena, volje, i 10$ viška i zakupio mjesec dana VPSa na jednom od hosting providera. Kroz par postova ću probati opisati postupak konfiguriranja servera, u cilju pokretanja ASP.NET stranica, točnije ovog bloga, i za moje privatne (fuš) potrebe, N2CMSa. Još nisam siguran dali će N2CMS raditi, ali BlogEngine.NET provjereno radi na Mono frameworku.[more]
Krenimo redom; prvo je potrebno izabrati hosting providera sa VPS uslugom. Neki koje sam ja pronašao guglajući su: Fsckvps, IntoVPS, EnjojVPS. Sve su to UNMANAGED serveri, što znači da se dobije ssh pristup, i to je to, snalazi se sam. Uvijek sam mislio da to uključuje kompajliranje kernela i piskaranje gomila konfiguracijskih fajlova, ali nije tako; kernel dođe kompajliran, a konfiguracijske skripte se moraju samo malo piskarati ;) Znači čaša je na pola puna, a ne prazna!
Kada se zakupi VPS, dobije se SSH pristup shellu, kojem pristupamo pomoći nekog ssh/telnet programa poput PuTTy. Također, gotovo svi hosting provideri daju mogučnost odabira Linux distribucije, i ja sam za ovu priliku izabrao Ubuntu (iako sam prvo uzeo SuSE, pošto je njegov proizvođač Novell, a on je napravio i Mono, ali na njemu mi ništa nije htjelo proraditi, pa sam se prebacio na Ubuntu). Većina providera ima Ubuntu 9.04 Jaunty.
Nakon što smo se spojili na naš novi server, ostaje nam za napraviti sljedeće:
- refreshati repozitorije: na Linuxima postoji pojam paketa i repozotorija. To je centralizirano mjesto za instalaciju aplikacija. Takvog čega nema na Windowsima, a radi se o spisku dostupnih aplikacija (paketa) koji je sadržan u jednom ili više repozitora. Korisnik samo mora odabrati željenu aplikaciju (paket), a aplikacijski instalacijski program (apt-get, zypper, yast, …) će ju instalirati, uključujući zavisne biblioteke i programe (nešto tipa DLLova)
Naredba za update repozitorija: apt-get update
Naredba za instalaciju aplikacija: apt-get install NazivAplikacije
Pregled liste dostupnih aplikacija: apt-cache search [NazivApp*] - pošto nisam vičan radu u Bashu preko SSH (ala command prompt na win), ja sam instalirao i sljedeće: Gnome desktop grafično sučelje, VNC server za pristup (ala Remote Desktop)
Cijeli postupak je objašnjen ovdje, i meni osobno je prošao bez ikakvih problema:
http://markus.revti.com/2009/08/installing-vnc-remote-desktop-on-ubuntu-linux-vps/
uz jednu napomenu; ubuntu dolazi sa VI editorom (ala DOSov Edit, ili Win Notepad), koji je meni jako zbunjujuć za raditi, pa sam ja instalirao Nano editor:
sudo apt-get install nano (ovaj sudo označava pokretanje programa sa root pravima) - instalacija Mono frameworka
- instalacija Apache web poslužitelja
- instalacija XSP (mono web server, služi Apachu za izvršavanje ASP.NET aplikacija). Konfiguracija mod_mono, da Apache koristi XSP za ASP.NET
- testitranje sa više domena i poddomena, N2CMS, BlogEngine.net,…
- instaliranje i podešavanje Firewalla
Za sada sam došao do koraka 3, a daljnji napredak ću opisati u sljedećim postovima. Trenutno imam remote desktop pristup serveru, i u instalacijom programu Gnomea (izbornik System/Administration/Synaptic Package Manager) se nalazi Mono framework 2.0. Zadnja verzija Mono frameworka je 2.4 (podržava C# 3.0, MVC, bez LINQ2SQL), i potrebno je dodati ovaj repozitorij:
deb http://ppa.launchpad.net/directhex/monoxide/ubuntu jaunty main (u Synapticu, izbornik Settings/Repositories/Third party sw). Time smo dobili mogučnost instalacije Mono 2.4 frameworka. Putem Synaptica možemo instalirati i Monodevelop, IDE alat za razvoj .NET aplikacija.
Jedna sitnica, ako vam layout tastature ne štima, odnosno pritisnete D a on ispiše F, onda pogledajte ove upute: https://bugs.launchpad.net/ubuntu/+source/vino/+bug/112955/comments/55
Nastavak slijedi brzo…