Nykyinen versio |
Oma tekstisi |
Rivi 1: |
Rivi 1: |
| {{jakeluspesifinen}}
| | Kyseessä on OPEKO:n kurssille (30-31.1.2006 / Timo Kapanen) tehtyä materiaalia, josta on poistettu kuvat ja muita vain kurssille kuuluvaa materiaalia. |
| 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:====
| | Tarkoituksena on luoda 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. |
| * 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 |
| | Asenna apache: |
| | yum install httpd |
|
| |
|
| ===Asennus ja käynnistys===
| | Käynnistä Apache: |
| *Asenna [[Apache httpd|Apache]] jakelun asennuskomennolla, esimerkiksi:
| | service httpd start |
| yum install httpd # RedHat tai
| |
| sudo apt-get install apache2 # Debian
| |
|
| |
|
| *Käynnistä Apache:
| | Tarkista Apachen toimivuus selaimella (127.0.0.1) |
| service httpd start # RedHat tai
| |
| sudo /etc/init.d/apache2 start # Ubuntu
| |
|
| |
|
| *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 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.
| | Käyttäjien kotihakemiston käyttöönotto |
| | rivi 339: #UserDir disable (lisää risuaita) |
| | rivi 346: UserDir public_html (poista risuaita) |
|
| |
|
| 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äynnistä Apache uudestaan: service httpd restart |
|
| |
|
| *Käyttäjien kotihakemiston käyttöönotto:
| | Luo index.htm oppilas käyttäjän kotihakemistoon public_html nimiseen kansioon. Muuta kotihakemiston oikeuksiksi 711 |
| rivi 339: #UserDir disable (lisää risuaita)
| | Salasanasuojattujen hakemistojen tekeminen |
| 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.
| | Kirjoita riviltä 383 alkaen seuraavat rivit: |
| | <Directory /home/oppilas/public_html/suojattu*> |
| | AllowOverride AuthConfig |
| | AuthUserFile /home/oppilas/public_html/.htpasswd |
| | AuthType Basic |
| | |
| | Require valid-user |
| | </Directory> |
|
| |
|
| cd /etc/apache2/mods-enabled/
| | Käynnistä httpd uudelleen |
| sudo ln -s ../mods-available/userdir.conf userdir.conf
| | Tee public_html hakemistoon suojattu niminen alihakemisto |
| sudo ln -s ../mods-available/userdir.load userdir.load
| | Tee suojattu hakemistoon index.htm tiedosto |
| | Luo .htpasswd tiedosto ja määritä siihen käyttäjä ja salasana: |
| | htpasswd -c .htpasswd mulonlupa |
| | Muuta kyseinen tiedosto luettavaksi (chmod 644 .htpasswd) |
| | Testaa |
|
| |
|
| *Käynnistä Apache uudestaan:
| | Mukautetun virheilmoituksen tekeminen |
| service httpd restart # RedHat tai
| |
| 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
| | Mikäli käyttäjä painaa Cancel-painiketta salasanaa kysyttäessä, saa hän Authorization required virheilmoituksen (virhe 401). Muutetaan kyseinen ilmoitus toiseksi. |
|
| |
|
| mkdir ~oppilas/public_html
| | Lisää riville 809 seuraava teksti: |
| $EDITOR ~oppilas/public_html/index.html
| | ErrorDocument 401 /eilupaa.htm |
| chmod 711 ~oppilas/public_html
| |
| chmod a+r ~oppilas/public_html/index.html
| |
|
| |
|
| ===Salasanasuojattujen hakemistojen tekeminen===
| | Luo /var/www/html/eilupaa.htm tiedosto haluamillasi teksteillä |
| | Käynnistä Apache uudestaan |
| | Testaa |
|
| |
|
| *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:
| | Palomuurin portin 80 avaaminen |
|
| |
|
| <Directory /var/www/suojattu*>
| | Anna komento setup, siirry kohtaan firewall konfiguration ja valitse www. |
| AllowOverride AuthConfig
| | Vaihtoehtoisesti lisää tiedostoon /etc/sysconfig/iptables rivi |
| AuthUserFile /var/www/suojattu/.htpasswd
| | -A RH-Firewall-1-INPUT -m state NEW -m tcp -p tcp –dport 80 -j ACCEPT |
| AuthType Basic
| | ja anna sen jälkeen komento: service iptables restart |
| AuthName "Salasanaa vaativa hakemisto"
| |
| Require valid-user
| |
| </Directory>
| |
|
| |
|
| *Käynnistä palvelin uudelleen
| | Testaa (Kokeile naapurikoneesta) |
| *Tee hakemistoon <tt>/var/www/</tt> alihakemisto nimeltä <tt>suojattu</tt>
| | Rajoitetaan pääsy vain tietystä IP-osoitteesta |
| cd /var/www/
| |
| mkdir suojattu
| |
| *Luo kansioon .htpasswd tiedosto ja määritä siihen käyttäjä ja salasana:
| |
| cd suojattu
| |
| sudo htpasswd -c .htpasswd tunnus
| |
| *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>
| | Lisää riville 391 alkaen tekstit: |
| | <Directory /home/oppilas/*> |
| | Order deny.allow |
| | Deny from all |
| | Allow from sallittavan.koneen.ip.osoite |
| | </Directory> |
|
| |
|
| ===Mukautetun virheilmoituksen tekeminen===
| | Käynnistä httpd uudestaan |
| | Testaa |
| | Kommentoi edellä tekemäsi muutokset |
| | Käynnistä httpd uudestaan |
| | Testaa |
|
| |
|
| *Mikäli käyttäjä painaa Cancel-painiketta salasanaa kysyttäessä, saa hän Authorization required virheilmoituksen (virhe 401). Muutetaan kyseinen ilmoitus toiseksi.
| | VirtualHost |
|
| |
|
| *Lisää tiedostoon seuraava teksti
| | Lisää httpd.conf loppuun |
| ErrorDocument 401 /eilupaa.html
| | <VirtualHost 127.0.0.1> |
| | ServerAdmin webmaster@wwwmalli.jee |
| | DocumentRoot /home/oppilas/public_html |
| | ServerName wwwmalli.jee |
| | ServerAlias www.wwwmalli.jee |
| | ErrorLog logs/wwwmalli.jee-error_log |
| | CustomLog logs/wwwmalli.jee-access_log common |
| | </VirtualHost> |
|
| |
|
| *Luo /var/www/eilupaa.html tiedosto haluamillasi teksteillä
| | sekä muuta: |
| *Käynnistä Apache uudestaan
| | # Use name-based virtual hosting. |
| *Testaa
| | # |
| | NameVirtualHost 127.0.0.1 |
|
| |
|
| Jotkut selaimet näyttävät omaa virheilmoitustaan http-palvelimen antaman ilmoituksen sijaan ("friendly error messages"). Muuta tarvittaessa selaimesi asetuksia.
| | Uudelleen käynnistä Apache |
| | Lisää asiakaskoneen /etc/hosts tiedostoon rivi |
| | apache.palvelimen.ip.osoite wwwmalli.jee |
| | testaa toimivuus |
|
| |
|
| ===VirtualHost===
| | Webalizer statistiikka |
|
| |
|
| *Lisää httpd.confin loppuun (RedHat) tai sites-enabled-kansioon tiedostoon:
| | Asenna Webalizer |
| <VirtualHost apache.palvelimen.ip.osoite>
| | yum install webalizer |
| ServerAdmin webmaster@wwwmalli.jee
| |
| DocumentRoot /home/oppilas/public_html
| |
| ServerName wwwmalli.jee
| |
| ServerAlias www.wwwmalli.jee
| |
| ErrorLog logs/wwwmalli.jee-error_log
| |
| CustomLog logs/wwwmalli.jee-access_log common
| |
| </VirtualHost>
| |
|
| |
|
| *sekä muuta:
| | Anna komento webalizer |
| # Use name-based virtual hosting.
| |
| NameVirtualHost apache.palvelimen.ip.osoite
| |
|
| |
|
| *Käynnistä Apache uudelleen
| | Käynnistä Apache uudestaan |
| *Lisää asiakaskoneen /etc/hosts tiedostoon rivi:
| | Testaa osoitteessa 127.0.0.1/usage |
| apache.palvelimen.ip.osoite wwwmalli.jee
| |
| *Testaa toimivuus
| |
|
| |
|
| == Ongelmanratkaisuharjoitus: Piwik-tilastointi ==
| | 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 |
| | Testaa osoitteessa apache.palvelimen.ip.osoite/usage |
|
| |
|
| Katso http://piwik.org/ - täytä ohjeet tähän.
| | Määritä webalizer automaattiseksi |
| | Anna komento rootin kotihakemistossa: |
| | crontab -e |
| | ja lisää rivi |
| | 30 * * * * webalizer |
| | (Insert mahdollistaa kirjoitustilan, esc lopettaa kirjoitustilan, :w tallentaa ja :q lopettaa) |
|
| |
|
| | Määritä Apache käynnistymää automaattisesti |
| | Anna komento: chkconfig --level 35 httpd on (huomaa kaksi viivaa ennen level sanaa). |
|
| |
|
| ==Webalizer statistiikka==
| | SELinuxista |
|
| |
|
| Asenna [[Webalizer]]
| | Jos SELinux käytössä joudut tekemään erilaisia muutoksia määrityksiin. Alla yksi esimerkki: |
| yum install webalizer # RedHat tai
| |
|
| |
|
| *Anna komento webalizer
| | Käytäjien kotikansioita varten tarvittavat muutokset: |
| | yum install system-config-securitylevel |
| | Anna komento: |
| | system-config-securitylevel |
| | Tarkista, että rasti kohdassa Allow HTTPD to read home directories |
|
| |
|
| *Käynnistä Apache uudestaan
| | Anna komento: |
| *Testaa osoitteessa 127.0.0.1/usage
| | chcon -t httpd_sys_content_t /home/oppilas/public_html |
|
| |
|
| *Jos haluat mahdollistaa tilastojen näkymisen muillekin kuin 127.0.0.1:lle, niin muuta rajoituksia tiedostossa /etc/httpd/conf.d/webalizer.conf
| | tee sama index.htm tiedostolle |
| *Käynnistä Apache uudestaan
| |
| *Testaa osoitteessa apache.palvelimen.ip.osoite/usage
| |
|
| |
|
| *Määritä webalizer automaattiseksi
| | Lisätietoja osoitteesta: |
| | |
| *Anna komento rootin kotihakemistossa:
| |
| crontab -e
| |
| ja lisää rivi
| |
| 30 * * * * webalizer
| |
| | |
| 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
| |
| 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).
| |
| | |
| 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==
| |
| | |
| Jos SELinux käytössä joudut tekemään erilaisia muutoksia määrityksiin. Alla yksi esimerkki
| |
| | |
| *Käytäjien kotihakemistoja varten tarvittavat muutokset:
| |
| yum install system-config-securitylevel # RedHat
| |
| *Anna komento:
| |
| system-config-securitylevel # RedHat
| |
| *Tarkista, että rasti kohdassa Allow HTTPD to read home directories
| |
| | |
| *Anna komento:
| |
| chcon -t httpd_sys_content_t /home/oppilas/public_html # RedHat
| |
| | |
| *Tee sama index.htm tiedostolle
| |
| | |
| *Lisätietoja osoitteesta:
| |
| http://fedora.redhat.com/docs/selinux-apache-fc3/ | | http://fedora.redhat.com/docs/selinux-apache-fc3/ |
|
| |
|
| [[Luokka:Apache]] | | [[Luokka:Apache]] |
| [[Luokka:Ohjeet]]
| |
| [[Luokka:Opetusmateriaalit]]
| |