Sådan installeres LEMP Stack On Ubuntu LTS 16.04


LEMP er en kombination af operativsystemet og open source software stack. Forkortelsen LEMP kom fra de første bogstaver af Linux, nginx (engine-x) HTTP-server, MySQL /MariaDB database og PHP /PErl /Python.

I denne vejledning, lad os se, hvordan du installerer lemp stack på Ubuntu 16.04, og dens tidligere versioner som Ubuntu 15.1015.04,14.10, 14.04 og 13.10 osv.

Installer LEMP Stack On Ubuntu 16.04

1. Installer Nginx

Nginx (udtalt som motor-x) er en gratis, open source, højtydende HTTP-server og omvendt proxy samt en IMAP / POP3 proxyserver skrevet af Igor Sysoev.

For at installere Nginx skal du indtaste følgende kommando i din terminal:

Bemærk: Hvis en anden webserver som apache2 blev installeret i dit system, skal du først fjerne det for at undgå konflikter. For at afinstallere apache skal du køre følgende kommandoer:

sudo service apache2 stop
sudo apt-get fjern --purge apache2 apache2-utils apache2.2-bin apache2-common -y
sudo apt-get autoremove -y
sudo apt-get autoclean -y

Find apache2-konfigurationsmapper og -filer ved hjælp af kommandoen:

hvor er apache2

Derefter slette dem permanent med kommando:

sudo rm -Rf / etc / apache2 / usr / lib / apache2 / usr / include / apache2

Nu skal du installere nginx ved hjælp af kommandoen:

sudo apt-get install nginx

Start Nginx-tjenesten ved hjælp af følgende kommando.

På Ubuntu 15.10 / 15.04 / 16.04 / 16.10:

sudo systemctl start nginx

På Ubuntu 14.10 og tidligere versioner:

sudo service nginx start

For at kontrollere om nginx-tjenesten er startet, kør:

sudo systemctl status nginx

Or

sudo service nginx status

Prøveudgang:

[Email protected]: ~ $ sudo systemctl status nginx ● nginx.service - En højtydende webserver og en omvendt proxyserver Loaded: loaded (/lib/systemd/system/nginx.service; enabled; leverandør forudindstillet: aktiveret) Aktiv: aktiv (kørende) siden Tue 2016-03-01 13: 18: 54 PST; 1min 38s ago Main PID: 12940 (nginx) CGroup: /system.slice/nginx.service ├─12940 nginx: masterproces / usr / sbin / nginx -g daemon on; master_process på └─12942 nginx: arbejdsproces Mar 01 13: 18: 53 ubuntu systemd [1]: Start En højtydende webserver og en omvendt proxyserver ... Mar 01 13: 18: 54 ubuntu systemd [1]: nginx .service: Kunne ikke læse PID fra filen /run/nginx.pid: Ugyldigt argument Mar 01 13: 18: 54 ubuntu systemd [1]: Startet En højtydende webserver og en omvendt proxyserver. Mar 01 13: 20: 21 ubuntu systemd [1]: Startet En højtydende webserver og en omvendt proxyserver.
[Email protected]: ~ $ 2. Test nginx

Åbn din webbrowser og naviger til http://ip-address/ or http://localhost/. Du vil se en skærm noget som nedenfor.

Velkommen til nginx! - Google Chrome_001

3. Konfigurer Nginx

Åbn filen /etc/nginx/nginx.conf i enhver editor:

sudo nano /etc/nginx/nginx.conf

