Kako napraviti svoj web hosting server na DigitalOcean?

U ovom članku ću objasniti kako na Digital Ocean podesiti super brzi server optimiziran za web hosting i onda na njega postaviti WordPress​ web stranicu. Ako nećete koristiti WordPress ovaj vodič će vam svejedno biti koristan, jednostavno na kraju umjesto WordPressa instalirajte CMS koji je vaš izbor.

Za ovako nešto bi inače trebalo malo više tehničkog znanja, ali prateći ovaj vodič bilo tko to može učiniti. Jednom kad iskusite brzinu i stabilnost koju Digital Ocean nudi, nećete ni pomisliti vratit se na shared hosting.


Uvod: Potrebni alati i odgovori na neka pitanja

  • DIGITAL OCEAN – Ako još nemate Digital Ocean račun, registrirajte se ovdje (besplatno). Odmah će te dobit 10$ kredita na raspolaganje.
  • SERVER PILOT – Ovo je servis koji će podesiti server i brinuti se za automatske sigurnosne nadogradnje na njemu. Također se koristiti za dodavanje novih web stranica na server. Ako se registrirate preko ovog linka dobit će te 10$ kredita na raspolaganje (servis je besplatan, ali te kredite možete iskoristiti za napredniji plan koji nudi više opcija).
  • PuTTY – Besplatan alat koji se koristiti za za spajanje na server command shell.
  • WinSCP – Besplatan alat za prijenos datoteka na server (zamjena za File Manager iz cPanela).
Zašto odabrati ili preći na DigitalOcean?

Jer se brzina koju imate na shared hostingu, a pogotovo na onim koji se najčešće koriste (Bluehost, Hostgator...), ne može uspoređivati s brzinom i stabilnošću koju će te imati ovdje.

Cijena je također jako pristupačna i čak jeftinija nego kod mnogih shared hostinga.

Server možete koristiti za bilo što, ne samo za web stranice. 

Koliko će me to koštati?

Cijena najjeftinijeg VPS servera je 5$/mjesec i jedan takav može biti dovoljan i za sve vaše web stranice (ovisi koliko prometa imate).

Ako se registrirate preko bilo kojeg linka iz ovog vodiča će te odmah dobiti 10$ kredita na raspolaganje – dakle prva dva mjeseca za jedan server su praktički besplatna.

Odlično je i što se plaća točno onoliko koliko se potroši (mjeri se na sat), a ne kao kod shared hostinga gdje obično treba platit za barem godinu dana unaprijed kako bi ste dobili dobru cijenu.

Kako može biti tako jeftino, a tako kvalitetno?

Zato što serveri nisu managed ​što znači da Digital Ocean ne pruža nikakvu pomoć oko njihove administracije i podešavanja. Za to je potrebno dosta stručnog znanja, no srećom postoji odličan i besplatan servis koji je napravljen upravo za ovu svrhu i automatski podesi server.

Potpuni sam početnik. Ima li smisla da ovo probam?

Ima, jer u ovom vodiču će sve biti objašnjeno korak po korak. Nemate ništa za izgubiti jer 10$ kredita koje dobijete je i više nego dovoljno da isprobate i odlučite kako dalje.

Što gubim na DigitalOcean naspram shared hostinga?

DigitalOcean ne pruža email uslugu, što znači da se email mora hostati negdje drugdje. Ovo i nije neki problem, jer ima odličnih besplatnih rješenja za email hosting (Zoho).

Gubi se i na jednostavnosti, jer na primjer cPanel i njegovi alati nisu dostupni. No, sve što vam treba se po potrebi može instalirati na server


1. Stvaranje Digital Ocean servera

​Digital Ocean sučelje (dashboard) je veoma moderno i jednostavno za koristiti. Droplet je naziv za VPS server i sad treba stvoriti jedan.

