Installation af Nginx med PHP (som PHP-FPM) og MariaDB (LEMP) på Debian 8

Installation af Nginx med PHP (som PHP-FPM) og MariaDB (LEMP) på Debian 8

Denne vejledning viser dig installationen af ​​Nginx webserveren på Debian 8. Nginx (udtales "motor x") er en gratis, open source, højtydende HTTP-server. Nginx er kendt for sin stabilitet, rige funktionssæt, enkel konfiguration og lavt ressourceforbrug. Denne vejledning viser, hvordan du kan installere Nginx med PHP support (gennem PHP-FPM) og MariaDB som MySQL drop-in udskiftning. Denne opsætning kaldes ofte LEMP = Linux + nginx (udtales "engine x") + MySQL + PHP).

Indledende note

I denne vejledning bruger jeg værtsnavnet server1.example.com med IP-adressen 192.168.1.100. Disse indstillinger kan variere for dig, så du skal udskifte dem, hvor det er relevant. Du skal have en Debian 8 server, jeg vil bruge Debian minimal server som basissystem til denne vejledning.

Opdatering af systemet

Det anbefales at opdatere pakkelisterne og installere eventuelle ventende opdateringer, før vi starter med Nginx-opsætningen. Kør følgende kommandoer for at installere eventuelle ventende opdateringer.

apt-get update
apt-get opgradering -y

Jeg vil bruge nano-editoren senere til at redigere konfigurationsfiler. Nano kan installeres med denne kommando:

apt-get -y installere nano

Installation af MariaDB (som MySQL drop-in udskiftning)

For at installere MariaDB kører vi:

apt-get -y installere mariadb-server mariadb-klient

Du bliver bedt om at angive en adgangskode til MariaDB root brugeren - denne adgangskode er gyldig for brugeren [email protected] samt [email protected], så vi behøver ikke at angive en MariaDB root password manuelt senere:

Ny adgangskode til MariaDB "root" bruger: <- yourrootsqlpassword
Gentag adgangskode til MariaDB "root" bruger: <- yourrootsqlpassword

Indtast MariaDB root brugeradgangskoden.

Installation af Nginx

Nginx er tilgængelig som en pakke til Debian Jessie, som vi kan installere som følger:

apt-get -y installere nginx

Start Nginx bagefter:

systemctl start nginx.service

