Ställ in NGINX, PHP-FPM och MariaDB på Debian 8

Ställ in NGINX, PHP-FPM och MariaDB på Debian 8

Den här guiden visar dig hur du korrekt installerar och konfigurerar en "alternativ" LAMP-stack på Debian 8 med NGINX, PHP Fast Process Manager och MariaDB.

NGINX

NGINX är en "reverse proxy first, webbserver second". Det är ett populärt och växande alternativ till Apache, som erbjuder större flexibilitet och bättre prestanda i många fall. I den här handledningen kommer vi att använda den som vår webbserver.

Starta din favorit SSH-klient och logga in på din server. För Windows-användare är "PuTTY" en gratis och lätt SSH-klient. Linux- och Mac-användare kan använda terminalen som ingår som standard i deras operativsystem. För denna handledning antar vi att du är inloggad på din server som "root"-användare.

Till att börja med, låt oss bara se till att allt är uppdaterat. Skriv följande för att leta efter och sedan installera uppdateringar.

apt-get update && apt-get upgrade

Vi kommer att redigera våra konfigurationsfiler i vim. Vim är inte installerat som standard, så låt oss installera det!

apt-get install vim

Nu är det dags att installera NGINX. Vi vill installera den senaste versionen av NGINX från det officiella NGINX Debian-förvaret.

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 måste vi justera NGINX-konfigurationen en del. Navigera till konfigurationskatalogen.

cd /etc/nginx

En snabb vim-lektion

Använd piltangenterna för att navigera i textdokumentet. För att börja göra ändringar, tryck på "infoga"-knappen på ditt tangentbord. Om ditt tangentbord inte har en infogningsknapp trycker du på "i"-tangenten. Mot botten av vim kommer du att märka att det nu står "INSERT". Infogningsläget låter dig radera via backsteg eller infoga nya tecken genom att skriva dem.

Låt oss öppna upp vår nginx.confoch leta runt:

vi nginx.conf

Låt oss ändra standardanvändaren, kontrollera antalet arbetsprocesser och stänga av åtkomstloggen.

Direktiven "user" och "worker_processes" är nära toppen. Prova värdena nedan:

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 vill också inaktivera åtkomstloggen för att förbättra I/O-prestandan. Navigera nedåt med piltangenterna tills du hittar "access_log". Ändra det till följande:

access_log off;

Och slutligen kommer vi att ställa in "client_max_body_size" för att motsvara några ändringar som gjorts i PHP senare. Låt oss rädda besväret och göra det nu. Lägg till precis under "access_log":

client_max_body_size 12m;

När du är klar med redigeringen, tryck på "Esc" på tangentbordet. Vim kommer inte längre att säga "INSERT" längst ned i filen.

För att spara våra ändringar och avsluta vim, tryck på följande tangentsekvens:

SHIFT :(colon)
wq
Press "Enter"

Ovanstående vim kung fu kommer att skriva dina ändringar till disken och avsluta vim, vilket släpper dig tillbaka till bash-skalet.

Nu måste vi göra en platsspecifik konfiguration för vårt exempel! Vi tar också bort de andra exempelkonfigurationerna. Prova följande:

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

Vi kommer att göra en kort och enkel www.confbaserat löst på standard NGINX-konfigurationen, men med några justeringar. Tryck på infoga så kan du kopiera/klistra in exemplet nedan.

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 är vi klara med NGINX-konfigurationssektionen i denna handledning. Vi kommer att starta om NGINX om en liten stund, direkt efter att vi har installerat PHP.

PHP-FPM

PHP-FPM är PHP Fast Process Manager. Det krävs när du använder NGINX, eftersom till skillnad från Apache, kör NGINX inte PHP som en modul. Detta gjordes för att minska NGINX:s minnesavtryck. Kommer du ihåg den delen om att NGINX är en omvänd proxy först och främst? Det är här som spelar in; PHP-förfrågningar som skickas till NGINX matas till PHP-FPM för att göra det tunga arbetet.

Låt oss installera 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 när vi har installerat PHP-FPM vill vi göra några snabba ändringar för att förbättra säkerheten och funktionaliteten.

cd /etc/php5/fpm
vi php.ini

Dags för ännu en snabb vim-lektion! Den php.inifilen är helt enorm. Att leta efter några nyckelvärden kommer att ta hela dagen. Så eftersom vi vet vad vi letar efter söker vi. Skriv följande:

/upload_max_filesize

Detta är som standard inställt på 2 megabyte. Om du vill tillåta användare att ladda upp filer till dina PHP-applikationer som är större än 2 megabyte, måste du ändra detta. 10M är förmodligen ett säkert kort för tillfället, men högre värden är också acceptabla. Denna inställning kommer att variera mellan olika konfigurationer. För handledningens skull:

upload_max_filesize = 10M

Ännu ett påfallande säkerhetsbrist. Scrolla ner lite längre eller sök. Vi måste ställa in "allow_url_fopen" till "Av". Detta kommer att förhindra PHP från att köra PHP-filer som är värd Fjärrstyrda, även känd som RFI (Remote File Inclusion). Många servrar hackas på detta sätt.

allow_url_fopen = Off

Och eftersom vi ändrade "upload_max_filesize", måste vi nu ändra "post_max_size". Detta värde bör vara lite större än "upload_max_filesize", eftersom vi måste ta hänsyn till de omkostnader som är kopplade till våra förfrågningar som behandlas av PHP.

Låt oss söka en gång till 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 är ungefär det för nu. Se till att du inte är i redigeringsläge genom att trycka på "Esc". Spara och avsluta vim.

SHIFT :(colon)
wq
Press 'Enter'

PHP-FPM-installationen är klar.

MariaDB

Även i en värld som ständigt rör sig mot NoSQL eller MongoDB, tycker vissa av oss fortfarande att det är lättare att bara hålla fast vid MySQL. Detta gäller särskilt för många webbapplikationer. Lyckligtvis finns det nu ett antal "drop-in"-ersättningar för Oracle MySQL. Debian 8 inkluderar nu den ständigt populära MariaDB. MariaDB är en gaffel av Oracle MySQL baserad på version 5.5. MariaDB kallar detta MariaDB 10 för alla ändamål. Det anses vara en FULL ersättning för Oracle MySQL. Se det som MySQL i grunden, utan Oracle-varumärket och några nya funktioner.

apt-get install mariadb-server

VIKTIGT: Du måste absolut, positivt, välja ett starkt root-lösenord för MariaDB. Spara den någonstans säkert. Du måste ange det två gånger under MariaDB-installationen.

Låt oss justera MariaDB-konfigurationen något. Vi kommer att inaktivera MariaDB-lyssning via nätverksgränssnittet. Istället, som med PHP-FPM tidigare, kommer vi bara att hålla oss till en UNIX-socket. De flesta PHP-applikationer bör stödja anslutning till databasservern via en UNIX-socket istället för gränssnittet för lokal loopback.

cd /etc/mysql
vi my.cnf

Leta efter "bind-adress = 127.0.0.1". Kommentera raden. Lägg till "hoppa över nätverk" ovanför eller under.

#bind-address = 127.0.0.1
skip-networking

Vi är klara med MariaDB! Så småningom kanske du vill justera din MariaDB-konfiguration beroende på om du främst kommer att använda MyISAM- eller InnoDB-lagringsmotorerna, men också för antalet CPU-kärnor och RAM-minne som är tillgängliga för din server. Standardinställningarna kommer att få oss igång under tiden.

Låt oss starta om var och en av de tjänster för vilka konfigurationsfilerna ändrades i den här handledningen.

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

Det var allt - vi är alla klara. Vid det här laget har du en fullt fungerande LNMP ( LEMP ) server online!

Den här guiden skulle fungera som en allmän tumregel för att komma igång med ovanstående tjänster med minimal justering. För ytterligare information, läs dokumentationen för ovanstående paket. Även om den här exempelinställningen borde fungera bra direkt "ur lådan", kan justeringar, och kommer troligen att behöva göras för att bättre passa dina behov.

Rekommenderade områden för forskning:

  • Använda och ändra NGINX:s cachekontroll.
  • PHP-FPM "statiska", "dynamiska" eller "ondemand" uppgiftshanterarinställningar.
  • MariaDB prestandajustering för att få ut det mesta av din databasserver.

Installera Cacti på Debian Jessie

Installera Cacti på Debian Jessie

Introduktion Cacti är ett övervaknings- och grafverktyg med öppen källkod som är helt baserat på RRD-data. Genom Cacti kan du övervaka nästan vilken typ av enhet som helst

Konfigurera iRedMail på Debian Wheezy

Konfigurera iRedMail på Debian Wheezy

Använder du ett annat system? Den här handledningen visar dig hur du installerar groupware iRedMail på en ny installation av Debian Wheezy. Du bör använda en serve

How to Setup Unattended Upgrades on Debian 9 (Stretch)

How to Setup Unattended Upgrades on Debian 9 (Stretch)

Using a Different System? If you purchase a Debian server, then you should always have the latest security patches and updates, whether youre asleep or not

Konfigurera din egen DNS-server på Debian/Ubuntu

Konfigurera din egen DNS-server på Debian/Ubuntu