Klikom na "Create Droplet" u gornjem desnom kutu pojavit će se izbornik gdje treba odabrati osnovne postavke servera.

  • Droplet Hostname: odaberite naziv servera.
  • Select Size: odaberite veličinu (jačinu) servera, o čemu ovisi i cijena. Najmanji server od 5$/mjesec je sasvim dovoljan. Kasnije, ako se ukaže potreba zbog ogromnog prometa na web stranici, se jednim klikom može primijenit veličina servera na jači paket.
  • Select Region: odaberite lokaciju servera. Trenutno su u ponudi New York, Amsterdam, San Francisco, Singapore, London, Frankfurt. Odaberite regiju iz koje će te imati najviše posjetitelja. Ovo su sve data centri svjetske klase i koji god odaberete kvaliteta je zajamčena.
  • Available Settings: na ovim dodatnim postavkama ne treba ništa označiti. Automatizirani backup koji diže cijenu dropleta za 20% nije potreban. Backup cijelog servera (snapshot) se može napraviti "ručno" jednim klikom, a backup vaših WordPress web stranica se automatizira u samom WordPress-u.
  • Select Image: ovdje treba odabrati operativni sustav servera. Ono što nama treba je  Ubuntu 14.04.x64, kao što je prikazano na slici niže.
digital ocean server

S ovime je odabir opcija gotov i klikom na CREATE DROPLET server će se kreirati unutar minute. Nakon što bude spreman za korištenje dobit će te email poruku s privremenom lozinkom za root korisnika servera (to je glavni korisnik sa svim ovlastima).

Server command shell

