Konfigurer NGINX, PHP-FPM og MariaDB på Debian 8

Konfigurer NGINX, PHP-FPM og MariaDB på Debian 8

Denne vejledning viser dig, hvordan du korrekt installerer og konfigurerer en "alternativ" LAMP-stak på Debian 8 ved hjælp af NGINX, PHP Fast Process Manager og MariaDB.

NGINX

NGINX er en "reverse proxy first, webserver second". Det er et populært og voksende alternativ til Apache, der tilbyder større fleksibilitet og bedre ydeevne i mange tilfælde. I denne vejledning vil vi bruge den som vores webserver.

Tænd din foretrukne SSH-klient og log ind på din server. For Windows-brugere er "PuTTY" en gratis og let SSH-klient. Linux- og Mac-brugere kan bruge den terminal, der som standard følger med deres operativsystem. Til denne vejledning antager vi, at du er logget ind på din server som "root"-brugeren.

Til at begynde med, lad os bare sørge for, at alt er opdateret. Indtast følgende for at søge efter og derefter installere opdateringer.

apt-get update && apt-get upgrade

Vi vil redigere vores konfigurationsfiler i vim. Vim er ikke installeret som standard, så lad os installere det!

apt-get install vim

Nu er det tid til at installere NGINX. Vi ønsker at installere den seneste version af NGINX fra det officielle NGINX Debian-lager.

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

Nu skal vi justere NGINX-konfigurationen noget. Naviger til konfigurationsmappen.

cd /etc/nginx

En hurtig vim-lektion

Brug piletasterne til at navigere i tekstdokumentet. For at begynde at redigere skal du trykke på knappen "Indsæt" på dit tastatur. Hvis dit tastatur ikke har en indsæt-knap, skal du trykke på "i"-tasten. Mod bunden af ​​vim vil du bemærke, at der nu står "INSERT". Indsæt-tilstand giver dig mulighed for at slette via backspace eller indsætte nye tegn ved at skrive dem.

Lad os åbne vores nginx.confog kigge rundt:

vi nginx.conf

Lad os ændre standardbrugeren, kontrollere antallet af arbejdsprocesser og deaktivere adgangsloggen.

Direktiverne "bruger" og "arbejdsprocesser" er nær toppen. Prøv værdierne 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å gerne deaktivere adgangsloggen for at forbedre I/O-ydeevnen. Naviger nedad med piletasterne, indtil du finder "access_log". Rediger det til følgende:

access_log off;

Og til sidst indstiller vi "client_max_body_size" til at svare til nogle ændringer foretaget til PHP senere. Lad os redde besværet og gøre det nu. Tilføj lige under "access_log":

client_max_body_size 12m;

Når du er færdig med at redigere, skal du trykke på "Esc" på dit tastatur. Vim vil ikke længere sige "INSERT" mod bunden af ​​filen.

For at gemme vores ændringer og afslutte vim skal du trykke på følgende tastesekvens:

SHIFT :(colon)
wq
Press "Enter"

Ovenstående vim kung fu vil skrive dine ændringer til disken og afslutte vim, så du falder tilbage i bash-skallen.

Nu skal vi lave en stedspecifik konfiguration til vores eksempel! Vi sletter også de andre eksempelkonfigurationer. Prøv følgende:

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

Vi laver en kort og enkel www.confbaseret løst på standard NGINX-konfigurationen, men med et par tweaks. Tryk på indsæt og du kan kopiere/indsætte nedenstående eksempel.

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;
    }
}

Nu er vi færdige med NGINX-konfigurationssektionen i denne tutorial. Vi genstarter NGINX om lidt, lige efter at vi har installeret PHP.

PHP-FPM

PHP-FPM er PHP Fast Process Manager. Det er påkrævet, når du bruger NGINX, fordi i modsætning til Apache, kører NGINX ikke PHP som et modul. Dette blev gjort for at reducere NGINX's hukommelsesfodaftryk. Kan du huske den del om, at NGINX først og fremmest er en omvendt proxy? Her er hvor det kommer i spil; PHP-anmodninger, der sendes til NGINX, sendes til PHP-FPM for at gøre det tunge løft.

Lad os 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

Nu hvor vi har installeret PHP-FPM, vil vi gerne lave et par hurtige redigeringer for at forbedre sikkerheden og funktionaliteten.

cd /etc/php5/fpm
vi php.ini

Tid til endnu en hurtig vim-lektion! Den php.inifil er absolut enorme. At lede efter nogle få nøgleværdier vil tage hele dagen. Så da vi ved, hvad vi leder efter, søger vi. Indtast følgende:

/upload_max_filesize

