Ero sivun ”Apache HTTPD” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
pEi muokkausyhteenvetoa
(15 välissä olevaa versiota 5 käyttäjän tekeminä ei näytetä)
Rivi 5: Rivi 5:
  | lisenssi=[[Apache-lisenssi]]  
  | lisenssi=[[Apache-lisenssi]]  
  | käyttöliittymä=www  
  | käyttöliittymä=www  
  | kotisivu=[http://httpd.apache.org/ httpd.apache.org]}}
  | kotisivu=[https://httpd.apache.org/ httpd.apache.org]}}


Apache httpd on [[Apache|Apache-säätiön]] tuottama http-palvelin, joka hallitsee http-palvelinmarkkinoita 50% markkinaosuudellaan.
Apache HTTPD on [[Apache Software Foundation|Apache-säätiön]] tuottama http-palvelin, joka juuri ja juuri hallitsee http-palvelinmarkkinoita 36.3% markkinaosuudellaan.


==Asennus==
==Asennus==
{{asenna|Apache|apache2}}
{{asenna|Apache|apache2 tai httpd}}


==Ohjeita==
'''Debian'''-pohjaisissa jakeluissa, kuten '''Ubuntussa''', paketin nimi on ''apache2''. '''Red Hat''' -pohjaisissa jakeluissa, kuten '''CentOSissa''', paketin nimi on puolestaan ''httpd''. Sama nimeämiskäytäntö jatkuu binäärien nimissä ja tiedostopoluissa. Tässä ohjeessa pyritään huomioimaan nimen eri versiot koko ajan.
Mikäli Apache ei ole käynnissä. Käynnistäminen tapahtuu komennolla
 
  sudo /etc/init.d/apache2 start
== Palvelinprosessin käynnistäminen ja hallinta ==
Näissä ohjeissa Apachea hallitaan käyttäen [[systemd|systemd-järjestelmää]]. Systemd on käytössä useimmissa suosituissa Linux-jakeluissa. Varsinkin internetistä etsimällä löytää muitakin ohjeita prosessien hallitsemiseksi. Apachella on oma apachectl-skriptinsä, jota voi niin ikään käyttää.
 
Mikäli Apache ei ole käynnissä, käynnistäminen tapahtuu komennolla
  sudo systemctl start <palvelinprosessi>
Koska Apache on eri jakeluissa eri nimellä, ylläolevassa pitää korvata ''<palvelinprosessi>'' kunkin Linux-jakelun omalla nimityksellä.
Esimerkiksi Ubuntu- ja Debian-palvelimissa Apache-prosessin nimi on '''apache2''' ja käynnistys tapahtuu näin:
sudo systemctl start apache
Red Hat- ja CentOS-palvelimissa Apache löytyy nimellä '''httpd'''
sudo systemctl start httpd


Pysäytys
Pysäytys
  sudo /etc/init.d/apache2 stop
  sudo systemctl stop <palvelinprosessi>


Apachen uudelleen käynnistäminen tapahtuu komennolla
Apachen uudelleen käynnistäminen tapahtuu komennolla
  sudo /etc/init.d/apache2 restart
  sudo systemctl restart <palvelinprosessi>
 
Jos Apache halutaan käynnistää automaattisesti palvelimen uudelleenkäynnistyksen jälkeen, se tapahtuu komennolla
sudo systemctl enable <palvelinprosessi>
 
== Document root ==
Oletuksena Apache tarkkailee tiettyä kansiota, jota se pitää palvelimen juurena. Tuohon kansioon sijoitetut HTML-tiedostot palvelin näyttää selaimella vierailtaessa.
Usein document root on polussa
/var/www/html
Tämä kannattaa tarkistaa Apachen asetuksista. Asetustiedostossa on DocumentRoot -niminen direktiivi, joka asettaa oletussijainnin.
 
== Web-sivujen katseleminen ==
Kun Apache on käynnissä, voi verkkoselaimella vierailla palvelimen IP-osoitteessa. Mikäli olet asentanut Apachen omalle pöytäkoneellesi, voit käyttää [[loopback]]-osoitetta '''127.0.0.1'''. Kirjoita osoite verkkoselaimen osoiteriville, jolloin Apache näyttää verkkosivuston.
 
== Apachen asetukset ==
Apachen asetukset löytyvät /etc-kansion alta apachen omasta kansiosta. Sen nimi vaihtelee Linux-jakeluittain.
Ubuntussa ja Debianissa asetukset on tallennettu polkuun
/etc/apache2/
Red Hatissa ja CentOS -palvelimissa asetukset löytyvät polusta
/etc/httpd/
 
Kansion alla on laajempi alikansiorakenne, joka näyttää tämän tapaiselta:
* conf
** httpd.conf
** magic
* conf.d
** autoindex.conf
** README
** userdir.conf
* conf.modules.d
** 00-base.conf
** 00-ssl.conf
** 01-cgi.conf
 
Oheinen listaus on CentOS-palvelimelta. Linux-jakelusta ja Apache-konfiguraatiosta riippuen se voi näyttää erilaiselta.
 
 
Palvelimen pääkonfiguraatiotiedosto on '''httpd.conf''' tai '''apache2.conf''' jakelusta riippuen. Palvelimeen tutustumisen voi aloittaa lukemalla sen.
 
Monesti kuitenkin Apache konfiguroidaan useaan eri tiedostoon. conf.d -kansiossa voi olla jokaiselle palvelimen tarjoamalle web-sivustolle oma konfiguraatiotiedostonsa. Apache lukee nämä tiedostot osaksi konfiguraatiotaan siten, kuin ''httpd.conf''-tiedostossa on määrätty.
 
Apache lukee konfiguraatiotiedostot aakkosjärjestyksessä. Tiedostonimien alkuun voi laittaa järjestysnumerot oikean järjestyksen takaamiseksi, kuten tässäkin esimerkissä on tehty.
 
Edellä mainittiin, että konfiguraatiotiedostojen hakemistorakenne voi vaihdella. Debian- ja Ubuntu-palvelimella kansiorakenne on hieman erilainen. Siellä konfiguraatiokansiosta löytyy alikansiot ''sites-available'' ja ''sites-enabled''. Sites-available -kansioon tallennetaan web-sivustojen konfiguraatiot, ja ne kytketään käyttöön tekemällä [[symbolinen linkki]] sites-enabled -kansioon.
 
== Moduulit ==
Apache-palvelimen toimintaa voi muunnella lataamalla käyttöön erilaisia moduuleja. Näitä on paljon eri tarkoituksiin, eikä tässä ole mahdollista käydä asiaa tarkemmin läpi. Usein käytettyjä moduuleja ovat esimerkiksi ''mod_rewrite'', ''mod_userdir'' ja ''mod_ssl''.
 
conf.modules.d -kansiossa asetetaan, mitkä moduulit on otettu käyttöön. Se tehdään lisäämällä jokaiselle moduulille oma konfiguraatiotiedostonsa.
 
Debian-pohjaiset järjestelmät jakavat moduulit kahteen kansioon. Toinen on ''mods-available'' ja ''toinen mods-enabled''. Moduulit asennetaan mods-available -kansioon, ja [[ln|linkitetään]] sieltä mods-enabled -kansioon. Debian-pohjaisissa jakeluissa tämä tehdään kahdella eri komennolla: ''a2enmod'' ja  ''a2dismod''.
 
== Apachen lokit ==
 
Apachen lokitiedostot löytyvät /var/log -kansiosta saman logiikan mukaan kuin konfiguraatiotiedostotkin:
Debian-pohjaisissa jakeluissa polku on
/var/log/apache2
Red Hat -pohjaisissa jakeluissa
/var/log/httpd
 
Lokeja on kaksi erilaista:
* access.log
* error.log


== Sähköisen henkilökortin tuki ==
== Sähköisen henkilökortin tuki ==


=== Yleiset serverin asetukset ===
=== Yleiset palvelimen asetukset ===
 
Palvelimella tulee olla CA-varmentajan varmenteet paikallisesti. Ne voi ladata Väestörekisterikeskuksen [http://fineid.fi/default.aspx?docid=2237&site=9&id=332 varmennesivulta], joskin turvallisempaa on käyttää henkilökortilta [[HST#CA-varmenteiden_lukeminen_kortilta]] otettua kopiota. Yleisin tarvittava varmenne on ''juurivarmenne'' tai ''Valtion kansalaisvarmenteet''.


   SSLCACertificateFile /etc/pki/vrkrootca.pem
   SSLCACertificateFile /etc/pki/vrkrootca.pem
Rivi 30: Rivi 103:


Huomioi, että tiedoston alussa on oltava
Huomioi, että tiedoston alussa on oltava
   -----BEGIN CERTIFICATE-----  
   -----BEGIN CERTIFICATE-----


=== .htaccess tiedosto ===


=== .htaccess tiedosto ===
Apache-palvelimen asetuksia voi muuttaa kansiokohtaisesti erityisen .htaccess-piilotiedoston avulla. Tällä voidaan ottaa käyttöön Apachen moduuleita, ja rajoittaa tai lisätä oikeuksia.


Tunnistettavan URLin hakemistossa ''.htaccess'' tiedoston sisältö:
Tunnistettavan URLin hakemistossa ''.htaccess'' tiedoston sisältö:
Rivi 44: Rivi 118:


Tunnistetun SSL-yhteyden aikana seuraavat ympäristömuuttjat:
Tunnistetun SSL-yhteyden aikana seuraavat ympäristömuuttjat:


==Katso myös==
==Katso myös==
*[[Apache httpd:n asetukset]]
*[[nginx]]
*[[Apache HTTPD:n asetukset]]
*[[Apache ja HTTPS]]
*[[Apache ja HTTPS]]
* [[HST]]
*[[Apache-harjoituksia]]
*[[HST]]
*[[LAMP]]
*[[LAMP]]
*[[:Luokka:Apache|Apache-luokka]]
*[[:Luokka:Apache|Apache-luokka]]


==Aiheesta muualla==
==Aiheesta muualla==
*[http://news.netcraft.com/archives/2011/02/15/february-2011-web-server-survey.html Netcraftin httpd-tilasto helmikuulta 2011]
*[https://w3techs.com/technologies/details/ws-apache W3Techsin katsaus Apachen käyttöosuuksiin]


[[Luokka:Verkko]]
[[Luokka:Verkko]]
[[Luokka:Apache]]
[[Luokka:Apache]]

Versio 9. joulukuuta 2020 kello 10.25

Apache httpd

Käyttöliittymä www
Lisenssi Apache-lisenssi
Kotisivu httpd.apache.org

Apache HTTPD on Apache-säätiön tuottama http-palvelin, joka juuri ja juuri hallitsee http-palvelinmarkkinoita 36.3% markkinaosuudellaan.

Asennus

Apache löytyy useimpien jakeluiden paketinhallinnasta nimellä apache2 tai httpd. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.

Debian-pohjaisissa jakeluissa, kuten Ubuntussa, paketin nimi on apache2. Red Hat -pohjaisissa jakeluissa, kuten CentOSissa, paketin nimi on puolestaan httpd. Sama nimeämiskäytäntö jatkuu binäärien nimissä ja tiedostopoluissa. Tässä ohjeessa pyritään huomioimaan nimen eri versiot koko ajan.

Palvelinprosessin käynnistäminen ja hallinta

Näissä ohjeissa Apachea hallitaan käyttäen systemd-järjestelmää. Systemd on käytössä useimmissa suosituissa Linux-jakeluissa. Varsinkin internetistä etsimällä löytää muitakin ohjeita prosessien hallitsemiseksi. Apachella on oma apachectl-skriptinsä, jota voi niin ikään käyttää.

Mikäli Apache ei ole käynnissä, käynnistäminen tapahtuu komennolla

sudo systemctl start <palvelinprosessi>

Koska Apache on eri jakeluissa eri nimellä, ylläolevassa pitää korvata <palvelinprosessi> kunkin Linux-jakelun omalla nimityksellä. Esimerkiksi Ubuntu- ja Debian-palvelimissa Apache-prosessin nimi on apache2 ja käynnistys tapahtuu näin:

sudo systemctl start apache

Red Hat- ja CentOS-palvelimissa Apache löytyy nimellä httpd

sudo systemctl start httpd

Pysäytys

sudo systemctl stop <palvelinprosessi> 

Apachen uudelleen käynnistäminen tapahtuu komennolla

sudo systemctl restart <palvelinprosessi> 

Jos Apache halutaan käynnistää automaattisesti palvelimen uudelleenkäynnistyksen jälkeen, se tapahtuu komennolla

sudo systemctl enable <palvelinprosessi>

Document root

Oletuksena Apache tarkkailee tiettyä kansiota, jota se pitää palvelimen juurena. Tuohon kansioon sijoitetut HTML-tiedostot palvelin näyttää selaimella vierailtaessa. Usein document root on polussa

/var/www/html

Tämä kannattaa tarkistaa Apachen asetuksista. Asetustiedostossa on DocumentRoot -niminen direktiivi, joka asettaa oletussijainnin.

Web-sivujen katseleminen

Kun Apache on käynnissä, voi verkkoselaimella vierailla palvelimen IP-osoitteessa. Mikäli olet asentanut Apachen omalle pöytäkoneellesi, voit käyttää loopback-osoitetta 127.0.0.1. Kirjoita osoite verkkoselaimen osoiteriville, jolloin Apache näyttää verkkosivuston.

Apachen asetukset

Apachen asetukset löytyvät /etc-kansion alta apachen omasta kansiosta. Sen nimi vaihtelee Linux-jakeluittain. Ubuntussa ja Debianissa asetukset on tallennettu polkuun

/etc/apache2/

Red Hatissa ja CentOS -palvelimissa asetukset löytyvät polusta

/etc/httpd/

Kansion alla on laajempi alikansiorakenne, joka näyttää tämän tapaiselta:

  • conf
    • httpd.conf
    • magic
  • conf.d
    • autoindex.conf
    • README
    • userdir.conf
  • conf.modules.d
    • 00-base.conf
    • 00-ssl.conf
    • 01-cgi.conf

Oheinen listaus on CentOS-palvelimelta. Linux-jakelusta ja Apache-konfiguraatiosta riippuen se voi näyttää erilaiselta.


Palvelimen pääkonfiguraatiotiedosto on httpd.conf tai apache2.conf jakelusta riippuen. Palvelimeen tutustumisen voi aloittaa lukemalla sen.

Monesti kuitenkin Apache konfiguroidaan useaan eri tiedostoon. conf.d -kansiossa voi olla jokaiselle palvelimen tarjoamalle web-sivustolle oma konfiguraatiotiedostonsa. Apache lukee nämä tiedostot osaksi konfiguraatiotaan siten, kuin httpd.conf-tiedostossa on määrätty.

Apache lukee konfiguraatiotiedostot aakkosjärjestyksessä. Tiedostonimien alkuun voi laittaa järjestysnumerot oikean järjestyksen takaamiseksi, kuten tässäkin esimerkissä on tehty.

Edellä mainittiin, että konfiguraatiotiedostojen hakemistorakenne voi vaihdella. Debian- ja Ubuntu-palvelimella kansiorakenne on hieman erilainen. Siellä konfiguraatiokansiosta löytyy alikansiot sites-available ja sites-enabled. Sites-available -kansioon tallennetaan web-sivustojen konfiguraatiot, ja ne kytketään käyttöön tekemällä symbolinen linkki sites-enabled -kansioon.

Moduulit

Apache-palvelimen toimintaa voi muunnella lataamalla käyttöön erilaisia moduuleja. Näitä on paljon eri tarkoituksiin, eikä tässä ole mahdollista käydä asiaa tarkemmin läpi. Usein käytettyjä moduuleja ovat esimerkiksi mod_rewrite, mod_userdir ja mod_ssl.

conf.modules.d -kansiossa asetetaan, mitkä moduulit on otettu käyttöön. Se tehdään lisäämällä jokaiselle moduulille oma konfiguraatiotiedostonsa.

Debian-pohjaiset järjestelmät jakavat moduulit kahteen kansioon. Toinen on mods-available ja toinen mods-enabled. Moduulit asennetaan mods-available -kansioon, ja linkitetään sieltä mods-enabled -kansioon. Debian-pohjaisissa jakeluissa tämä tehdään kahdella eri komennolla: a2enmod ja a2dismod.

Apachen lokit

Apachen lokitiedostot löytyvät /var/log -kansiosta saman logiikan mukaan kuin konfiguraatiotiedostotkin: Debian-pohjaisissa jakeluissa polku on

/var/log/apache2

Red Hat -pohjaisissa jakeluissa

/var/log/httpd

Lokeja on kaksi erilaista:

* access.log
* error.log

Sähköisen henkilökortin tuki

Yleiset palvelimen asetukset

Palvelimella tulee olla CA-varmentajan varmenteet paikallisesti. Ne voi ladata Väestörekisterikeskuksen varmennesivulta, joskin turvallisempaa on käyttää henkilökortilta HST#CA-varmenteiden_lukeminen_kortilta otettua kopiota. Yleisin tarvittava varmenne on juurivarmenne tai Valtion kansalaisvarmenteet.

 SSLCACertificateFile /etc/pki/vrkrootca.pem
 SSLVerifyClient none

Huomioi, että tiedoston alussa on oltava

 -----BEGIN CERTIFICATE-----

.htaccess tiedosto

Apache-palvelimen asetuksia voi muuttaa kansiokohtaisesti erityisen .htaccess-piilotiedoston avulla. Tällä voidaan ottaa käyttöön Apachen moduuleita, ja rajoittaa tai lisätä oikeuksia.

Tunnistettavan URLin hakemistossa .htaccess tiedoston sisältö:

 SSLVerifyClient require
 SSLVerifyDepth 10 
 SSLOptions +StdEnvVars +ExportCertData

Ympäristömuuttujat

Tunnistetun SSL-yhteyden aikana seuraavat ympäristömuuttjat:

Katso myös

Aiheesta muualla