Indtast din webserverens IP-adresse eller værtsnavn i en browser (f.eks. Http: // 192.168.1.100), og du skal se følgende side:

Debian Nginx startside.

Standard nginx dokument rod på Debian 8 er / var / www / html.

Installation af PHP

Vi kan lave PHP5 arbejde i nginx gennem PHP-FPM (PHP-FPM (FastCGI Process Manager) er en alternativ PHP FastCGI-implementering med nogle ekstra funktioner, der er nyttige til websteder af enhver størrelse, især travle sider), som vi installerer som følger:

apt-get -y installerer php5-fpm

PHP-FPM er en daemon-proces (med systemd-enhedsfilen php5-fpm.service), der kører en FastCGI-server på stikket /var/run/php5-fpm.sock.

Konfiguration af nginx

Konfigurationen nginx er i /etc/nginx/nginx.conf, som vi åbner nu:

nano /etc/nginx/nginx.conf

Konfigurationen er let at forstå (du kan lære mere om det her: http://wiki.nginx.org/NginxFullExample og her: http://wiki.nginx.org/NginxFullExample2)

Indstil først keepalive_timeout til en rimelig værdi som 2 sekunder:

[...] keepalive_timeout 2; [...]

De virtuelle værter defineres i server {} containere. Standard vhost er defineret i filen / etc / nginx / sites-available / default - lad os ændre det som følger:

nano / etc / nginx / sites-available / default

[...] server {lyt 80 default_server; lyt [::]: 80 default_server; # SSL-konfiguration # # lyt 443 ssl default_server; # lyt [::]: 443 ssl default_server; # # Selvtegnede certs genereret af ssl-cert-pakken # Brug ikke dem i en produktionsserver! # # inkludere uddrag / snakeoil.conf; root / var / www / html; # Tilføj index.php til listen, hvis du bruger PHP indeks index.html index.htm index.nginx-debian.html index.php; server navn _; placering / {# Første forsøg på at betjene anmodning som fil, derefter # som mappe, og fald derefter tilbage for at vise en 404. try_files $ uri $ uri / = 404; } # videregive PHP-scripts til FastCGI-serverlytter på 127.0.0.1: 9000 # location ~ .php $ {include snippets / fastcgi-php.conf; # # Med php5-cgi alene: # fastcgi_pass 127.0.0.1: 9000; # Med php5-fpm: fastcgi_pass unix: /var/run/php5-fpm.sock; } # benægter adgangen til .htaccess-filer, hvis Apaches dokumentrots # er i overensstemmelse med nginx's en # placering ~ /.ht {benægt alle; }} [...]

server navn _; gør dette til en standard catchall vhost (selvfølgelig kan du også angive et værtsnavn her som www.example.com).

Jeg har tilføjet index.php til indekslinjen. root / var / www / html; betyder at dokumentets rod er mappen / var / www / html.

Den vigtige del for PHP er placeringen ~ .php $ {} stanza. Uncomment det som vist ovenfor for at aktivere det.

Gem nu filen og genindlæs Nginx:

systemctl genindlæs nginx.service

Næste åbne /etc/php5/fpm/php.ini...

nano /etc/php5/fpm/php.ini

... og sæt cgi.fix_pathinfo = 0:

[...]; cgi.fix_pathinfo giver * ægte * PATH_INFO / PATH_TRANSLATED support til CGI. Php's; Tidligere opførsel var at indstille PATH_TRANSLATED til SCRIPT_FILENAME, og ikke for at grok; hvad PATH_INFO er. For mere information om PATH_INFO, se cgi specs. Indstilling; dette til 1 vil få PHP CGI til at rette sine stier for at overholde spec. En indstilling; af nul får PHP til at opføre sig som før. Standard er 1. Du bør rette dine scripts; at bruge SCRIPT_FILENAME snarere end PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo = 0 [...]

Genindlæs PHP-FPM:

systemctl genindlæs php5-fpm.service

Opret nu følgende PHP-fil i dokumentets rod / var / www / html /:

nano /var/www/html/info.php

<? php phpinfo (); ?>

Nu kalder vi den fil i en browser (f.eks. Http: //192.168.1.100/info.php):

PHP info.

Som du ser, arbejder PHP5, og det virker gennem FPM / FastCGI, som vist i Server API-linjen. Hvis du ruller længere nede, vil du se alle moduler, der allerede er aktiveret i PHP5. MySQL er ikke angivet der, hvilket betyder, at vi ikke har MariaDB / MySQL-support i PHP endnu.

Få MySQL / MariaDB Support i PHP

For at få MySQL-support i PHP, kan vi installere php5-mysqlnd-pakken. Det er en god ide at installere nogle andre PHP-moduler, så godt som du måske har brug for dem til dine applikationer. Du kan søge efter tilgængelige PHP-moduler som denne:

apt-cache søgning php5

Vælg dem, du har brug for, og installer dem som denne:

apt-get -y installer php5-php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-intl php5-pspell php5-rekode php5-snmp php5-sqlite php5- ryddelige php5-xmlrpc php5-xsl

APCu er en fri og åben PHP opcode cacher til caching og optimering af PHP mellemkoden, der udvider PHP opcache. Det erstatter APC cachen. og det ligner andre PHP opcode cachers, såsom eAccelerator og Xcache. Det anbefales kraftigt at have en af ​​disse installeret for at fremskynde din PHP-side.

APCu kan installeres som følger:

apt-get installer php5-apcu

Genindlæs nu PHP-FPM:

systemctl genindlæs php5-fpm.service

Genindlæs nu http: //192.168.1.100/info.php i din browser og rul ned til modulerne igen. Du skal nu finde masser af nye moduler der, herunder MySQL-modulet:

PHP info med MySQL.

Gør PHP-FPM brug af en TCP-forbindelse (valgfrit)

Som standard lytter PHP-FPM på stikket /var/run/php5-fpm.sock. Det er også muligt at gøre PHP-FPM til at bruge en TCP-forbindelse. For at gøre dette skal du åbne /etc/php5/fpm/pool.d/www.conf...

nano /etc/php5/fpm/pool.d/www.conf

... og få lytlinjen til at se ud som følger:

[...]; lyt = /var/run/php5-fpm.sock listen = 127.0.0.1: 9000 [...]

Dette vil gøre PHP-FPM lytte på port 9000 på IP 127.0.0.1 (localhost). Sørg for at bruge en port, der ikke er i brug på dit system.

Herefter genindlæses PHP-FPM:

systemctl genindlæs php5-fpm.service

Herefter skal du gennemgå din Nginx-konfiguration og alle dine vhosts og ændre linjen fastcgi_pass unix: /var/run/php5-fpm.sock; at fastcgi_pass 127.0.0.1: 9000 ;, fx som denne:

nano / etc / nginx / sites-available / default

[...] placering ~ .php $ {include snippets / fastcgi-php.conf; # # Med php5-cgi alene: # fastcgi_pass 127.0.0.1: 9000; # # Med php5-fpm: # fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_pass 127.0.0.1: 9000; } [...]

Endelig genindlæs Nginx:

systemctl genindlæs nginx.service

Virtual Machine billede

Denne vejledning er tilgængelig som klar til brug af virtuelle maskine i OVA / OVF format for Howtoforge-abonnenter. VM formatet er kompatibelt med VMWare og Virtualbox ond nok nogle andre værktøjer, der kan importere dette format. Du kan finde downloadlinket i højre menu øverst. Klik på filnavnet for at starte overførslen.

VM'ens loginoplysninger er:

SSH Login

Brugernavn: root
Adgangskode: howtoforge

MariaDB Login

Brugernavn: root
Adgangskode: howtoforge

Venligst skift adgangskoderne efter den første boot.

VM'en er konfigureret til den statiske IP 192.168.1.100, IP'en kan ændres i filen / etc / network / interfaces.

Links

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.