Dette er som standard sat til 2 megabyte. Hvis du vil tillade brugere at uploade filer til dine PHP-applikationer på mere end 2 megabyte, skal du ændre dette. 10M er sandsynligvis et sikkert bud for nu, men højere værdier er også acceptable. Denne indstilling vil variere mellem konfigurationer. For tutorials skyld:

upload_max_filesize = 10M

Endnu en iøjnefaldende sikkerhedsbrist. Rul lidt længere ned eller søg. Vi skal slå "allow_url_fopen" til "Fra". Dette forhindrer PHP i at køre PHP-filer, der hostes FJERN, ellers kendt som RFI (Remote File Inclusion). Mange servere bliver hacket på denne måde.

allow_url_fopen = Off

Og fordi vi har ændret "upload_max_filesize", er vi nu nødt til at ændre "post_max_size". Denne værdi bør være lidt større end "upload_max_filesize", fordi vi skal tage højde for de overhead, der er forbundet med vores anmodninger behandlet af PHP.

Lad os søge 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 det for nu. Sørg for, at du ikke er i redigeringstilstand ved at trykke på "Esc". Gem og afslut vim.

SHIFT :(colon)
wq
Press 'Enter'

PHP-FPM-opsætningen er fuldført.

MariaDB

Selv i en verden, der konstant bevæger sig mod NoSQL eller MongoDB, har nogle af os stadig nemmere ved bare at holde fast i MySQL. Dette gælder især for mange webapplikationer. Heldigvis findes der nu en række "drop-in"-erstatninger til Oracle MySQL. Debian 8 inkluderer nu den altid populære MariaDB. MariaDB er en fork af Oracle MySQL baseret på version 5.5. MariaDB, for alt i verden, kalder dette MariaDB 10. Det betragtes som en FULD erstatning for Oracle MySQL. Tænk på det som MySQL i hjertet, uden Oracle-branding og nogle nye funktioner.

apt-get install mariadb-server

VIGTIGT: Du skal absolut, positivt, vælge en stærk root-adgangskode til MariaDB. Gem det et sikkert sted. Du skal indtaste det to gange under MariaDB-installationen.

Lad os justere MariaDB-konfigurationen lidt. Vi vil deaktivere MariaDB-lytning via netværksgrænsefladen. I stedet, som med PHP-FPM tidligere, holder vi os kun til en UNIX-socket. De fleste PHP-applikationer bør understøtte tilslutning til databaseserveren via en UNIX-socket i stedet for den lokale loopback-grænseflade.

cd /etc/mysql
vi my.cnf

Se efter "bind-adresse = 127.0.0.1". Kommenter den linje ud. Over eller under det tilføjes "skip-netværk".

#bind-address = 127.0.0.1
skip-networking

Vi er færdige med MariaDB! Til sidst vil du måske justere din MariaDB-konfiguration afhængigt af, om du primært vil bruge MyISAM- eller InnoDB-lagringsmotorerne, men også for antallet af CPU-kerner og RAM, der er tilgængeligt for din server. Standardindstillingerne vil få os op at køre i mellemtiden.

Lad os genstarte hver af de tjenester, som konfigurationsfilerne blev ændret for i denne vejledning.

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

Det er det - vi er alle færdige. På dette tidspunkt har du en fuldt funktionel LNMP (LEMP) server online!

Denne vejledning skulle tjene som en generel tommelfingerregel for at komme i gang med ovenstående tjenester med minimal tweaking. For yderligere information, læs dokumentationen til ovenstående pakker. Selvom denne eksempelopsætning burde fungere godt lige "ud af boksen", kan justeringer, og vil højst sandsynligt skulle foretages for bedre at passe til dine behov.

Anbefalede områder at forske i:

  • Brug og ændring af NGINX's cachekontrol.
  • PHP-FPM "statiske", "dynamiske" eller "ondemand" task manager-indstillinger.
  • MariaDB-indstilling af ydeevne for at få mest muligt ud af din databaseserver.

Opsæt Cacti på Debian Jessie

Opsæt Cacti på Debian Jessie

Introduktion Cacti er et open source overvågnings- og grafværktøj, som er fuldt baseret på RRD-data. Gennem Cacti kan du overvåge næsten enhver type enhed

Konfigurer iRedMail på Debian Wheezy

Konfigurer iRedMail på Debian Wheezy

Bruger du et andet system? Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af Debian Wheezy. Du bør bruge en serve

Sådan konfigureres uovervågede opgraderinger på Debian 9 (Stretch)

Sådan konfigureres uovervågede opgraderinger på Debian 9 (Stretch)

Bruger du et andet system? Hvis du køber en Debian-server, bør du altid have de nyeste sikkerhedsrettelser og opdateringer, uanset om du sover eller ej

