Įdiekite LEMP kamino (Nginx, MariaDB, PHP) CentOS7 žingsnis po žingsnio


LEMP reiškia Linux, Nginx (tariamas variklis X), MySQL/MariaDB ir PHP. Tai leidžia serveriui priglobti dinamines svetaines ir žiniatinklio programas. Šiame vadove parodysiu, kaip įdiegti LEMP steką CentOS 7 serveryje. Aš renkuosi įdiegti MariaDB kaip duomenų bazės serverį, o ne MySQL.

Įdiekite „Nginx“ „CentOS7“ iš EPEL

„Nginx“ yra greitas žiniatinklio serveris, palyginti su „Apache“, ir šiomis dienomis tampa vis populiaresnis. Norėdami įdiegti „Nginx“ „CentOS 7“, turime pridėti EPEL saugyklą naudodami šią komandą. EPEL reiškia „Extra Packages for Enterprise Linux“.

sudo yum install epel-release -y

Įveskite slaptažodį. Dabar, kai saugykla yra pridėta, laikas įdiegti „Nginx“:

sudo yum install nginx -y

Įdiegę „Nginx“, turime jį paleisti.

sudo systemctl start nginx

Įgalinkite „Nginx“ paleisti sistemos įkrovos metu.

sudo systemctl enable nginx

Patikrinkite, ar jis veikia:

systemctl status nginx

Išvesties pavyzdys:

 nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:36:31 UTC; 1min 19s ago
 Main PID: 13692 (nginx)
   CGroup: /system.slice/nginx.service
           ├─13692 nginx: master process /usr/sbin/nginx
           └─13693 nginx: worker process

Patikrinkite Nginx versiją:

[linux-terminal@centos7 ~]$ nginx -v
nginx version: nginx/1.12.2

Įveskite savo serverio IP adresą savo žiniatinklio naršyklėje, jei matote toliau pateiktą informaciją, vadinasi, Nginx yra tinkamai įdiegtas.

Savo serverio viešąjį IP adresą galite rasti naudodami šią komandą:

ip address

arba

curl http://icanhazip.com

Jūsų serverio užkarda galėjo išjungti viešą prieigą prie 80 prievado. Norėdami leisti viešą prieigą, liepiame iptables ugniasienei priimti srautą į 80 prievadą naudodami šią komandą.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Dabar jūsų serveris gali talpinti statinius html failus, tačiau norėdami aptarnauti dinamišką svetainę, turime įdiegti MariaDB ir PHP.

Įdiekite „MariaDB“ „CentOS 7“.

„MariaDB“ yra „MySQL“ pakaitalas. Įdiekite jį naudodami šią komandą:

sudo yum install mariadb-server mariadb -y

Kai jis bus įdiegtas, turime jį paleisti.

sudo systemctl start mariadb

Įgalinkite „MariaDB“ paleisti sistemos įkrovos metu.

sudo systemctl enable mariadb

Patikrinti statusą:

systemctl status mariadb

išėjimai:

 mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-09-24 08:48:46 UTC; 23s ago
 Main PID: 13970 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─13970 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

Patikrinkite versiją:

[linux-terminal@centos7 ~]$ mysql --version
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

Dabar turime paleisti saugos scenarijų.

sudo mysql_secure_installation

Kai scenarijus paprašys jūsų dabartinio root slaptažodžio, tiesiog palikite jį tuščią ir paspauskite Enter. Tada įveskite Y ir nustatykite root slaptažodį.

Nustatę pagrindinį slaptažodį, galite tiesiog paspausti Enter, kad atsakytumėte į visus kitus klausimus. (Atkreipkite dėmesį, kad Y raidė rašoma didžiąja, o tai reiškia, kad tai numatytasis atsakymas.)

Dabar pereikime prie PHP dalies.

Įdiekite PHP-FPM „CentOS7“.

Įdiekite PHP ir susijusius paketus naudodami šią komandą:

sudo yum install php php-mysql php-fpm php-gd php-xml php-mbstring -y

Dabar redaguokite php-fpm konfigūracijos failą:

sudo nano /etc/php-fpm.d/www.conf

Raskite šią eilutę:

listen = 127.0.0.1:9000

pakeisk į šitą:

listen = /var/run/php-fpm/php-fpm.sock

tada raskite šias dvi eilutes:

;listen.owner = nobody
;listen.group = nobody

pašalinkite ankstesnius kabliataškius. Galiausiai pakeiskite vartotojo ir grupės reikšmę iš „apache“ į „nginx“:

user = nginx
group = nginx

Išsaugoję ir uždarę failą, paleiskite PHP procesorių:

sudo systemctl start php-fpm

Tada įjunkite php-fpm, kad paleistumėte sistemą.

sudo systemctl enable php-fpm

Sukonfigūruokite „Nginx Virtual Host“.

Sukurkite naują virtualaus pagrindinio kompiuterio failą /etc/nginx/conf.d kataloge

sudo nano /etc/nginx/conf.d/example.com.conf

Pridėkite prie jo šias eilutes. Pakeiskite www.example.com ir example.com savo domenu. Nepamirškite nustatyti savo domeno vardo įrašo.

server {
  listen 80;
  server_name www.example.com example.com;
  root /usr/share/nginx/html;
  index index.php index.html index.htm;
  location / {
    try_files $uri $uri/ /index.php$query_string;
  }
  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root /usr/share/nginx/html;
  }
  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

Išsaugokite ir uždarykite failą. tada iš naujo įkelkite nginx:

sudo systemctl reload nginx

Galite pridėti papildomų virtualiosios prieglobos failų, kad viename serveryje priglobtumėte kelias svetaines.

Išbandykite PHP apdorojimą

Sukurkite failą info.php žiniatinklio šakniniame kataloge:

sudo nano /usr/share/nginx/html/info.php

Įdėkite šį tekstą į failą

<?php phpinfo(); ?>

Išsaugokite ir uždarykite. Tada aplankykite naujai sukurtą failą naršyklėje įvesdami:

http://example.com/info.php

arba

your ip address/info.php

Jei pamatysite kažką panašaus į toliau pateiktą ekrano kopiją, jūsų PHP veikia tinkamai.

Šis failas skirtas tik testavimui. Saugumo sumetimais dabar galite jį pašalinti naudodami šią komandą:

sudo rm /usr/share/nginx/html/info.php

Dabar LEMP įdiegtas, todėl gali kilti klausimas, ką daryti toliau. Na, galite įdiegti „WordPress“ arba „Drupal“ svetainę ant savo LEMP krūvos. Štai ką aš jums parodysiu kitoje pamokoje.