Indstil worker_processes (dvs. Antal CPU'er i dit system). For at se nr. af CPU'er, brug kommandoen "lscpu". I mit tilfælde er det "1". Så jeg sætter dette som '1'.

worker_processes 1;

Eller lad det være som 'Auto' for automatisk at finde nummerkernerne på din Ubuntu-server.

Genstart Nginx service:

sudo systemctl genstart nginx

Or

sudo service nginx genstart

Standard vhost (serverblok) er defineret i / Etc / nginx / sites-tilgængelig / default fil.

Åbn filen / etc / nginx / sites-available / default i enhver editor.

sudo nano / etc / nginx / sites-available / default

Under Server-sektionen skal du indstille serverens FQDN eller IP-adresse som vist nedenfor. Sørg for at du har tilføjet en index.php linje.

[...] server {lyt 80 default_server; lyt [::]: 80 default_server; [...] root / var / www / html; # Tilføj index.php til listen, hvis du bruger PHP indeks index.php index.html index.htm index.nginx-debian.html; server navn server.unixmen.local; [...]

Her,

  • lyt 80; -> lyt efter ipv4
  • lyt [::]: 80 default_server ipv6only = on; -> lyt efter ipv6
  • root / var / www / html; -> dokument rodmappe.
  • server_name server.unixmen.local; -> Server FQDN.

Nu skal du rulle ned længere og finde sektionen #location ~ .php $. Uncomment og modificere følgende linjer som vist nedenfor.

 placering ~ .php $ {try_files $ uri = 404;   ---------> Tilføj denne linje
         # 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_index index.php; inkludere fastcgi.conf; }

Her tilføjede jeg en ekstra linje 'try_files $ uri = 404;' for at forhindre nul dag udnyttelse.

Gem og afslut filen.

4. Test nginx konfiguration

Test nginx-konfigurationen for eventuelle syntaksfejl ved hjælp af kommandoen:

sudo nginx -t

Prøveudgang:

nginx: konfigurationsfilen /etc/nginx/nginx.conf syntaks er ok nginx: konfigurationsfilen /etc/nginx/nginx.conf testen er vellykket

Genstart nginx service.

sudo systemctl genstart nginx

Or

sudo service nginx genstart

5. Installer MySQL

MySQL er et relationsdatabaseadministrationssystem (RDBMS), der kører som en server, der giver flere brugeradgang til en række databaser, selv om SQLite sandsynligvis har flere samlede integrerede implementeringer

[Email protected]: ~ $ sudo apt-get installer mysql-server mysql-client Læser pakke lister ... Udført Building afhængighed træ Læser tilstand oplysninger ... Udført Følgende ekstra pakker vil blive installeret: libaio1 libcgi-fast-perl libcgi-pm-perl libdbd-mysql-perl libdbi-perl libenc-locale-perl libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatypes- perl libmysqlclient18 libperl5.22 libterm-readkey-perl libtimedate-perl liburi-perl mysql-client-5.6 mysql-klient-core-5.6 mysql-almindelig mysql-server-5.6 mysql-server-core-5.6 perl perl-moduler-5.22 omdøb Foreslåede pakker : liblone-perl libmldbm-perl libnet-daemon-perl libsql-sætning-perl libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make Følgende NYE pakker vil blive installeret: libaio1 libcgi-fast-perl libcgi-pm-perl libdbd-mysql-perl libdbi-perl libencode-locale-perl libfcgi-perl libhtml-parser-perl libhtml- tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl liblwp-mediatyper-perl libmysqlclient18 libperl5.22 libterm-readkey-perl libtimedate-perl liburi-perl mysql-klient mysql-client-5.6 mysql -client-core-5.6 mysql-almindelig mysql-server mysql-server-5.6 mysql-server-core-5.6 perl perl-moduler-5.22 omdøb 0 opgraderet, 29 nyinstalleret, 0 til fjernelse og 0 ikke opgraderet. Har brug for at få 27.4 MB arkiver. Efter denne operation vil 196 MB ekstra diskplads blive brugt. Vil du fortsætte? [Y / n] 


Under installationen bliver du bedt om at konfigurere MySQL "root" brugeradgangskoden. Indtast adgangskoden, og klik på Ok.

sk @ server: ~ _002

Indtast adgangskoden igen.

sk @ server: ~ _003

MySQL er installeret nu.

Du kan verificere MySQL-serverstatus ved hjælp af kommando:

På Ubuntu 16.04 / 15.10 / 15.04 /

sudo systemctl status mysql

På Ubuntu 14.10 og tidligere versioner:

sudo service mysql status

Prøveudgang:

[Email protected]: ~ $ sudo systemctl status mysql ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; aktiveret; sælger forudindstillet: aktiveret) Aktiv: aktiv (kører) siden Tue 2016-03-01 13: 31: 10 PST; 3s ago Main PID: 13611 (mysqld_safe) CGroup: /system.slice/mysql.service ├─13611 / bin / sh / usr / bin / mysqld_safe └─13958 / usr / sbin / mysqld --basedir = / usr --datadir = / var / lib / mysql - plugin-dir = / usr / lib / mysql / plugin -lo Mar 01 13: 31: 09 ubuntu systemd [1]: Start MySQL Community Server ... Mar 01 13: 31: 09 ubuntu mysqld_safe [13611]: 160301 13: 31: 09 mysqld_safe Kan ikke logge på fejllog og syslog på sam Mar 01 13: 31: 09 ubuntu mysqld_safe [13611]: 160301 13: 31: 09 mysqld_safe Logging to '/ var / log / mysql / error.log'. Mar 01 13: 31: 09 ubuntu mysqld_safe [13611]: 160301 13: 31: 09 mysqld_safe Starter mysqld-dæmon med databaser fra / Mar 01 13: 31: 10 ubuntu systemd [1]: Startet MySQL Community Server.
Screenshot_20160301_223554

6. Installer MariaDB

Hvis du vil bruge MariaDB i stedet for MySQL community edition, skal du følge nedenstående trin.

MariaDB er en dråbe i stedet for MySQL. Det er en robust, skalerbar og pålidelig SQL-server, der kommer med et stort sæt forbedringer.

Først skal du fjerne eksisterende MySQL-pakker, hvis der er nogen. For fuldstændigt at afinstallere MySQL sammen med dens konfigurationsfiler skal du indtaste følgende kommandoer en efter en:

sudo systemctl stop mysql
sudo apt-get fjerne --purge mysql-server mysql-klient mysql-common -y
sudo apt-get autoremove -y
sudo apt-get autoclean -y
sudo rm -rf / var / lib / mysql / sudo rm -rf / etc / mysql /

Når du har fjernet MySQL, skal du køre følgende kommando for at installere MariaDB.

sudo apt-get install mariadb-server

Alternativt kan du installere det ved hjælp af MariaDB repository hvis du vil prøve den nyeste version af MariaDB. Kør følgende kommandoer for at tilføje PPA. Som ved at skrive dette er MariaDB PPA endnu ikke opdateret til Ubuntu 15.04. Vi kan dog bruge opbevaringsstedet for Ubuntu 14.10 i stedet.

sudo apt-get install software-egenskaber-fælles
sudo apt-key adv --recv-nøgler --keyserver hkp: //keyserver.ubuntu.com: 80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://download.nus.edu.sg/mirror/mariadb/repo/10.1/ubuntu levende hoved'

Opdater programkildelisten og installer MariaDB ved hjælp af følgende kommandoer:

sudo apt-get update
sudo apt-get install mariadb-server

Screenshot_20160301_224046

Under installationen bliver du bedt om at indstille mysql 'root' brugeradgangskode. Indtast adgangskoden to gange, og afslut installationen.

Bemærk: I Ubuntu 16.04 / 15.10 / 15.04 vil MariaDB ikke bede dig om at angive root brugeradgangskode under installationen.

Du kan heller ikke indstille adgangskode ved hjælp af kommando:

mysql_secure_installation

Det vil smide den følgende fejl.

BEMÆRK: RUNNING AF ALLE DELER AF DETTE SKRIPT ANBEFALES FOR ALLE MariaDB-servere i produktionsanvendelse! LÆS ALLE TRIN FORSIGTIG! For at logge ind på MariaDB for at sikre det, skal vi bruge den nuværende adgangskode til rodenbrugeren. Hvis du lige har installeret MariaDB, og du endnu ikke har angivet root-adgangskoden, vil adgangskoden være tom, så du skal bare trykke her ind. Indtast aktuel adgangskode til root (indtast for ingen): 
FEJL 1698 (28000): Adgang nægtet for bruger 'root' @ 'localhost'
Indtast aktuel adgangskode til root (indtast for ingen):

For at rette denne fejl skal du logge på mysql prompt uden adgangskode som root-bruger:

sudo mysql -u rod

Kør derefter følgende kommandoer en efter en i mysql-prompten:

bruge mysql;
opdater bruger set plugin = '' hvor bruger = 'root'; y
flush privilegier;
q

Det er det. Indstil nu database administrativ "root" brugeradgangskode ved hjælp af kommando. Tryk på Enter og gå med standardindstillingerne.

mysql_secure_installation

Prøveudgang:

BEMÆRK: RUNNING AF ALLE DELER AF DETTE SKRIPT ANBEFALES FOR ALLE MariaDB-servere i produktionsanvendelse! LÆS ALLE TRIN FORSIGTIG! For at logge ind på MariaDB for at sikre det, skal vi bruge den nuværende adgangskode til rodenbrugeren. Hvis du lige har installeret MariaDB, og du endnu ikke har angivet root-adgangskoden, vil adgangskoden være tom, så du skal bare trykke her ind. Indtast aktuel adgangskode for root (indtast for ingen): OK, vellykket brugt adgangskode, fortsætter ... Indstilling af rodadgangskoden sikrer, at ingen kan logge ind på MariaDB root-brugeren uden den korrekte tilladelse. Indstil root password? [Y / n] y Ny adgangskode: Indtast ny adgangskode: Kodeord opdateret med succes! Genindlæsning af privilegietabeller .. ... Succes! Som standard har en MariaDB-installation en anonym bruger, så alle kan logge ind på MariaDB uden at skulle have en brugerkonto oprettet til dem. Dette er kun beregnet til test, og for at gøre installationen en smule glattere. Du bør fjerne dem, før du går ind i et produktionsmiljø. Fjern anonyme brugere? [Y / n] ... Succes! Normalt bør root kun få lov til at oprette forbindelse fra 'localhost'. Dette sikrer, at en person ikke kan gætte på rodadgangskoden fra netværket. Disallow root login fjernt? [Y / n] ... Succes! Som standard kommer MariaDB med en database med navnet 'test' som alle kan få adgang til. Dette er også kun beregnet til test, og skal fjernes, før det flyttes ind i et produktionsmiljø. Fjern test database og adgang til det? [Y / n] - Afprøvningsdatabase ... FEJL 1008 (HY000) på linje 1: Kan ikke tabe database 'test'; database findes ikke ... mislykkedes! Ikke kritisk, fortsæt med at flytte ... - Fjernelse af privilegier på testdatabase ... ... Succes! Genoplæsning af privilegietabellerne sikrer, at alle de ændringer, der er foretaget indtil videre, træder i kraft straks. Genindlæs privilegietabeller nu? [Y / n] ... Succes! Rengøring ... Alt er færdig! Hvis du har gennemført alle ovenstående trin, skal din MariaDB-installation nu være sikker. Tak for at bruge MariaDB!

Screenshot_20160301_224713

Kontroller, om mariadb kører eller ej, ved hjælp af følgende kommando:

sudo service mysql status

Prøveudgang:

[Email protected]: ~ $ sudo service mysql status ● mysql.service - LSB: Start og stop mysql database server daemon Indlæst: loaded (/etc/init.d/mysql; dårlig; leverandør forudindstillet: aktiveret) Aktiv: aktiv (kører) siden Tirs 2016-03-01 13: 41: 21 PST; 7min siden Dokumenter: mand: systemd-sysv-generator (8) CGroup: /system.slice/mysql.service ├─16763 / bin / bash / usr / bin / mysqld_safe ├─16764 logger -p daemon err -t / etc / init.d / mysql -i ├─16908 / usr / sbin / mysqld --basedir = / usr --datadir = / var / lib / mysql - plugin-dir = / usr / lib / mysql / plugin - bruger = mysql - skip-log-fejl --pid-file = / var / køre └─16909 logger -t mysqld -p daemon fejl Mar 01 13: 41: 21 ubuntu / etc / mysql / debian-start [16960]: mysql .columns_priv OK Mar 01 13: 41: 21 ubuntu / etc / mysql / debian-start [16960]: mysql.db OK Mar 01 13: 41: 21 ubuntu / etc / mysql / debian-start [16960]: mysql.event OK Mar 01 13: 41: 21 ubuntu / etc / mysql / debian-start [16960]: mysql.func OK Mar 01 13: 41: 21 ubuntu / etc / mysql / debian-start [16960]: mysql.gtid_slave_pos OK Mar 01 13: 41: 21 ubuntu / etc / mysql / debian-start [16960]: mysql.hjelp_category OK Mar 01 13: 41: 21 ubuntu / etc / mysql / debian-start [16960]: mysql.help_keyword OK Mar 01 X NUMX: 13: 41 ubuntu / etc / mysql / debian-start [21]: mysql.help_relation OK Mar 16960 01: 13: 41 ubuntu / etc / mysql / debian-start [21]: ADVARSEL: mysql.user indeholder 17011 root konti uden kodeord eller plugin! Mar 2 01: 13: 41 ubuntu / etc / mysql / debian-start [21]: Udløsende myisam-gendannelse for alle MyISAM tabeller og aria-gendannelse for alle Aria tabeller

7. Installer PHP

PHP (rekursiv akronym for PHP: Hypertext Preprocessor) er et almindeligt anvendt open-source generelle formål scripting sprog, der er specielt velegnet til webudvikling og kan indlejres i HTML.

Installer PHP med følgende kommando:

sudo apt-get installer php5 php5-fpm php5-mysql

Åben php.ini fil i enhver editor:

Rediger /etc/php5/fpm/php.ini

Find linjen 'cgi.fix_pathinfo = 1', kommentér den og ændre værdien 1 til 0.

cgi.fix_pathinfo = 0

Genstart nu php-fpm-tjenesten.

sudo systemctl genstart php5-fpm

Or

sudo service php5-fpm genstart

For at kontrollere, om php5-fpm kører eller ikke bruger kommando:

sudo systemctl status php5-fpm

Or

sudo service php5-fpm status

Prøveudgang:

[Email protected]: ~ $ systemctl status php5-fpm ● php5-fpm.service - PHP FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php5-fpm.service; aktiveret; sælger forudindstillet: aktiveret) Aktiv: aktiv siden Tue 2016-03-01 14: 31: 10 PST; 32s ago Process: 23563 ExecStartPre = / usr / lib / php5 / php5-fpm-checkconf (kode = afsluttet, status = 0 / SUCCESS) Hoved PID: 23570 (php5-fpm) Status: "Processer aktive: 0, tomgang: 2 , Anmodninger: 0, langsom: 0, Trafik: 0req / sec "Opgaver: 3 (grænse: 512) CGroup: /system.slice/php5-fpm.service ├─23570 php-fpm: masterproces (/ etc / php5 / fpm / php-fpm.conf) ├─23573 php-fpm: pool www └─23574 php-fpm: pool www Mar 01 14: 31: 10 ubuntu systemd [1]: Start PHP FastCGI Process Manager ... Mar 01 14: 31: 10 ubuntu systemd [1]: Startet PHP FastCGI Process Manager.
[Email protected]: ~ $

9. Test PHP

Opret en prøve "testphp.php" fil i nginx dokument rod mappe.

sudo nano /var/www/html/testphp.php

Tilføj følgende linjer i den.

<? php phpinfo (); ?>

Gem og afslut filen.

Naviger til http://server-ip-address/testphp.php. Det vil vise alle detaljer om php som version, bygge dato og kommandoer mv.

phpinfo () - Google Chrome_004

PHP-FPM lytter til stikkontakten /var/run/php5-fpm.sock som standard. Hvis du vil gøre PHP-FPM til at bruge en TCP-forbindelse, skal du åbne filen /etc/php5/fpm/pool.d/www.conf,

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

Find linjen listen = /var/run/php5-fpm.sock,

lyt = /var/run/php5-fpm.sock

og ændre det til lyt = 127.0.0.1: 9000.

lyt = 127.0.0.1: 9000

Gem og afslut filen. Genstart php5-fpm-tjenesten.

sudo systemctl genstart php5-fpm

Or

sudo service php5-fpm genstart

Nu åbner du nginx-konfigurationsfilen:

sudo nano / etc / nginx / sites-available / default

Find linjen fastcgi_pass unix: /var/run/php5-fpm.sock; og skift det til fastcgi_pass 127.0.0.1: 9000; som vist nedenfor.

placering ~ .php $ {try_files $ uri = 404; fastcgi_split_path_info ^ (. +. php) (/.+) $; fastcgi_pass 127.0.0.1: 9000; # # BEMÆRK: Du skal have "cgi.fix_pathinfo = 0;" i php.ini # # # Med php5-cgi alene:
        fastcgi_pass 127.0.0.1: 9000;
        # # Med php5-fpm: # fastcgi_pass unix: /var/run/php5-fpm.sock; fastcgi_index index.php; inkludere fastcgi.conf; }

Gem og afslut filen. Endelig genstart nginx service.

sudo systemctl genstart nginx

Or

sudo service nginx genstart

10. Administrer MySQL-databaser ved hjælp af phpMyAdmin (valgfrit)

phpMyAdmin er et gratis open source web interface værktøj, der bruges til at styre dine MySQL databaser.

Den er tilgængelig i de officielle Debian-arkiver. Så installer det med kommando:

sudo apt-get installer phpmyadmin

Vælg den webserver, der skal konfigureres automatisk til at køre phpMyAdmin.

Som standard vises nginx ikke her. Så vælg apache eller lighttpd, og vi vil konfigurere phpmyadmin til at arbejde sammen med nginx webserver senere.

sk @ server: ~ _005

Type Ja at konfigurere database til phpmyadmin med dbconfig-common.

sk @ server: ~ _006

Indtast MySQL-adgangskode phpmyadmin.

sk @ server: ~ _008

Indtast adgangskoden igen.

sk @ server: ~ _009

Indtast adgangskode til databasens administrative bruger (dvs. MySQL root brugeradgangskode).

sk @ server: ~ _010

phpMyAdmin er installeret nu.

Opret en symbolsk forbindelse mellem phpMyAdmin og webstedets rodmappe. Her er vores hjemmeside roddokumentmappe / usr / share / nginx / html /.

sudo ln -s / usr / del / phpmyadmin / / var / www / html /

Genstart nginx server.

sudo systemctl genstart nginx

Or

sudo service nginx genstart

11. Få adgang til phpMyAdmin Web Console

Nu kan du få adgang til phpmyadmin-konsollen ved at navigere til http://server-ip-address/phpmyadmin/ fra din browser.

Indtast dit MySQL brugernavn og adgangskode, som du har givet i tidligere trin. I mit tilfælde er dens "root" og "ubuntu".

phpMyAdmin - Google Chrome_011

Du bliver omdirigeret til PhpMyAdmin web-interface. Sådan ser mit phpMyAdmin dashboard ud.

192.168.1.103 - localhost | phpMyAdmin 4.4.13.1deb1 - Google Chrome_012

Nu kan du administrere dine MySQL-databaser fra phpMyAdmin web-interface.

Det er det. Din LEMP-server er klar til brug.

Giv en kommentar

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