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:
- Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html
- Rousu, Pekka: Tutorointi
- Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com
- http://askubuntu.com/questions/117899/configure-dnsmasq-to-use-etc-hosts-file
- https://www.debian-administration.org/articles/412
- https://httpd.apache.org/docs/2.2/vhosts/name-based.html
- http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4
- https://www.digitalocean.com/community/articles/how-to-create-your-first-digitalocean-droplet-virtual-server
- https://www.digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu