Sett opp NGINX, PHP-FPM og MariaDB på Debian 8

Sett opp NGINX, PHP-FPM og MariaDB på Debian 8

Denne guiden viser deg hvordan du installerer og konfigurerer en "alternativ" LAMP-stabel på Debian 8 ved å bruke NGINX, PHP Fast Process Manager og MariaDB.

NGINX

NGINX er en "revers proxy first, webserver second". Det er et populært og voksende alternativ til Apache, og tilbyr større fleksibilitet og bedre ytelse i mange tilfeller. I denne opplæringen vil vi bruke den som vår webserver.

Start din favoritt SSH-klient og logg på serveren din. For Windows-brukere er "PuTTY" en gratis og lett SSH-klient. Linux- og Mac-brukere kan bruke terminalen som som standard følger med deres operativsystem. For denne opplæringen vil vi anta at du er logget på serveren din som "root"-bruker.

For det første, la oss bare sørge for at alt er oppdatert. Skriv inn følgende for å se etter og deretter installere oppdateringer.

apt-get update && apt-get upgrade

Vi vil redigere konfigurasjonsfilene våre i vim. Vim er ikke installert som standard, så la oss installere det!

apt-get install vim

Nå er det på tide å installere NGINX. Vi vil installere den nyeste versjonen av NGINX fra det offisielle NGINX Debian-depotet.

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo 'deb http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
echo 'deb-src http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
apt-get update && apt-get install nginx

Nå må vi justere NGINX-konfigurasjonen litt. Naviger til konfigurasjonskatalogen.

cd /etc/nginx

En rask vim-leksjon

Bruk piltastene til å navigere i tekstdokumentet. For å begynne å gjøre endringer, trykk på "sett inn"-knappen på tastaturet. Hvis tastaturet ditt ikke har en innsettingsknapp, trykker du på "i"-tasten. Mot bunnen av vim vil du legge merke til at det nå står "INSERT". Sett inn-modus lar deg slette via tilbaketasten eller sette inn nye tegn ved å skrive dem.

La oss åpne opp nginx.confog rote rundt:

vi nginx.conf

La oss endre standardbruker, sjekke antall arbeidsprosesser og slå av tilgangsloggen.

Direktivene "user" og "worker_processes" er nær toppen. Prøv verdiene nedenfor:

Note that you'll want to set "worker_processes" to the number of CPU cores available on your server. In this example, we have 1, which is the NGINX default.

user www-data;
worker_processes 1;

Vi vil også deaktivere tilgangsloggen for å forbedre I/O-ytelsen. Naviger nedover med piltastene til du finner "access_log". Endre den til følgende:

access_log off;

Og til slutt vil vi sette "client_max_body_size" til å samsvare med noen endringer som er gjort i PHP senere. La oss redde bryet og gjøre det nå. Legg til rett under "access_log":

client_max_body_size 12m;

Når du er ferdig med å redigere, trykk "Esc" på tastaturet. Vim vil ikke lenger si "INSERT" mot bunnen av filen.

For å lagre endringene våre og avslutte vim, trykk på følgende tastesekvens:

SHIFT :(colon)
wq
Press "Enter"

Ovennevnte vim kung fu vil skrive endringene dine til disk og avslutte vim, og slippe deg tilbake til bash-skallet.

Nå må vi lage en stedsspesifikk konfigurasjon for vårt eksempel! Vi vil også slette de andre eksempelkonfigurasjonene. Prøv følgende:

cd conf.d
rm example_ssl.conf default.conf
vi my_site.conf

Vi vil lage en kort og enkel www.confbasert løst på standard NGINX-konfigurasjonen, men med noen få justeringer. Trykk på Insert og du kan kopiere/lime inn eksemplet nedenfor.

Don't forget to edit the "root" directive to point to the root directory of your website, and "server_name" to correspond to your domain.

