Apachen poisto, asennus, käyttöönotto ja testaus one-linerilla
Koska olin jo edellisellä tunnilla asentanut läppäriini Apachen, päätin poistaa sen hävittäen kaikki asetustiedostot ja asentaa apachen saman tien (4.9.2012 klo 20.35) uudelleen, koska kyseessä ei ole erityisen massiivinen projekti. En voinut välttää kiusausta kokeilla tehdä koko hommaa one-linerilla, joten typoja uhmaten komensin Ubuntuani seuraavalla tavalla:
sudo apt-get purge apache2 && sudo apt-get update && sudo apt-get install apache2 && sudo a2enmod userdir && sudo service apache2 restart && rm -r /home/erkkimon/public_html/ && mkdir /home/erkkimon/public_html/ && echo 'Hello world.' > /home/erkkimon/public_html/index.html && ssh himanen@192.168.100.48 'wget http://192.168.100.32/~erkkimon/index.html -o /dev/null' && ssh himanen@192.168.100.48 'wget http://192.168.100.32/~erkkimon/index.fail -o /dev/null'
Onnistuinko? – Lokien analyysi
One-linerin ajettuani, muutaman kerran sudolle ja SSH:lle salasanani annettuani ja hetken odoteltuani pääsin selvittämään, onnistuinko. Aluksi selvitin, oliko Apache kuullut asiakaskoneeni kaksi kutsua:Lokin mukaan siis asiakas IP-numerosta 192.168.100.48 on pyytänyt wget-asiakasohjelmalla Apachelta tiedostoa /~erkkimon/index.html HTTP-protokollan yli 4.9.2012 klo 20.59:30 ja sekuntia myöhemmin tiedostoa index.fail samasta hakemistosta. Tämän jälkeen katsoin Apachen virhelokista, onko Apache oletukseni mukaisesti ilmoittanut, ettei index.fail-tiedostoa ole.cat /var/log/apache2/access.log | tail -2192.168.100.48 - - [04/Sep/2012:20:59:30 +0300] "GET /~erkkimon/index.html HTTP/1.0" 200 325 "-" "Wget/1.11.4"192.168.100.48 - - [04/Sep/2012:20:59:31 +0300] "GET /~erkkimon/index.fail HTTP/1.0" 404 538 "-" "Wget/1.11.4"
erkkimon@ubuntu:~$ cat /var/log/apache2/error.log | tail -1
[Tue Sep 04 20:59:31 2012] [error] [client 192.168.100.48] File does not exist: /home/erkkimon/public_html/index.failOletus oli oikea: Apache kirjasi virhelokiinsa, että 4.9.2012 klo 20.59:31 asiakas IP-osoitteesta 192.168.100.48 pyysi HTTP-protokollan yli tiedostoa /home/erkkimon/public_html/index.fail, mutta sitä ei ollut palvelimen tiedostojärjestelmässä.
Telnetiin tutustumista
Tehtävänäni oli myös kokeilla Telnetiä localhostilla sekä lisätehtävänä ladata sivu telnetillä localhostissa pyörivältä Apache-palvelimelta.
Aluksi testasin vain avata yhteyden ja rämpätä [Enter]-painiketta. Lopputuloksena oli vain rivinvaihtoja, kunnes palvelin (localhost) kyllästyi leikkiimme ja sulki telnet-yhteyden. Siirryin kokeilemaan sivun lataamista telnetillä.
En aluksi tiennyt, miten sivu ladataan telnetillä. Löysin kuitenkin nopeasti vastauksen Microsoftin (!) Telnet-artikkelista. Puolustuksekseni totean, että klikkasin ekaa Google-hakutulosta ja vasta raporttiin linkkiä lisätessäni (= nyt) huomasin, että lähdesivusto on Microsoftin.
Lataaminen siis tehtiin GET-komennolla. Syntaksissa mielenkiintoa herättää tiedostopolun ilmoittaminen absoluuttiselta näyttävässä muodossa. Lisäksi laitoin merkille, että Apachen lokeissa ja Telnet-komennoissa on yhteisiä piirteitä.telnet localhost 80Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.GET /~blaa/index.htmlHello world.Connection closed by foreign host.
Joka tapauksessa GET-komento palautti halutun tiedoston sisällön, joten homman voidaan todeta toimivan.
PS. One-linerin kirjoittamisen aloitushetken ja lokimerkinnän välillä on noin 25 minuutin ero. En suinkaan kirjoittanua one-lineria 25 minuuttia; toisessa koneessani on Mac OS X, joten aluksi minun tarvitsi ottaa Mac OS X -koneessa SSH-demoni käyttöön, asentaa Xcode, jonka jälkeen asensin Xcoden comman-line -ympäristön. Tämän jälkeen asensin MacPortsin, jonka jälkeen asensin sillä wgetin (sudo ports selfupdate && sudo ports install wget). Tämän raportin fokuksessa ei kuitenkaan ole wgetin asennus Mac OS X -koneelleni, joten päätin jättää wgetin asennuksen raportoinnin maininnan tasolle.
Ei kommentteja:
Lähetä kommentti