Sad kad je server stvoren, možete se spojiti na njega preko PuTTY-a.

    1. ​Otvorite PuTTY​ i unesite IP adresu servera u Host Name (dobili ste je i u emailu). Connection type mora biti SSH. Ako želite spremiti ove postavke, da ne unosite IP ručno svaki put, upišite neki naziv pod Saved Sessions i kliknite Save.
    2. Klikom na Open pokrenuti će se spajanje na server. Sad kada to činite prvi put će iskočiti security alert, kliknite na Yes i doći će te u server command shell.
    3. Sada se treba prijaviti na server. Upišite root i lupite enter, nakon čega treba upisati lozinku. Iskopirajte ju iz maila te ju pejstajte desnim klikom miša (samo jedan desni klik - tako se pejsta u PuTTY-u). Lozinka neće biti vidljiva na ekranu, ali je tamo i ako lupite enter će te se prijaviti na server. Sad će vas odmah upitati za promjenu ove privremene lozinke. Pejstajte ju još jednom, nakon čega treba upisati vašu novu lozinku dva puta. Kako sve to izgleda možete vidjeti na slici niže.
    putty server

    2. Spajanje servera na Server pilot

    Sad treba povezati upravo napravljeni Digital Ocean server sa ServerPilot-om.

    Prijavit se u Server Pilot (ako još niste napravili Server Pilot račun, napravite ga ovdje) i onda gornjem desnom kutu kliknite CONNECT SERVERS.

    Ispunite tražene podatke (IP adresa servera, lozinka za ROOT user koju ste podesili u prethodnom koraku, te lozinka za novi SERVERPILOT user koju odabirete sada).​

    server pilot install

    Klikom na Connect to ServerPilot odradit će se instalacija (pričekajte dok ne završi).

    Što se sad zapravo instaliralo?

    Server Pilot je instalirao sav softver koji je potreban za server: PHP, MySQL, Nginx i Apache. Također, Server Pilot je osigurao server firewall-om i izvršio sve potrebne nadogradnje njegovih paketa, te će se brinuti o automatskim nadogradnjama ubuduće.

    Server je podešen na način da je potpuno optimiziran za web hosting. Za one malo naprednije, konfiguracija koja se koristi je LAMP/LEMP u kombinaciji što omogućuje najbolje performanse. Više detalja o konfiguraciji možete pročitati ovdje. Server swap prostor je upaljen i podešen (512MB), tako da se niti o tome ne morate brinuti.


    3. Dodavanje domene (DNS postavke)

    Ove upute se odnose na potpuno novu web stranicu. Kako napraviti migraciju već postojeće web stranice s drugog web hostinga je objašnjeno kasnije.

    1. Podesite nameservere domene

    Morate usmj​eriti domenu na Digital Ocean nameservere. Ako ste potpuni početnik, ovo se radi u dashboardu domenskog registra kojeg koristite (Namecheap, GoDaddy...) i više detalja i upute za podešavanje možete pronaći ovdje.

    Nameserveri koje Digital Ocean koristi su​:

    ns1.digitalocean.com​

    ns1.digitalocean.com

    ns1.digitalocean.com​

    2. Dodajte domenu na Digital Ocean DNS

    Domene se dodaju u DNS meniju na Digital Ocean dashboardu. Upišite naziv domene i odaberite server iz drop-down menija (što će automatski ispuniti IP), te kliknite na Create Domain.

    Da bi radila i www verzija web stranice treba dodati i jedan CNAME zapis. Kliknite na CNAME i kao vrijednosti upišite www (za name) i @ (za hostname) te kliknite CREATE. Zapis će biti dodan i sad to izgleda kao na slici niže.

    digitalocean dns


    4a. WordPress instalacija - Automatska

    Sad treba podesiti web stranicu na server (što se radi preko ServerPilot-a) i instalirati WordPress. WordPress se može instalirati ručno (opisano kasnije) ili automatski preko ServerPilot-a. Ova automatska instalacija je odlična stvar i svakako ju iskoristite ukoliko ćete koristiti WordPress.

    U ServerPilot-u odaberite server koji ste spojili, te kliknite Create App​. Ovi app-ovi odnosno aplikacije su u biti web stranice.

    server pilot app

    Otvoriti će se izbornik gdje birate osnovne postavke novog App-a.

    server pilot create app

    Upišite naziv aplikacije (proizvoljno, služi samo za ServerPilot) i naziv domene. Server i System User će biti automatski odabrani i ne treba ih mijenjati. Runtime je automatski podešen na najnoviju PHP verziju i ovo isto ne treba mijenjati (može se kasnije promjeniti ako vam bude bilo potrebno).

    Označite WordPress kvačicu i onda ispod nje upišite tražene podatke. To će biti vaš admin user s kojim ćete se prijavljivati na WordPress.​

    Klikom na Create App će se gotovo instantno stvoriti ova aplikacija i instalirati WordPress na server. Također ćete na upisani email dobiti potvrdu o WordPress instalaciji.​ Možete se odmah prijaviti na WordPress preko internet pretraživača odlaskom na:

    a) http://IPservera/wp-login.php (npr. http://45.55.251.226/wp-login.php)

    ​b) http://vašadomena/wp-login.php (npr. http://www.test.com/wp-login.php)

    ​Prijava preko domene će raditi jedino ako su se promjene na DNS-u (korak 3) primijenile.

    Vaša nova web stranica je sada spremna za korištenje!


    4b. WordPress instalacija - Ručna

    Ukoliko iz bilo kojeg razloga želite ručno instalirati WordPress, pratite sljedeće korake. Ako ste instalirali WordPress automatski preko ServerPilot-a onda ovo preskočite.

    1. Kreirajte web stranicu (Server Pilot App) i bazu podataka

    Sad treba podesiti web stranicu na serveru što se radi preko Server Pilot-a. Prijavite se na Server Pilot, odaberite server i kliknite Create App. Otvorit će se sljedeći izbornik gdje treba odabrati neke postavke.

    serverpilot app

    Odaberite naziv i upišite domenu. PHP verzija može ostat 5.6 osim ako nemate neki posebni razlog da koristite neku drugu (može se mijenjati i kasnije). Server i System User će već sami biti odabrani.

    Još samo treba  kreirati bazu podataka. Unutar App-a kojeg ste napravili kliknite na Databases (slika niže) i upišite neki naziv za bazu. Korisničko ime i lozinka za nju će se automatski generirati. Prije nego kliknete Create iskopirajte ime baze, username i password negdje sastrane (u notepad) jer će biti potrebni prilikom instalacije WordPress-a.

    serverpilot database

    2. Instalirajte WordPress

    Stigli smo pri sam kraj - još samo treba instalirati WordPress i vaša nova web stranica je spremna za korištenje.

    Otvorite PuTTY i prijavite se sa serverpilot user-om na server (ovo je jako bitno, dakle ne s root).​

    Iskopirajte ovu komandu i pejstajte ju u command shell desnim klikom (obojani dio zamijenite nazivom vašeg App-a):

    cd apps/APP/public

    wget https://wordpress.org/latest.tar.gz

    tar xzf latest.tar.gz

    mv wordpress/* .

    rm latest.tar.gz

    rmdir wordpress

    Ova komanda će preuzeti komprimiranu datoteku s najnovijom verzijom WordPressa, extractati ju, te onda obrisati jer više ne treba.

    Sad kad se WordPress datoteke nalaze na vašem App-u tj. web stranici, treba pokrenuti instalaciju. Ovo se može napraviti na dva načina:

    1. Posjetite web stranicu što će pokrenuti installer. Ovo će raditi samo ako su DNS postavke već aktivne (ono što ste napravili u trećem koraku). Iz iskustva, ako je domena potpuno nova promjene su gotovo instantne, no ako je domena već imala podešene neke nameservere i sada ste ih promijenili na Digital Ocean, onda će biti potrebno nekoliko sati.
    2. Ako još ne možete pristupiti domeni, onda umjesto nje u browseru otvorite IP adresu vašeg servera.

    Instalacija WordPress-a je veoma jednostavna. Odaberite jezik i idite dalje što će vas dovesti do ovog izbornika:

    wordpress instalacija

    Sada će vam trebati naziv, korisničko ime i lozinka baze podataka koju ste napravili na koraku 3. Upišite ih u odgovarajuća polja (prva tri). Ostala dva polja ne treba mijenjati. Klinite Submit, nakon čega treba odabrati username i password za WordPress korisnika i time je WordPress instalacija završena!

    Napomena: ako ste instalirali WordPress preko IP stranice, a ne domene, onda će te kasnije trebati upisat domenu u WordPress postavkama (Settings - General - WordPress & Site Address)


    Kako migrirati postojeću web stranicu?

    Prilikom migracije postojeće neki koraci su potpuno isti, no ima nekoliko novih. Migracija je kompliciranija od instalacije nove web stranice, no ako ste napredniji korisnik nećete imati problema. Razlike u odnosu na "običnu" migraciju između dva shared hostinga su minimalne i svode se na korištenje Linux command shell-a i Server Pilot-a.

    Ukratko, ono što treba za migraciju napraviti je importati postojeću baza podataka i uploadati postojeći WordPress sadržaj na server.

    Imajte na umu da se postojeći email-ovi sa shared hostinga neće migrirati​ te da email uslugu morate hostati zasebno (objašnjeno kako u sljedećem poglavlju).

    1. Backup Wodpress web stranice

    Za migraciju web stranice potrebne su dvije stvari: njena SQL baza podataka i sve datoteke web stranice (tj. sve što je u public direktoriju). Također trebate saznati prefix tablica baze podataka.

    a) RUČNI BACKUP

    SQL baza podataka – exportajte ju koristeći phpMyAdmin iz cPanela. Veoma je jednostavno, treba samo odabrati bazu i ići na export izbornik. Export treba napraviti u SQL formatu, koji je već odabran tako da ga nemojte mijenjati.

    Datoteke – koristeći File Manager iz cPanela, komprimirajte sav sadržaj Web Root direktorija u jednu arhivu (odaberite GZiped Tar Archive format). Dakle Select All, pa Compress i downloadajte arhivu kad bude spremna.

    b) BACKUP PREKO PLUGIN-a

    Koristeći plugin poput BackWPup možete napraviti backup arhivu iz samog WordPress-a i ona će sadržati sve što vam treba.

    KAKO SAZNATI PREFIX TABLICA BAZE PODATAKA?

    Prefix tablica možete vidjeti iz phpMyAdmin, iz već spomenutog BackWPup plugina ili iz bilo kojeg plugina koji radi s tablicama.

    Još jednostavniji način je da otvorite fajlu wp-config.php (nalazi se u root folderu web stranice) u FIle Manager editoru ili ju skinite i otvorite u notepadu. U njoj se nalazi linija koja sadrži prefix:

    $table_prefix = 'a6yjfa_';​


    2. Kreiranje nove web stranice (Server Pilot App) i baze podataka

    Ovaj korak je isti kao i za novu web stranicu, što je objašnjeno u prethodnom poglavlju stoga neću ponoviti ovdje.

    Postoji samo jedna napomena: ako imate više app-ova na serveru, nazovite ovaj app tako da bude prvi po abecedi (započnite s nekim brojem ili slično). Ovo je bitno zato što kad se pristupa IP adresi servera preko internet browsera, otvorit će se app tj. web stranica koja je prva po abecedi.


    3. Upload datoteka na server

    1. Preko WinSCP alata i serverpilot usera se prijavite na server.
    2. Uđite u public direktorij vaše web stranice (npr /apps/mojawebstranica/public) i uploadajte SQL backup baze podataka i backup arhivu s WordPress sadržajem.

    Nemojte gasiti WinSCP jer će trebati na koraku 6.


    4. Extract arhive

    1. ​Preko PuTTY-a i serverpilot usera se prijavite na server.
    2. Uđite u public direktorij web stranice koristeći ovu komandu (zamjenite ime svog appa):          cd /srv/users/serverpilot/apps/APP/public
    3. Extractajte arhivu koristeći komandu: tar xzf backup.tar.gz

    Naravno, vaša arhiva se ne mora zvati backup kao iz primjera, pa ju preimenujte u točan naziv.

    Nakon ovoga, direktorij treba sadržati sve WordPress datoteke (extractane) te backup fajlu baze podataka (u .sql formatu).

    Nemojte gasiti PuTTY jer će trebati na sljedećem koraku.​


    5. Import baze podataka

    Pretpostavljam da ste i dalje prijavljeni u PuTTY sa serverpilot userom i u public direktoriju.

    Sad će vam biti potreban naziv, username i password nove baze koju ste kreirali u Server Pilot-u na samom početku (korak 2). Ako niste navedeno zapisali, obrišite bazu koju ste napravili, napravite novu i ovaj put spremite sve podatke negdje (notepad).

    Za import je potrebno (primjer):

    • ​Backup stare baze: test_wrdp1.sql
    • Naziv nove baze: test
    • Username nove baze: 2c368dd25cc8
    • Password nove baze: ad96a735fc1364a7

    Komanda za import bi u ovom slučaju bila:​

    mysql -u 2c368dd25cc8 -p test < test_wrdp1.sql

    Zamijenite obojane parametre sa svojima. Nakon što unesete komandu će vas upitati za lozinku baze. Iskopirajte ju i pejstajte desnim klikom te lupite enter, nakon čega je import gotov.


    6. Konfiguracija WordPress-a i provjera

    S obzirom da se sad koristi nova baza podataka, treba promijeniti neke parametre u WordPress konfiguracijskom falu.

    Preko WinSCP alata i serverpilot usera se prijavite na server i uđite u public direktorij. Pronađite wp-config.php fajlu, desni klik na nju i EDIT. Sad treba upisati nove podatke za bazu podataka.

    Pronađite sljedeće linije i unesite svoje točne parametre.

    /** The name of the database for WordPress */

    define('DB_NAME', 'test');

    /** MySQL database username */

    define('DB_USER', '2c368dd25cc8');

    /** MySQL database password */

    define('DB_PASSWORD', 'ad96a735fc1364a7');

    /** * WordPress Database Table prefix. * * You can have multiple installations in one database if you give each a unique * prefix. Only numbers, letters, and underscores please! */

    $table_prefix = 'a6yjfa_';

    Nemojte zaboravit snimiti promjene.

    Sad možete posjetite IP adresu vašeg servera u internet pretraživaču i vidjet će te vašu web stranicu. Ako ste pratili ove korake sa stranicom nebi trebalo biti nikakvih problema.


    7. Podešavanje nameservera i DNS postavka

    Sad kad je web stranica spremna možete usmjeriti domenu na Digital Ocean. Ovo je opisano na poglavlju 3, stoga neću ponavljati ovdje.

    DNS postavke će se obično primijeniti za oko 2 do 4 sata, a do tad će domena i dalje voditi na stari server.​ Kad ovo bude gotovo možete napraviti završnu provjeru web stranice, prijaviti se u WordPress i pogledati da li je sve u redu.


    Podešavanje email računa

    Email uslugu treba hostati negdje drugdje, jer Digital Ocean to ne radi. Ovo nije nikakav problem i neće vas koštati ništa. Zoho nudi besplatan email hosting za jednu domenu i njihova usluga je odlična. Dapače, bolja je od one koju će te imati npr. na Bluehostu gdje je pad email servera česta pojava.

    Ako imate više domena - nema problema. Za svaku web stranicu prvo napravite jednu email adresu (gmail najjednostavnije) i nju iskoristite za otvaranje Zoho email računa.

    1. Napravite Zoho račun tako da upišete svoju domenu i ispunite tražene podatke.
    2. Sad treba verificirati vlasništvo domene, što je jednostavno napraviti preko TXT zapisa na DNS postavkama domene​. Odaberite TXT metodu i iskopirajte vrijednost za verifikaciju. U Digital Ocean DNS konfiguraciji za domenu u pitanju dodajte taj TXT zapis (name je @ i text je ovo što ste iskopirali). Nakon toga možete nastaviti i uspješno verificirati domenu.
    3. Sad je još ostalo na DNS postavkama dodati dva sljedeća zapisa.

    Hostname: mx.zohomail.com. Priority: 10

    ​Hostname: mx2.zohomail.com. Priority: 20​

    ​S ovime je konfiguracija DNS-a gotova (slika niže) i možete dalje podesiti email račun po svojoj volji na Zoho panelu (upaliti IMAP, podesiti mail u Outlook...).

    dns mail

    Za kraj: Korisni savjeti

    ServerPilot user Vs. root user

    Ako radite bilo kakve promjene na datotekama vaše web stranice preko PuTTY-a ili WinSCP-a, onda to radite preko serverpilot user-a. Ako koristite root user može doći do konflikta, što obično rezultira greškama unutar WordPressa (obično prilikom instalacije plugina ili tema).

    Ako vam se to desi može se lako ispraviti. Prijavite se na server preko PuTTY-a s root userom i pejstajte ovu komandu:

    chown -R serverpilot:serverpilot /srv/users/serverpilot/apps

    ​Ovo će postaviti vlasništvo svih datoteka u App-ovima tj. web stranicama pod serverpilot user, kako i treba biti.

    Kako ugasiti ili restartati server?

    Ako se ukaže potreba za gašenjem ili restartanjem servera to možete napraviti na dva načina:

    1. Dobar način: prijavite se na server (preko PuTTY-a ili konzole na Digital Ocean server dashboardu) i upišite reboot za restart ili poweroff za gašenje.
    2. Lošiji način​: preko Power Off ili Power Cycle opcije na Digital Ocean dashboardu. Ovo nije dobro jer je kao da ste "na silu" ugasili napajanje i postoji mala mogućnost za oštećenje podataka.

    Kako napraviti backup (snapshot) cijelog servera?

    Snapshot je opcija kojom možete napraviti image cijelog servera. Ovo je jako korisno jer ako nešto pođe po zlu, možete uništiti postojeći server i napraviti novi iz snapshota u samo par minuta. Ako ćete raditi neke velike promjene na serveru onda je svakako dobro napraviti jedan snapshot prije toga.

    1. Prvo morate ugasiti server. Učinite to preko poweroff komande.
    2. Na Digital Ocean dashboardu imate Snapshot izbornik. Odaberite naziv snapshota i kliknite Take Snapshot. Ovo će potrajati oko 4-5 minuta, a čim bude gotovo server će se automatski upaliti.

    Kako dodati još web stranica na isti server?

    Jednostavno ponovite proces (kreirajte app u server pilotu i instalirajte WordPress). Možete imati koliko god hoćete web stranica na jednom serveru. Hoće li najmanji server od 5$ biti dovoljno jak za sve njih vam ne mogu reći, jer to ovisi o prometu vaših web stranica te o njihovoj namjeni.

    Na primjer, možete imati desetak običnih web stranice poput ove i tu nebi trebalo biti nikakvih problema. No ako vam websajt ima ima tisuće simultanih posjeta dnevno i/ili ako zahtjeva neke memory ili CPU intenzivne procese, svakako će trebati unaprijediti jačinu servera (takve web stranice niti nebi bilo moguće imati na običnom shared hostingu).

    Ako imate bilo kakva pitanje, pišite u komentarima!

    Leave a Comment:

    4 comments
    Add Your Reply