Opsæt din egen DNS-server på Debian/Ubuntu

Opsæt din egen DNS-server på Debian/Ubuntu

Denne vejledning forklarer, hvordan man opsætter en DNS-server ved hjælp af Bind9 på Debian eller Ubuntu. Gennem hele artiklen skal du erstatte dit-domænenavn.com i overensstemmelse hermed. Ved th

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

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

I denne artikel vil vi se, hvordan du kompilerer og installerer Nginx mainline fra de officielle kilder til Nginx med PageSpeed-modulet, som giver dig mulighed for at

Sådan installeres Kanboard på Debian 9

Sådan installeres Kanboard på Debian 9

Bruger du et andet system? Introduktion Kanboard er et gratis og open source projektstyringssoftwareprogram, som er designet til at lette og visualisere

Sådan installeres Gitea på Debian 9

Sådan installeres Gitea på Debian 9

Bruger du et andet system? Gitea er et alternativt open source, selvhostet versionskontrolsystem drevet af Git. Gitea er skrevet på Golang og er

Installer Lynis på Debian 8

Installer Lynis på Debian 8

Introduktion Lynis er et gratis, open source-systemrevisionsværktøj, der bruges af mange systemadministratorer til at verificere integriteten og hærde deres systemer. jeg

Sådan installeres Thelia 2.3 på Debian 9

Sådan installeres Thelia 2.3 på Debian 9

Bruger du et andet system? Thelia er et open source-værktøj til at skabe e-business-websteder og administrere onlineindhold skrevet i PHP. Thelia kildekode i

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først

Sådan installeres Golang 1.8.3 på CentOS 7, Ubuntu 16.04 og Debian 9

Sådan installeres Golang 1.8.3 på CentOS 7, Ubuntu 16.04 og Debian 9

Golang er et programmeringssprog udviklet af Google. Takket være sin alsidighed, enkelhed og pålidelighed er Golang blevet en af ​​de mest populære

Nulstil MySQL Root Password på Debian/Ubuntu

Nulstil MySQL Root Password på Debian/Ubuntu

Hvis du har glemt din MySQL root-adgangskode, kan du nulstille den ved at følge trinene i denne artikel. Processen er ret enkel og fungerer på disse

Oprettelse af netværksshares ved hjælp af Samba på Debian

Oprettelse af netværksshares ved hjælp af Samba på Debian

Der er tidspunkter, hvor vi skal dele filer, der skal kunne ses af Windows-klienter. Da Fuse-baserede systemer kun virker på Linux, må du godt introducere

Opsætning af Counter Strike: Source på Debian

Opsætning af Counter Strike: Source på Debian

I denne vejledning vil vi opsætte en Counter Strike: Source-spilserver på Debian 7. Disse kommandoer blev testet på Debian 7, men de burde også virke o

Sådan installeres Unturned 2.2.5 på Debian 8

Sådan installeres Unturned 2.2.5 på Debian 8

I denne vejledning lærer du, hvordan du opsætter en Unturned 2.2.5-server på en Vultr VPS, der kører Debian 8. Bemærk: Dette er en redigeret version af Unturned, der ikke

Sådan installeres Cachet på Debian 8

Sådan installeres Cachet på Debian 8

I denne vejledning lærer du, hvordan du installerer Cachet på Debian 8. Cachet er et kraftfuldt open source-statussidesystem. Installation Denne vejledning er i gang

Sikkerhedskopier flere MySQL- eller MariaDB-databaser automatisk

Sikkerhedskopier flere MySQL- eller MariaDB-databaser automatisk

Introduktion I denne skrive-up, gå godt igennem, hvordan du sikkerhedskopierer flere MySQL- eller MariaDB-databaser, der sidder på den samme maskine ved hjælp af et brugerdefineret bash-script

Opsætning af Chroot på Debian

Opsætning af Chroot på Debian

Denne artikel vil lære dig, hvordan du opsætter et chroot-fængsel på Debian. Jeg går ud fra, at du bruger Debian 7.x. Hvis du kører Debian 6 eller 8, kan dette virke, men

Sådan installeres Reader Self 3.5 RSS Reader på en Debian 9 LAMP VPS

Sådan installeres Reader Self 3.5 RSS Reader på en Debian 9 LAMP VPS

Bruger du et andet system? Reader Self 3.5 er en enkel og fleksibel, gratis og open source, selvhostet RSS-læser og Google Reader-alternativ. Læser Sel

Sådan installeres Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Sådan installeres Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Bruger du et andet system? Backdrop CMS 1.8.0 er et enkelt og fleksibelt, mobilvenligt, gratis og open source Content Management System (CMS), der giver os mulighed for

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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere