Ero sivun ”Apache HTTPD” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(asennus)
 
(23 välissä olevaa versiota 7 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}}
 
'''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|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 [[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
 
== Henkilökortin tuki ==
 
=== 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
  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==
==Katso myös==
*[[Apache httpd:n asetukset]]
*[[nginx]]
*[[Apache HTTPD:n asetukset]]
*[[Apache ja HTTPS]]
*[[Apache ja HTTPS]]
*[[Apache-harjoituksia]]
*[[HST]]
*[[LAMP]]
*[[:Luokka:Apache|Apache-luokka]]
*[[:Luokka:Apache|Apache-luokka]]
*[[LAMP]]


==Aiheesta muualla==
==Aiheesta muualla==
*[http://news.netcraft.com/archives/2007/08/06/august_2007_web_server_survey.html Netcraftin httpd-tilasto elokuulta 2007]
*[https://w3techs.com/technologies/details/ws-apache W3Techsin katsaus Apachen käyttöosuuksiin]


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

Nykyinen versio 23. elokuuta 2023 kello 13.23

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[muokkaa]

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[muokkaa]

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[muokkaa]

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[muokkaa]

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[muokkaa]

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[muokkaa]

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[muokkaa]

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

Henkilökortin tuki[muokkaa]

Yleiset palvelimen asetukset[muokkaa]

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[muokkaa]

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[muokkaa]

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

Katso myös[muokkaa]

Aiheesta muualla[muokkaa]