server {
    listen 80;

    root /path/to/your/website;
    index index.php index.html index.htm;

    server_name mydomainname.com www.mydomainname.com;

    location / {
            try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

Nå er vi ferdige med NGINX-konfigurasjonsdelen av denne opplæringen. Vi starter NGINX på nytt om en liten stund, rett etter at vi har installert PHP.

PHP-FPM

PHP-FPM er PHP Fast Process Manager. Det er nødvendig når du bruker NGINX, fordi i motsetning til Apache, kjører ikke NGINX PHP som en modul. Dette ble gjort for å redusere NGINXs minneavtrykk. Husker du den delen om at NGINX først og fremst er en omvendt proxy? Her er hvor det spiller inn; PHP-forespørsler sendt til NGINX blir matet til PHP-FPM for å gjøre tunge løft.

La oss installere PHP-FPM.

apt-get install php5-fpm php5-mysqlnd

Note that depending on what your PHP scripts require, you may have to install other PHP modules not included by default. Popular ones are php5-gd and php5-mcrypt. You can install these with the following command.

apt-get install php5-module_name_here

Nå som vi har installert PHP-FPM, vil vi gjøre noen raske endringer for å forbedre sikkerheten og funksjonaliteten.

cd /etc/php5/fpm
vi php.ini

På tide med nok en rask vim-leksjon! Den php.inifilen er helt enorm. Det vil ta hele dagen å lete etter noen få nøkkelverdier. Så siden vi vet hva vi ser etter, søker vi. Skriv inn følgende:

/upload_max_filesize

Dette er som standard satt til 2 megabyte. Hvis du vil tillate brukere å laste opp filer til PHP-applikasjonene som er større enn 2 megabyte, må du endre dette. 10M er sannsynligvis en sikker innsats for nå, men høyere verdier er også akseptable. Denne innstillingen vil variere mellom konfigurasjoner. For veiledningens skyld:

upload_max_filesize = 10M

Nok en åpenbar sikkerhetsfeil. Scroll ned litt lenger eller søk. Vi må slå "allow_url_fopen" til "Av". Dette vil hindre PHP fra å kjøre PHP-filer som er vert for FJERN, ellers kjent som RFI (Remote File Inclusion). Mange servere blir hacket på denne måten.

allow_url_fopen = Off

Og fordi vi endret "upload_max_filesize", må vi nå endre "post_max_size". Denne verdien bør være litt større enn "upload_max_filesize", fordi vi må ta hensyn til overhead knyttet til våre forespørsler behandlet av PHP.

La oss søke en gang til med "/post_max_size".

post_max_size = 12M

Note that you'll have to go back to your NGINX configuration and edit "client_max_body_size" if you decide to go with larger values than these examples for your PHP file sizes.

Det er omtrent det for nå. Pass på at du ikke er i redigeringsmodus ved å trykke "Esc". Lagre og avslutt vim.

SHIFT :(colon)
wq
Press 'Enter'

PHP-FPM-oppsettet er fullført.

MariaDB

Selv i en verden som kontinuerlig beveger seg mot NoSQL eller MongoDB, synes noen av oss fortsatt at det er lettere å bare holde seg til MySQL. Dette gjelder spesielt for mange nettapplikasjoner. Heldigvis finnes det nå en rekke "drop-in"-erstatninger for Oracle MySQL. Debian 8 inkluderer nå den stadig populære MariaDB. MariaDB er en gaffel av Oracle MySQL basert på versjon 5.5. MariaDB, for alle hensikter og formål, kaller dette MariaDB 10. Det regnes som en FULL erstatning for Oracle MySQL. Tenk på det som MySQL i hjertet, uten Oracle-merkevaren og noen nye funksjoner.

apt-get install mariadb-server

VIKTIG: Du må absolutt, positivt, velge et sterkt root-passord for MariaDB. Lagre den et sikkert sted. Du må angi den to ganger under MariaDB-installasjonen.

La oss justere MariaDB-konfigurasjonen litt. Vi skal deaktivere MariaDB-lytting via nettverksgrensesnittet. I stedet, som med PHP-FPM tidligere, holder vi oss bare til en UNIX-socket. De fleste PHP-applikasjoner bør støtte tilkobling til databaseserveren via en UNIX-socket i stedet for det lokale loopback-grensesnittet.

cd /etc/mysql
vi my.cnf

Se etter "bind-adresse = 127.0.0.1". Kommenter den linjen. Legg til "hopp over nettverk" over eller under.

#bind-address = 127.0.0.1
skip-networking

Vi er ferdige med MariaDB! Til slutt kan det være lurt å justere MariaDB-konfigurasjonen din avhengig av om du primært skal bruke MyISAM- eller InnoDB-lagringsmotorene, men også for antall CPU-kjerner og RAM tilgjengelig for serveren din. Standardinnstillingene vil få oss i gang i mellomtiden.

La oss starte hver av tjenestene som konfigurasjonsfilene ble endret for på nytt i denne opplæringen.

systemctl restart nginx.service
systemctl restart php5-fpm.service
systemctl restart mysql.service

Det er det - vi er alle ferdige. På dette tidspunktet har du en fullt funksjonell LNMP (LEMP) server online!

Denne veiledningen skulle tjene som en generell tommelfingerregel for å komme i gang med tjenestene ovenfor med minimal justering. For mer informasjon, les dokumentasjonen for pakkene ovenfor. Selv om dette eksempeloppsettet skal fungere bra rett "ut av boksen", kan justeringer, og vil mest sannsynlig måtte gjøres for bedre å passe dine behov.

Anbefalte områder for forskning:

  • Bruke og endre NGINX sin cache-kontroll.
  • PHP-FPM "statiske", "dynamiske" eller "ondemand" oppgavebehandlingsinnstillinger.
  • MariaDB ytelsesinnstilling for å få mest mulig ut av databaseserveren din.

Sett opp Cacti på Debian Jessie

Sett opp Cacti på Debian Jessie

Introduksjon Cacti er et åpen kildekode overvåkings- og grafverktøy som er fullt basert på RRD-data. Gjennom Cacti kan du overvåke nesten alle typer enheter

Sett opp iRedMail på Debian Wheezy

Sett opp iRedMail på Debian Wheezy

Bruker du et annet system? Denne opplæringen viser deg hvordan du installerer gruppevaren iRedMail på en ny installasjon av Debian Wheezy. Du bør bruke en serve

Slik konfigurerer du uovervåkede oppgraderinger på Debian 9 (Stretch)

Slik konfigurerer du uovervåkede oppgraderinger på Debian 9 (Stretch)

Bruker du et annet system? Hvis du kjøper en Debian-server, bør du alltid ha de nyeste sikkerhetsoppdateringene og oppdateringene, enten du sover eller ikke

Sett opp din egen DNS-server på Debian/Ubuntu

Sett opp din egen DNS-server på Debian/Ubuntu

Denne opplæringen forklarer hvordan du setter opp en DNS-server ved å bruke Bind9 på Debian eller Ubuntu. Bytt ut ditt-domenenavn.com gjennom hele artikkelen. På th

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

I denne artikkelen vil vi se hvordan du kompilerer og installerer Nginx mainline fra de offisielle kildene til Nginx med PageSpeed-modulen, som lar deg t

Hvordan installere Kanboard på Debian 9

Hvordan installere Kanboard på Debian 9

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Gitea på Debian 9

Hvordan installere Gitea på Debian 9

Bruker du et annet system? Gitea er et alternativt åpen kildekode, selvdrevet versjonskontrollsystem drevet av Git. Gitea er skrevet på Golang og er

Installer Lynis på Debian 8

Installer Lynis på Debian 8

Introduksjon Lynis er et gratis systemrevisjonsverktøy med åpen kildekode som brukes av mange systemadministratorer for å verifisere integriteten og herde systemene deres. Jeg

Hvordan installere Thelia 2.3 på Debian 9

Hvordan installere Thelia 2.3 på Debian 9

Bruker du et annet system? Thelia er et åpen kildekodeverktøy for å lage e-business-nettsteder og administrere nettinnhold skrevet i PHP. Thelia kildekode i

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hva du trenger En Vultr VPS med minst 1 GB RAM. SSH-tilgang (med root/administratorrettigheter). Trinn 1: Installere BungeeCord Først

Hvordan installere Golang 1.8.3 på CentOS 7, Ubuntu 16.04 og Debian 9

Hvordan installere Golang 1.8.3 på CentOS 7, Ubuntu 16.04 og Debian 9

Golang er et programmeringsspråk utviklet av Google. Takket være sin allsidighet, enkelhet og pålitelighet har Golang blitt en av de mest populære

Tilbakestill MySQL Root-passord på Debian/Ubuntu

Tilbakestill MySQL Root-passord på Debian/Ubuntu

Hvis du har glemt MySQL root-passordet ditt, kan du tilbakestille det ved å følge trinnene i denne artikkelen. Prosessen er ganske enkel og fungerer på disse

Opprette nettverksandeler ved å bruke Samba på Debian

Opprette nettverksandeler ved å bruke Samba på Debian

Det er tider når vi trenger å dele filer som må være synlige for Windows-klienter. Siden Fuse-baserte systemer bare fungerer på Linux, bør du introdusere

Sette opp Counter Strike: Source på Debian

Sette opp Counter Strike: Source på Debian

I denne veiledningen skal vi sette opp en Counter Strike: Source-spillserver på Debian 7. Disse kommandoene ble testet på Debian 7, men de bør også fungere o

Hvordan installere Unturned 2.2.5 på Debian 8

Hvordan installere Unturned 2.2.5 på Debian 8

I denne veiledningen lærer du hvordan du setter opp en Unturned 2.2.5-server på en Vultr VPS som kjører Debian 8. Merk: Dette er en redigert versjon av Unturned som ikke

Hvordan installere Cachet på Debian 8

Hvordan installere Cachet på Debian 8

I denne opplæringen lærer du hvordan du installerer Cachet på Debian 8. Cachet er et kraftig åpen kildekode-statussidesystem. Installasjon Denne opplæringen er i gang

Sikkerhetskopier flere MySQL- eller MariaDB-databaser automatisk

Sikkerhetskopier flere MySQL- eller MariaDB-databaser automatisk

Introduksjon I denne artikkelen kan du gå gjennom hvordan du sikkerhetskopierer flere MySQL- eller MariaDB-databaser som sitter på samme maskin ved hjelp av et tilpasset bash-skript

Sette opp en Chroot på Debian

Sette opp en Chroot på Debian

Denne artikkelen vil lære deg hvordan du setter opp et chroot-fengsel på Debian. Jeg antar at du bruker Debian 7.x. Hvis du kjører Debian 6 eller 8, kan dette fungere, men

Hvordan installere Reader Self 3.5 RSS Reader på en Debian 9 LAMP VPS

Hvordan installere Reader Self 3.5 RSS Reader på en Debian 9 LAMP VPS

Bruker du et annet system? Reader Self 3.5 er en enkel og fleksibel, gratis og åpen kildekode, selvhostet RSS-leser og Google Reader-alternativ. Leser Sel

Hvordan installere Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Hvordan installere Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Bruker du et annet system? Backdrop CMS 1.8.0 er et enkelt og fleksibelt, mobilvennlig, gratis og åpen kildekode Content Management System (CMS) som lar oss

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer