Linux 5 kotitehtävä

Tällä erää tehtäväksi annettiin nimipohjaisen virtuaalipalvelimen pystyttäminen.

”h5. Tee nimipohjainen virtuaalipalvelin Apachelle (name based virtual hosting). Muista laittaa sekä http://www.example.com että example.com. Voit simuloida asiakkaan nimipalvelua muuttamalla /etc/hosts -tiedostoa.

Kokeile virtuaalipalvelinta (VPS). Voit vuokrata palvelimen esimerkiksi Linodelta, Amazonilta, DigitalOceanilta tai monista muista paikoista. Linodella ja Amazonilla saattaa olla myös ilmaisenkokeilu paketin. Vaihtoehto: jos et jostain syystä halua vuokrata virtuaalipalvelinta, voit kokeilla tehdä oman vagrantilla.”

Mainittakoon vielä, että suurin osa sepustuksista on kirjoitettu ulkomuistista, eli lyöntivirheitä löytyy varmasti ja myös wordpress muokkaili jotakin vähän omine lupineen. Bare with me!

Pe 28.2 klo 20.35

Aloitin normiasetuksilla, eli päivitysten ajaminen virtual boxissa olevaan Ubuntuun (versio 13.10). Siirryin takaisin ensimmäiseen snapshottiin johon ajoin päivitykset ja jossa ei ollut valmiiksi asennettuna Apachea.

$ sudo apt-get update

$ sudo apt-get upgrade

ja Apachen asennus

$ sudo apt-get install apache2

Tämän jälkeen testasin että toimiiko apache kirjoittamalla palvelimeen <a href="http://localhost/" target=”_blank”>http://localhost ja esimerkki sivu pompahti esiin sieltä.

Tästä jatkoin Teron tekemien ”Demonien tekeminen” ohjeistuksella, ihan vaan muistuttaakseni miten tämän apachen kanssa taas toimittiinkaan. (http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4)

$ firefox http://localhost

Homma toimii!

Tsekkasin ipni
$ ip addr

kokeilin yhteyttä ip-osoitteella selaimessa

$ firefox http://10.0.2.15
Hyvin pelitti esimerkkisivu.

Userdir:in käyttöönotto
$ sudo a2enmod userdir

Apachen uudelleen käynnistys muutosten voimaantuloa varten
$ sudo /etc/init.d/apache2 restart

Olen jo kotihakemistossani, joten loin suoraan kansion public_html:ää varten

$ mkdir public_html

Katson ohjeiden mukaan nimeni

$ whoami -kristiina

Sitten sen tsekkaaminen selaimella

$ firefox http://localhost/~kristiina

Ja hakemistopolku näkyy selaimessa, ei siellä nyt mitään ole mutta toimivuus on todettu.

Tämän jälkeen saadakseni virtual hostin toimimaan, minun piti lisätä seuraavat tiedot tiedostoon apache2.conf, joka oli ohjeessa mitä seurasin tosin eriniminen koska sitä oli muutettu ubuntu versioon 13.10, ohjeessa siis lukee httpd.conf.
Valitettavasti lopulta päädyimme vaan tuijottelemaan tiedoston sisältöä muttemme sitten koskeneetkaan siihen.

Muutokset ja muokkaukset piti tehdä sites-availeble hakemiston conf. tiedostoihin, näissä tapauksissa Ubuntu 13.10 versio edellyttää .conf päätettä tai sivuja ei saa näkyviin selaimessa.

Tein aluksi kaikki muokkaukset 000-default.conf- tiedostoon, mallia:

NameVirtualHost *:80

ServerName http://www.kristiina.fifi
ServerAlias kristiina.fifi *.kristiina.fifi
DocumentRoot /var/www/kristiina

ServerName http://www.example.fifi
DocumentRoot /var/www/example

Tällä tavalla homma toimi examplella, mutta ei kristiinalla. Testailtuani selaimessa epäilimme aluksi että vika on nimen yleisyydessä, lopulta kuitenkin selvisi ongelman olleen .conf tiedostoissa.
Muutin ensin nimipalvelimen kisuksi, koska oletin että se oli ongelmana.

Googlettelun jälkeen yhdeksi ongelmaksi esitettiin myös että dnsmasq:in conffissa ei ole kaikki kohdallaan ja että sitä tulisi korjata hieman.

$ sudo nano /etc/NetworkManager/dnsmasq.d/hosts.conf

Ja tiedostoon lisätään tämä pätkä jotta voin luoda domain nimiä ilman että ne ovat oikeita.
addn-hosts=/etc/hosts

$ sudo mv kristiina kisu.conf

Ja sama muutos example-tiedoston suhteen.

$ sudo mv example example.conf

Tämän jälkeen kopioin 000-default.conf sisällön kisuun ja exampleen, jonka jälkeen siivosin sitten kaiken turhan sieltä pois. Virhe oli siis alunperinkin laittaa klummankin sivun conffaukset yhteen tiedostoon. Eli kisu:n ja example:n sisällöt olivat lopulta muotoa:

ServerName www.example.fifi
DocumentRoot /var/www/example

Ja samat kisuun, examplen tilalla vain kisu.