Denna handledning förklarar hur man ställer in en DNS-server med Bind9 på Debian eller Ubuntu. Genomgående i artikeln, byt ut ditt-domännamn.com i enlighet med detta. Vid th

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

I den här artikeln kommer vi att se hur man kompilerar och installerar Nginx mainline från de officiella källorna för Nginx med PageSpeed-modulen, som låter dig t

Hur man installerar Kanboard på Debian 9

Hur man installerar Kanboard på Debian 9

Använder du ett annat system? Introduktion Kanboard är ett gratis och öppen källkodsprogram för projektledningsprogram som är utformat för att underlätta och visualisera

Hur man installerar Gitea på Debian 9

Hur man installerar Gitea på Debian 9

Använder du ett annat system? Gitea är ett alternativt versionskontrollsystem med öppen källkod som drivs av Git. Gitea är skriven på Golang och är

Installera Lynis på Debian 8

Installera Lynis på Debian 8

Introduktion Lynis är ett gratis systemrevisionsverktyg med öppen källkod som används av många systemadministratörer för att verifiera integriteten och förstärka deras system. jag

Hur man installerar Thelia 2.3 på Debian 9

Hur man installerar Thelia 2.3 på Debian 9

Använder du ett annat system? Thelia är ett verktyg med öppen källkod för att skapa e-handelswebbplatser och hantera onlineinnehåll skrivet i PHP. Thelia källkod i

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Vad du behöver En Vultr VPS med minst 1 GB RAM. SSH-åtkomst (med root-/administrativa privilegier). Steg 1: Installera BungeeCord Först till kvarn

Hur man installerar Golang 1.8.3 på CentOS 7, Ubuntu 16.04 och Debian 9

Hur man installerar Golang 1.8.3 på CentOS 7, Ubuntu 16.04 och Debian 9

Golang är ett programmeringsspråk utvecklat av Google. Tack vare dess mångsidighet, enkelhet och tillförlitlighet har Golang blivit en av de mest populära

Återställ MySQL Root Password på Debian/Ubuntu

Återställ MySQL Root Password på Debian/Ubuntu

Om du har glömt ditt MySQL root-lösenord kan du återställa det genom att följa stegen i den här artikeln. Processen är ganska enkel och fungerar på dessa

Ställa in Counter Strike: Source på Debian

Ställa in Counter Strike: Source på Debian

I den här guiden kommer vi att sätta upp en Counter Strike: Source-spelserver på Debian 7. Dessa kommandon testades på Debian 7 men de borde också fungera o

Hur man installerar Unturned 2.2.5 på Debian 8

Hur man installerar Unturned 2.2.5 på Debian 8

I den här guiden kommer du att lära dig hur du ställer in en Unturned 2.2.5-server på en Vultr VPS som kör Debian 8. Obs: Detta är en redigerad version av Unturned som inte

Hur man installerar Cachet på Debian 8

Hur man installerar Cachet på Debian 8

I den här handledningen kommer du att lära dig hur du installerar Cachet på Debian 8. Cachet är ett kraftfullt statussidasystem med öppen källkod. Installation Den här handledningen pågår

Säkerhetskopiera flera MySQL- eller MariaDB-databaser automatiskt

Säkerhetskopiera flera MySQL- eller MariaDB-databaser automatiskt

Inledning I den här artikeln, gå igenom hur man säkerhetskopierar flera MySQL- eller MariaDB-databaser som sitter på samma maskin med hjälp av ett anpassat bash-skript

Konfigurera en Chroot på Debian

Konfigurera en Chroot på Debian

Den här artikeln kommer att lära dig hur du ställer in ett chroot-fängelse på Debian. Jag antar att du använder Debian 7.x. Om du kör Debian 6 eller 8 kan detta fungera, men

Hur man installerar Reader Self 3.5 RSS Reader på en Debian 9 LAMP VPS

Hur man installerar Reader Self 3.5 RSS Reader på en Debian 9 LAMP VPS

Använder du ett annat system? Reader Self 3.5 är ett enkelt och flexibelt, gratis och öppen källkod, RSS-läsare som är självvärd och Google Reader-alternativ. Läsare Sel

Hur man installerar Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Hur man installerar Backdrop CMS 1.8.0 på en Debian 9 LAMP VPS

Använder du ett annat system? Backdrop CMS 1.8.0 är ett enkelt och flexibelt, mobilvänligt, gratis och open source Content Management System (CMS) som låter oss

Hur man installerar SteamCMD på din VPS

Hur man installerar SteamCMD på din VPS

I den här handledningen kommer vi att installera SteamCMD. SteamCMD kan användas för att ladda ner och installera många Steam-spelservrar, såsom Counter-Strike: Global Offensiv

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer