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.

Debian, MySQL och MariaDB, webbservrar

Lämna en kommentar

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.

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.

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.

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