Tämän jälkeen pitää linkittää nämä conffitiedostot sites-enabled hakemistoon jotta ne oikeasti ladataan ja luetaan -> sivut näkyvätkin selaimessa. Komento seuraa:

$ sudo a2ensite example
Site www.example.fifi installed; run /etc/init.d/apache2 reload to enable.
$ sudo a2ensite kisu
Site www.kisu.fifi installed; run /etc/init.d/apache2 reload to enable.

Tämän jälkeen takaisin selaimeen tarkistamaan sivujen pelitys ja nyt vihdoinkin toimivat edes, eli tähän asti on päästy. Jatkoa seuraa sitten virtuaalipalvelimen kokeilun muodossa, toivottavasti homma lähtee pelittämään.

Lopuksi tuli mieleeni että tietenkin examplelle ja kisulle pitit tehdä omat hakemistonsa /var/www/ alaisuuteen

$ mkdir www.kisu.fifi
$ mkdir example


Klo La 1.3 klo 00.50

Su 2.3 klo 1230

Seuraavaksi oli vuorossa virtuaalipalvelimen kokeileminen. Valitsin Digital Oceanin palvelut osin opettajan ehdotuksesta, osin opiskelijakaverin suosituksesta. En omista luottokorttia niin tämä oli siitä miellyttävä vaihtoehto koska hyväksyy paypal-maksut myös, hinta ei myöskään ole liian kova (5$) joka tekee noin 4,5€/kk.

Perustin kisulan Digital Oceaniin, jossa sai otettua sitten terminaaliyhteyden kisulaan. Ajoin samat peruskomennot ensin, eli pakettien päivitykset ja asennukset.

$ apt-get update
$ apt-get upgrade

Tämän jälkeen kokeilin ottaa yhteyttä myös puttyn kautta windowssista, DigitalCloudista löytyy ohjeet siihen (https://www.digitalocean.com/community/articles/how-to-create-your-first-digitalocean-droplet-virtual-server). Seuraavaksi piti vielä vaihtaa rootin default sanalana komennolla:

$passwd

Joka sitten kysyy uutta salasanaa ja pyytää sen vielä uudelleen että salasana vaihtuu lopulta. Tämän jälkeen luon uuden käyttäjän jolle annan root oikeudet, ettei minun tarvitsisi kirjautua sisään roottina joka kerta.

$adduser catti
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for catti
Enter the new value, or press ENTER for the default
Full Name []: Kristiina
Room Number []:
Work Phone []:
Home Phone []:
Other []:

Tämän jälkeen muokkaamaan sudo asetuksia

$ visudo

Jossa näkyy vastaavaa:

# User privilege specification
root    ALL=(ALL:ALL) ALL

Ja jonka perään lisäsin pätkän:

catti    ALL=(ALL:ALL) ALL

ctrl+x tallennettuna muutoksineen. Tämän jälkeen avasin uuden yhteyden juuri luomallani käyttäjällä ja hyvinhän tuo yhteys pelitti. Tämän jälkeen asentelin apachen palvelimelle päivityksineen puttyn kautta.

$ sudo apt-get install apache2
ja
$ sudo a2enmod userdir

$ sudo /etc/init.d/apache2 restart

ja

$ mkdir public_html

Tässä kohtaa jäin miettimään tarvitseeko minun laitella noita epäolemassaolevia domain nimiin koskevia asetuksia, mutta koska ilmeisesti Digital Ocean tarjoaa myös tämän palvelun, niin tein itselleni DNS:ksi http://www.kittipitti.comin jota voin kutsua suoraan sitten kun siihen vaiheeseen päästään.

Tämän tehtävän suhteen seurailin aiemmin tekemiäni vaiheita(ks. yllä) ja ainoa mikä aiheutti hämminkiä, oli uusi palvelu ja sen omat toiminnot. Jotka ovat vielä pieni mysteeri setvittäväksi. Eli loin http://www.kittipitti.com:lle oman .conf tiedoston sites-available hakemistoon ja linkitin http://www.kittipitti.com:in sites-enabled hakemistoon, tai siis tein tämän:

$ sudo a2ensite kittipitti

Ja tämän jälkeen apachen uudelleen käynnistys.

$ /etc/init.d/apache2 reload

Käyttäjäni sivut näkyivät kyllä, mutta kittipitti.com:in sivut eivät näkyneet selaimessa. Googlettelun jälkeen selvisi, ettei Digital Ocean tarjoakkaan DNS palvelua, joten poistin luomani kittipitti.com:in sieltä kokonaan turhana. Virtuaalipalvelin kuitenkin pelittää kuitenkin selaimessa, ettei ihan turhaa ole ollut tämän päivän pakertaminen. Jos minulla olisi DNS-nimi, niin sitten voisin liittää sen Digital Oceaniin. Kirjoittelin huvikseni pieniä muokkauksia index.html tiedostoon, vain varmistaakseni sen että se toimii. Noh toimiihan se. 🙂
DNS:sää en kuitenkaan lähtenyt hankkimaan budjetin takia.
Taukojen ja yleisen muun härväämisen ohella tämä työ saatiin päätökseen n. klo 1700.

Lähteet:

 

Jätä kommentti