Tässä ohjeistuksessa käymme läpi kuinka asentaa nginx ja php8.0 Debian 10 käyttöjärjestelmälle. Käymme tässä myös läpi kuinka asentaa php nginxiin.
Mikä on Nginx?
Nginx on www- ja proxy-palvelin, joka käytännössä mahdollistaa verkkosivujen toimivuuden. Nginx on äärimmäisen monipuolinen www-palvelin ja kestää erittäin hyvin isoja määriä sivustovierailijoita. Nginx on hyvä vaihtoehto apache www-palvelimelle.
Mikä on PHP?
PHP eli hypertextprocessor on backend kieli joka mahdollistaa monimutkaisten websovellusten tekemisen. PHP on helppo oppia ja se on myös suhteellisen helppo asentaa. Tällä hetkellä suurinosa verkkosovelluksista on tehty phplla. Esimerkiksi tämäkin verkkosivu pyörii phplla. Nykyaikana php kuitenkin alkaa olla jo vähän vanha kieli vaikka sitä vielä päivitetään. PHPta korvaa JavaScript pohjaiset backend sovellukset kuten NodeJs.
Nginxin asennus
Jotta saamme meidän verkkosivut ja php:n toimimaan, tarvitsemme www-palvelimen. Aloitetaan asentamalla kaikki tarvittavat sovellukset, josta nginx tarvitsee. Jos et käytä root-käyttäjää, muista laittaa aina sudo lauseen alkuun.
$ sudo apt-get install curl gnupg2 ca-certificates lsb-release
$ sudo apt-get update
Tämän jälkeen nginx asennus.
$ sudo apt-get install nginx
Jos tämä kuitenkin epäonnistuu, kokeile seuraavaa:
Sinulta saattaa puuttua tärkeitä lähteitä riippuen sovelluksiin mitä nginx tarvitsee.
Lisätään nginxin mainline-lähde aptin lähdetiedostoon joka sijaitsee /etc/apt/sources.list
$ echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
Tarvitsemme vielä avaimen tätä lähdettä varten
$ curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
Päivitä ja kokeile uudelleen nginxin asennusta.
$ sudo apt-get update
$ sudo apt-get install nginx
Jos teit asennuksen oikein, sinun pitäisi nähdä seuraava sivu kun menet palvelimesi osoitteeseen verkossa:
Jos et tarvitse phpta sivuillesi, niin voit aloittaa normaalin käytön.
Löydät verkkosivu tiedostosi seuraavasta sijainnista: /var/www/html
Korvaa kohteessa oleva index.nginx-debian.html
tiedosto omalla index.html
tiedostolla.
PHP 8.0 asennus
* Otathan huomioon, että käytämme jokaisessa komennossa php8.0
versiota, jos haluat asentaa jonkin muun, kuten php 7.3, korvaa php8.0
php7.3
Ensin lisäämme phpn gpg avaimet ja arkistot.
$ sudo apt-get install wget apt-transport-https
$ wget https://packages.sury.org/php/apt.gpg
$ sudo apt-key add apt.gpg
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
$ sudo apt-get update
Tämän jälkeen asenna kaikki tarvittavat phpn lisäosat ja php itse.
$ sudo apt-get install php8.0 php8.0-fpm php8.0-common php8.0-mysql php8.0-gmp php8.0-curl php8.0-intl php8.0-mbstring php8.0-xmlrpc php8.0-gd php8.0-xml php8.0-cli php8.0-zip php8.0-soap php8.0-imap
Kuinka configuroida php8.0 nginxille
* Otathan huomioon, että käytämme jokaisessa komennossa php8.0
versiota, jos haluat asentaa jonkin muun, kuten php 7.3, korvaa php8.0
php7.3
Nytten kun olemme asentanee Nginxin ja PHPn, voimme siirtyä seuraavaan vaiheeseen.
Nginxin www-asetukset löytyvät /etc/nginx/site-avaible/
kansiosta, käytössä olevat asetukset löytyvät linkkinä /etc/nginx/sites-enabled/
kansiosta.
Normaalisti näissä kansioissa on yksi tiedosto ja se on nimetty default
. Voit muokata tätä samaa tiedostoa.
Lisää uusi location määritelmä aiemman location yläpuolelle:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Kun olet lisännyt tämän, voit lisätä index
kenttään index.php
Kun olet lisännyt molemmat kohdat, sinun default
tiedosto pitäisi näyttää tältä (ilman kommentteja):
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html index.php;
server_name _;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location / {
try_files $uri $uri/ =404;
}
}
Tämän jälkeen tallenna tiedosto, testaa onko sinulla virheitä asetuksissa nginx -t komennolla. Jos on, korjaa ne ja sen jälkeen uudelleenkäynnistä nginx komennolla service nginx restart tai systemctl restart nginx.
Jotta voimme testata, toimiiko php, voimme korvata index.nginx-debian.html
omalla index.php
joka näyttää seuraavalta:
<?php
//Tulostetaan phpn tiedot verkkosivulle
phpinfo();
?>
Jos php toimii oikein, verkkosivun pitäisi tulostaa phpn tiedot: