Muokataan sivua Apache-harjoituksia

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
{{jakeluspesifinen}}
Tarkoituksena on pystyttää oppilaitoksen (yrityksen) www-palvelin, johon tulee niin oppilaitoksen (yrityksen) kuin oppilaiden (työntekijöiden) kotisivut. Mahdollistetaan salasanasuojattujen hakemistojen tekeminen, määritetään mukautetut virheilmoitukset, tarkastellaan palvelimelle pääsyn rajoittamista, tutkitaan miten virtualHost määritteet toimivat ja lopuksi tutkitaan miten saadaan helposti luotua raportteja sivustojen käytöstä webalizerin avulla.
Tarkoituksena on pystyttää oppilaitoksen (yrityksen) www-palvelin, johon tulee niin oppilaitoksen (yrityksen) kuin oppilaiden (työntekijöiden) kotisivut. Mahdollistetaan salasanasuojattujen hakemistojen tekeminen, määritetään mukautetut virheilmoitukset, tarkastellaan palvelimelle pääsyn rajoittamista, tutkitaan miten virtualHost määritteet toimivat ja lopuksi tutkitaan miten saadaan helposti luotua raportteja sivustojen käytöstä webalizerin avulla.
====Taustatietoa Internetin toiminnasta:====
* karttoja: http://www.telegeography.com/
* mitä tapahtuu kun avaa www-sivun: http://prezi.com/gks10schfggg/i-made-a-map-of-the-internet-and-other-lessons-about-speeding-up-web-sites/
* Analysoi itse mitä tapahtuu kun selain avaa www-sivun: http://getfirebug.com/
Ohjeet on kirjoitettu [[Redhat]]ia ajatellen. Joissakin kohdissa on myös kerrottu [[Debian]]issa tai muussa [[jakelu]]ssa tarvittavat versiot komennoista. Pienin muutoksin ohjeet soveltuvat myös muille jakeluille; lue tarvittaessa oman jakelusi [[GNU/Linuxin käynnistysprosessi#Pikkuisen init-skripteistä|käynnistysskripteistä]], [[ohjelmien asentaminen|ohjelmien asentamisesta]], käytettävistä [[tekstieditori|tekstieditoreista]], [[palomuuri]]n säätämisestä yms. httpd:n käyttämät hakemistot löytyvät asetustiedostosta hakemalla avainsanoja ServerRoot, DocumentRoot ja UserDir.


==Perustoimet==
==Perustoimet==


===Asennus ja käynnistys===
===Asennus ja käynnistys===
*Asenna [[Apache httpd|Apache]] jakelun asennuskomennolla, esimerkiksi:
*Asenna [[Apache httpd|Apache]]
  yum install httpd # RedHat tai
  yum install httpd
sudo apt-get install apache2 # Debian


*Käynnistä Apache:
*Käynnistä Apache:
  service httpd start # RedHat tai
  service httpd start
sudo /etc/init.d/apache2 start # Ubuntu
 
*Tarkista Apachen toimivuus selaimella (127.0.0.1 tai localhost)


*Tarkista Apachen toimivuus selaimella (http://127.0.0.1 tai http://localhost)
*Oletussivun luominen:
Luo index.html /var/www/html/ hakemistoon:
touch /var/www/html/index.html


*Muokkaa [[tekstieditori]]lla (esim. [[nano]]lla) sisältä. Tarkista toimivuus.
*Kirjoita tekstieditorilla (vaikkapa mc:llä) sisältö. Tarkista toimivuus.


*Mahdollista index.htm ja index.php (vain RedHat, Ubuntussa ne ovat valmiina)
*Mahdollista index.htm ja index.php
  /etc/httpd/conf/httpd.conf rivi 375
  /etc/httpd/conf/httpd.conf rivi 375
Rivinumerot vaihtelevat asetustiedoston versiosta toiseen RedHat:ssa.
Ubuntussa (ja muissa Debian-pohjaisissa jakeluissa) tiedosto httpd.conf on tyhjä, koska kaikki asetukset on pilkottu useampaan tiedostoon kansion /etc/apache2/ alla. Jos haluat löytää tietyn asetuksen, kokeile /etc/apache2 -hakemisossa ajaa hakukomentoa ''grep -R hakusana *''


*Käyttäjien kotihakemiston käyttöönotto:  
*Käyttäjien kotihakemiston käyttöönotto:  
  rivi 339: #UserDir disable (lisää risuaita)  
  rivi 339: #UserDir disable (lisää risuaita)  
  rivi 346: UserDir public_html (poista risuaita)  
  rivi 346: UserDir public_html (poista risuaita)  
Ubuntussa UserDir-määrittely on valmiiksi olemassa tiedostossa /etc/apache2/mods-available/userdir.conf. Se otetaan käyttöön tekemällä siihen symbolinen linkki kansioon /etc/apache2/mods-enabled/, kuten myös userdir.load-tiedostolle.
cd /etc/apache2/mods-enabled/
sudo ln -s ../mods-available/userdir.conf userdir.conf
sudo ln -s ../mods-available/userdir.load userdir.load


*Käynnistä Apache uudestaan:
*Käynnistä Apache uudestaan:
  service httpd restart # RedHat tai
  service httpd restart
sudo /etc/init.d/apache2 restart # Ubuntu


*Luo index.html käyttäjän "oppilas" kotihakemistoon public_html nimiseen kansioon (korvaa tarvittaessa $EDITOR käyttämälläsi tekstieditorilla). Muuta kotihakemiston oikeuksiksi 711 ja anna vastaavasti kaikille lukuoikeus tiedostoon index.html
*Luo index.htm käyttäjän "oppilas" kotihakemistoon public_html nimiseen kansioon. Muuta kotihakemiston oikeuksiksi 711
 
mkdir ~oppilas/public_html
$EDITOR ~oppilas/public_html/index.html
chmod 711 ~oppilas/public_html
chmod a+r ~oppilas/public_html/index.html


===Salasanasuojattujen hakemistojen tekeminen===
===Salasanasuojattujen hakemistojen tekeminen===


*Kirjoita riviltä 383 alkaen (RedHat:ssa, mikäli rivinumerointi yllä täsmäsivät ja tämäkin vaikuttaa oikealta) seuraavat rivit tai Ubuntussa laita teksti tiedostoon httpd.conf:
*Kirjoita riviltä 383 alkaen seuraavat rivit
 
  <Directory /home/oppilas/public_html/suojattu*>
  <Directory /var/www/suojattu*>
  AllowOverride AuthConfig
  AllowOverride AuthConfig
  AuthUserFile /var/www/suojattu/.htpasswd
  AuthUserFile /home/oppilas/public_html/.htpasswd
  AuthType Basic
  AuthType Basic
  AuthName "Salasanaa vaativa hakemisto"
  AuthName “Salasanaa vaativa
  Require valid-user
  Require valid-user
  </Directory>
  </Directory>


*Käynnistä palvelin uudelleen
*Käynnistä httpd uudelleen
*Tee hakemistoon <tt>/var/www/</tt> alihakemisto nimeltä <tt>suojattu</tt>
*Tee public_html hakemistoon suojattu niminen alihakemisto
cd /var/www/
*Tee suojattu hakemistoon index.htm tiedosto
mkdir suojattu
*Luo .htpasswd tiedosto ja määritä siihen käyttäjä ja salasana:
*Luo kansioon .htpasswd tiedosto ja määritä siihen käyttäjä ja salasana:
  htpasswd -c .htpasswd mulonlupa
  cd suojattu
*Muuta kyseinen tiedosto luettavaksi ([[Tiedoston oikeudet|chmod]] 644 .htpasswd)
sudo htpasswd -c .htpasswd tunnus
*Testaa
*Testaa
Apachen asetuksissa on yleensä kielto näyttää .ht-alkuisia tiedostoja. Tämä suojaus ei kuitenkaan estä muita järjestelmän käyttäjiä lukemasta tiedostoa. Parempi on määrätä tiedoston ryhmäksi se ryhmä, jona palvelin ajetaan, ja antaa lukuoikeus vain omistajalle ja ryhmälle eli <tt>sudo chown www-data:www-data *</tt> ja <tt>sudo chmod 640</tt>


===Mukautetun virheilmoituksen tekeminen===
===Mukautetun virheilmoituksen tekeminen===
Rivi 79: Rivi 53:
*Mikäli käyttäjä painaa Cancel-painiketta salasanaa kysyttäessä, saa hän Authorization required virheilmoituksen (virhe 401). Muutetaan kyseinen ilmoitus toiseksi.
*Mikäli käyttäjä painaa Cancel-painiketta salasanaa kysyttäessä, saa hän Authorization required virheilmoituksen (virhe 401). Muutetaan kyseinen ilmoitus toiseksi.


*Lisää tiedostoon seuraava teksti
*Lisää riville 809 seuraava teksti
  ErrorDocument 401 /eilupaa.html
  ErrorDocument 401 /eilupaa.htm


*Luo /var/www/eilupaa.html tiedosto haluamillasi teksteillä
*Luo /var/www/html/eilupaa.htm tiedosto haluamillasi teksteillä
*Käynnistä Apache uudestaan
*Käynnistä Apache uudestaan
*Testaa
*Testaa


Jotkut selaimet näyttävät omaa virheilmoitustaan http-palvelimen antaman ilmoituksen sijaan ("friendly error messages"). Muuta tarvittaessa selaimesi asetuksia.
===Palomuurin portin 80 avaaminen===
 
Anna komento setup, siirry kohtaan firewall konfiguration ja valitse www. Vaihtoehtoisesti lisää tiedostoon /etc/sysconfig/iptables rivi:
-A RH-Firewall-1-INPUT -m state NEW -m tcp -p tcp –dport 80 -j ACCEPT
ja anna sen jälkeen komento: service iptables restart
 
===Testaa (Kokeile naapurikoneesta)===
 
*Rajoitetaan pääsy vain tietystä IP-osoitteesta
 
*Lisää riville 391 alkaen tekstit:
<Directory /home/oppilas/*>
Order deny.allow
Deny from all
Allow from sallittavan.koneen.ip.osoite
</Directory>
 
*Käynnistä httpd uudestaan
*Testaa
*Kommentoi edellä tekemäsi muutokset
*Käynnistä httpd uudestaan
*Testaa


===VirtualHost===
===VirtualHost===


*Lisää httpd.confin loppuun (RedHat) tai sites-enabled-kansioon tiedostoon:
*Lisää httpd.confin loppuun
  <VirtualHost apache.palvelimen.ip.osoite>
  <VirtualHost 127.0.0.1>
     ServerAdmin webmaster@wwwmalli.jee
     ServerAdmin webmaster@wwwmalli.jee
     DocumentRoot /home/oppilas/public_html
     DocumentRoot /home/oppilas/public_html
Rivi 102: Rivi 97:
*sekä muuta:
*sekä muuta:
  # Use name-based virtual hosting.
  # Use name-based virtual hosting.
  NameVirtualHost apache.palvelimen.ip.osoite
  NameVirtualHost 127.0.0.1


*Käynnistä Apache uudelleen
*Käynnistä Apache uudelleen
Rivi 108: Rivi 103:
  apache.palvelimen.ip.osoite wwwmalli.jee
  apache.palvelimen.ip.osoite wwwmalli.jee
*Testaa toimivuus
*Testaa toimivuus
== Ongelmanratkaisuharjoitus: Piwik-tilastointi ==
Katso http://piwik.org/ - täytä ohjeet tähän.


==Webalizer statistiikka==
==Webalizer statistiikka==


Asenna [[Webalizer]]
Asenna [[Webalizer]]
  yum install webalizer # RedHat tai
  yum install webalizer


*Anna komento webalizer
*Anna komento webalizer
Rivi 124: Rivi 114:
*Testaa osoitteessa 127.0.0.1/usage
*Testaa osoitteessa 127.0.0.1/usage


*Jos haluat mahdollistaa tilastojen näkymisen muillekin kuin 127.0.0.1:lle, niin muuta rajoituksia tiedostossa /etc/httpd/conf.d/webalizer.conf
*Jos haluat mahdollistaa tilastojen näkymisen muillekin kuin 127.0.0.1:lle, niin poista rajoitukset tiedostosta /etc/httpd/conf.d/webalizer.conf
*Käynnistä Apache uudestaan
*Käynnistä Apache uudestaan
*Testaa osoitteessa apache.palvelimen.ip.osoite/usage
*Testaa osoitteessa apache.palvelimen.ip.osoite/usage
Rivi 134: Rivi 124:
  ja lisää rivi
  ja lisää rivi
  30 * * * * webalizer
  30 * * * * webalizer
(Editori on vim, jossa insert mahdollistaa kirjoitustilan, esc lopettaa kirjoitustilan, :w tallentaa ja :q lopettaa)


Editori on vim, jossa insert mahdollistaa kirjoitustilan, esc lopettaa kirjoitustilan, :w tallentaa ja :q lopettaa. Voit käyttää muuta editoria määrittelemällä ympäristömuuttuja EDITOR, kertaluonteisesti korvaamalla crontab-komento komennolla
*Määritä Apache käynnistymään automaattisesti. Anna komento:
env EDITOR=suosikkieditorisi crontab -e
 
*Määritä Apache käynnistymään automaattisesti. Muuta järjestelmän käynnistysskriptejä jakeluusi sopivalla tavalla, esimerkiksi:
  chkconfig --level 35 httpd on (huomaa kaksi viivaa ennen level sanaa).
  chkconfig --level 35 httpd on (huomaa kaksi viivaa ennen level sanaa).


ln -s /etc/init.d/apache /etc/rc2.d/S35apache
Numero 35 määrittää missä kohtaa käynnistymistä httpd on käynnistettävä. Numero 2 on [[Debian]]in oletus[[ajotaso]]. Varmista, että numerot sopivat jakeluusi, esimerkiksi vertaamalla muihin käynnistysskriptihakemistossa oleviin palveluihin.


==SELinux==
==SELinux==
Rivi 150: Rivi 135:


*Käytäjien kotihakemistoja varten tarvittavat muutokset:
*Käytäjien kotihakemistoja varten tarvittavat muutokset:
  yum install system-config-securitylevel # RedHat
  yum install system-config-securitylevel
*Anna komento:  
*Anna komento:  
  system-config-securitylevel # RedHat
  system-config-securitylevel
*Tarkista, että rasti kohdassa Allow HTTPD to read home directories
*Tarkista, että rasti kohdassa Allow HTTPD to read home directories


*Anna komento:
*Anna komento:
  chcon -t httpd_sys_content_t /home/oppilas/public_html # RedHat
  chcon -t httpd_sys_content_t /home/oppilas/public_html


*Tee sama index.htm tiedostolle
*Tee sama index.htm tiedostolle
Rivi 164: Rivi 149:


[[Luokka:Apache]]
[[Luokka:Apache]]
[[Luokka:Palvelimet]]
[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]
[[Luokka:Opetusmateriaalit]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tällä sivulla käytetty malline: