Ero sivun ”Apache HTTPD” versioiden välillä
p (lamp) |
|||
(32 välissä olevaa versiota 13 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
Apache httpd on [[Apache|Apache-säätiön]] tuottama http-palvelin, joka hallitsee http-palvelinmarkkinoita | {{Ohjelma | ||
| nimi=Apache httpd | |||
| kuva=[[Kuva:Apache_httpd_logo.png|200px]] | |||
| kuvateksti= | |||
| lisenssi=[[Apache-lisenssi]] | |||
| käyttöliittymä=www | |||
| kotisivu=[https://httpd.apache.org/ httpd.apache.org]}} | |||
'''Apache HTTPD''' on [[Apache Software Foundation|Apache-säätiön]] tuottama http-palvelin, joka juuri ja juuri hallitsee http-palvelinmarkkinoita 36.3% markkinaosuudellaan. | |||
==Asennus== | |||
{{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 | *[[nginx]] | ||
*[[Apache HTTPD:n asetukset]] | |||
*[[Apache ja HTTPS]] | |||
*[[Apache-harjoituksia]] | |||
*[[HST]] | |||
*[[LAMP]] | *[[LAMP]] | ||
*[[:Luokka:Apache|Apache-luokka]] | |||
== | ==Aiheesta muualla== | ||
[ | *[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: