Panimula

Ang LEMP ay isang akronim para sa Linux, Nginx, MySQL, at PHP. Ang LEMP stack tulad ng LAMP stack (na may Apache sa halip na Nginx) ay ginagamit para sa pag-unlad at paglawak ng mga web application. Ang Nginx sa LEMP ay nagbibigay ng isang modular na hinihimok ng kaganapan na hinihimok ng kaganapan na humahawak ng mga kahilingan sa asynchronous na mga kaganapan. Ang tampok na ito ay nagbibigay-daan sa ito upang magkaroon ng mataas na pagganap sa ilalim ng mataas na naglo-load. Ang MySQL ay ginagamit upang maiimbak ang data ng website samantalang ang PHP ay para sa pagproseso ng pabago-bagong nilalaman ng mga site.


Inilalarawan ng artikulong ito kung paano i-install ang LEMP stack sa Centos 7 VPS o Dedicated Server. Ipinakita namin ang paggamit ng pinakabagong mga bersyon ng mga sangkap ng LEMP Stack sa oras ng pag-publish tulad ng sumusunod:

  • Nginx bersyon 1.15.2
  • Bersyon ng PHP-FPM 7.2
  • Bersyon ng Komunidad ng MySQL 8.0

Nginx

Magagamit ang Open Source NGINX sa dalawang uri:

  • Mainline: Isinasama ang pinakabagong mga tampok at pag-aayos ng bug at laging napapanahon. Ito ay maaasahan, gayunpaman, maaaring magkaroon ito ng ilang mga pang-eksperimentong module at / o ilang mga bagong bug. Inirerekumenda para sa mga server ng pag-unlad.
  • Matatag: Isinasama ang pinakabagong mga tampok na may kritikal na pag-aayos ng bug pabalik sa port ng pangunahing linya. Inirerekumenda para sa mga server ng produksyon.

Mayroong dalawang mga paraan ng pag-install ng alinman sa pangunahing linya o matatag na Nginx tulad ng sumusunod:

  • Pag-install ng package ng Nginx mula sa Nginx Opisyal na Repository o Opisyal na Repository ng OS: Ang pinakamadaling paraan ng pag-install. Isinasama ng package ang halos lahat ng mga opisyal na module ng Nginx.
  • Pag-iipon at Pag-install mula sa Pinagmulan: Mas nababaluktot na paraan ng pag-install habang nagpapasya ka kung aling mga tukoy na module na isasama sa package.

Sa kasong ito, nag-install kami ng Nginx – Uri ng Mainline mula sa opisyal na reporter ng Nginx sa pamamagitan ng paglikha ng yum repository file at i-paste ang pagsasaayos tulad ng sumusunod:

$ sudo vim /etc/yum.repos.d/nginx.repo
[nginx]
pangalan = nginx repo
baseurl = https: //nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck = 0
pinagana = 1

I-save ang file at umalis.

I-update ang repositoryo ng Centos 7 na may imbakan nginx at mag-install nginx

Pag-update ng $ sudo yum
$ sudo yum install nginx -y

Simulan ang nginx at paganahin ang boot

$ sudo systemctl simulan ang nginx
$ sudo systemctl paganahin ang nginx

Patunayan na ang Nginx ay tumatakbo at tumatakbo

[linuxuser @ centos7-lemp ~] $ curl -Ako 127.0.0.1
HTTP / 1.1 200 OK
Server: nginx / 1.15.2
Petsa: Huwebes, 31 Hulyo 2018 13:03:07 GMT
Uri ng Nilalaman: teksto / html
Haba-Nilalaman: 612
Huling-Nabago: Tue, 24 Jul 2018 14:05:29 GMT
Koneksyon: panatilihing-buhay
ETag: "5b573229-264"
Tanggapin-Ranges: mga bait

Mula sa output, kumpirmahin namin ang naka-install na bersyon ay 1.15.2

Maaari mo ring suriin sa pamamagitan ng iyong browser at pagpasok sa ip address o domain name ng iyong web server.

http: // server_domain_name_or_public_IP /

Komunidad ng MySQL

Nag-install kami ng MySQL 8.0 Community (upang pamahalaan ang data ng website) gamit ang mga tagubilin sa aming tutorial Paano Mag-install ng MYSQL 8.0 at Lumikha ng isang Database sa isang CentOS 7 Linux VPS o Nakalaang Server

PHP

Kinakailangan ang PHP sa stack ng LEMP upang paganahin ang pagproseso ng mga dynamic na nilalaman, dahil ang Nginx ay walang inbuilt na kakayahan sa pagproseso ng PHP tulad ng iba pang mga server, hal. Litespeed. Kaugnay nito, nag-install kami ng bersyon ng PHP-FPM (FastCGI Process Manager) 7.2. Ang By-default Centos 7 ay may PHP 5.4 na umabot sa EOL, napapanahon na ito at hindi na suportado. Ang PHP 7.2 ay paganahin ang web application na mag-load nang mas mabilis at magamit ang mas kaunting mga mapagkukunan ng system. Bilang karagdagan, isinasama nito ang built-in na integrasyon ng MySQL database samakatuwid walang putol na gumagana sa naka-install na MySQL 8.0.

I-install at Paganahin ang Repositoryo ng Remi

Ang pakete ng PHP-FPM ay matatagpuan sa imbakan ng Remi.

$ sudo yum install -y yum-utils
$ sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
$ sudo yum-config-manager – magagandang remi-php72

I-install ang PHP-FPM at Karaniwang Ginamit na Mga Module

$ sudo yum install -y php72 php72-php-fpm php72-php-gd php72-php-json php72-php-mbstring php72-php-mysqlnd php72-php-xml php72-php-xmlrpc php72-php-opcache

Magsimula at Paganahin ang PHP-FPM

$ sudo systemctl magsimula php72-php-fpm
Pinapagana ng $ sudo systemctl ang php72-php-fpm

Suriin ang bersyon ng PHP

[linuxuser @ centos7-lemp ~] $ php72 -v
PHP 7.2.8 (cli) (binuo: Jul 17 2018 08:41:40) (NTS)
Copyright (c) 1997-2018 Ang Grupo ng PHP
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
kasama ang Zend OPcache v7.2.8, Copyright (c) 1999-2018, ni Zend Technologies

Pangunahing Pag-configure ng Security Security

I-edit ang file na php.ini at hanapin ang parameter cgi.fix_pathinfo, uncomment ito at nakatakda sa 0. Sa pamamagitan ng default, pinapayagan ng setting na ito para sa PHP na maisakatuparan ang pinakamalapit na file kung hindi ito makahanap ng isang eksaktong tumutugma sa file na PHP. Samakatuwid ang mga gumagamit ay madaling lumikha ng mga nakakahamong mga kahilingan sa PHP na maproseso nang madali ang PHP.

$ sudo vim /etc/opt/remi/php72/php.ini

I-edit ang mga sumusunod:

; nagbibigay ng cgi.fix_pathinfo * tunay * PATH_INFO / PATH_TRANSLATED na suporta para sa CGI. PHP’s
; nakaraang pag-uugali ay upang itakda ang PATH_TRANSLATED sa SCRIPT_FILENAME, at huwag mag-grok
; ano ang PATH_INFO. Para sa karagdagang impormasyon sa PATH_INFO, tingnan ang mga cgi specs. Pagtatakda
; ito sa 1 ay magiging sanhi ng PHP CGI upang ayusin ang mga landas nito upang umayon sa spec. Isang setting
; ng zero ang sanhi ng PHP na kumilos tulad ng dati. Ang Default ay 1. Dapat mong ayusin ang iyong mga script
; upang magamit ang SCRIPT_FILENAME sa halip na PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo = 0

I-configure ang PHP-FPM upang gumana sa Nginx

I-edit ang file ng config ng php-fpm tulad ng mga sumusunod

$ sudo vim /etc/opt/remi/php72/php-fpm.d/www.conf
; Idagdag ang gumagamit ng Nginx
; Unix gumagamit / pangkat ng mga proseso
; Tandaan: Ang gumagamit ay sapilitan. Kung ang pangkat ay hindi nakatakda, ang default na grupo ng gumagamit
; gagamitin.
; RPM: napili ng gumagamit ng apache upang magbigay ng pag-access sa parehong mga direktoryo tulad ng httpd
gumagamit = nginx

; RPM: Panatilihin ang isang pangkat na pinapayagan na sumulat sa log dir.
pangkat = nginx

; Ang address kung saan tanggapin ang mga kahilingan ng FastCGI.
; Ang mga wastong syntaxes ay:
; ‘ip.add.re.ss: port’ – makinig sa isang TCP socket sa isang tukoy na address ng IPv4
; isang tiyak na daungan;
; ‘[ip: 6: addr: ess]: port’ – upang makinig sa isang TCP socket sa isang tukoy na address ng IPv6
; isang tiyak na daungan;
; ‘port’ – upang makinig sa isang TCP socket sa lahat ng mga address
; (IPv6 at IPv4-map) sa isang tukoy na port;
; ‘/ path / to / unix / socket’ – upang makinig sa isang unix socket.
; Tandaan: Ang halaga na ito ay sapilitan.
makinig = 127.0.0.1:9000

I-restart ang serbisyo ng php-fpm upang mabisa ang mga pagbabago ng config

$ sudo systemctl i-restart ang php72-php-fpm

I-edit ang file ng config ng Nginx

$ sudo vim /etc/nginx/sites-enabled/default.conf

Pagkatapos gawin ang mga pagbabago ay dapat na ang mga sumusunod na file:

server {
pakinggan 80;
pangalan ng server ;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log pangunahing;

lokasyon / {
ugat / usr / magbahagi / nginx / html;
index index.php index.html index.htm;
}

error_page 404 /404.html;

# Pag-redirect ng mga pahina ng error sa server sa static na pahina /50x.html
#
error_page 500 502 503 504 /50x.html;
lokasyon = /50x.html {
ugat / usr / magbahagi / nginx / html;
}

# proxy ang mga script ng PHP kay Apache na nakikinig sa 127.0.0.1:80
#
#location ~ \ .php $ {
# proxy_pass http://127.0.0.1;
#}

# ipasa ang mga script ng PHP sa FastCGI server na nakikinig sa 127.0.0.1:9000
#
lokasyon ~ \ .php $ {
ugat / usr / magbahagi / nginx / html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ dokumento_root $ fastcgi_script_name;
isama ang mga fastcgi_params;
}

# Itanggi ang pag-access sa mga file ng .htaccess, kung ang ugat ng dokumento ni Apache
# concurs sa isa ni nginx
#
#location ~ /\.ht {
# tanggihan ang lahat;
#}
}

Subukan kung okay ang config

[linuxuser @ centos7-lemp ~] $ sudo nginx -t
nginx: ang pagsasaayos ng file /etc/nginx/nginx.conf syntax ay ok
nginx: ang file ng pagsasaayos /etc/nginx/nginx.conf test ay matagumpay

I-restart ang nginx upang magawa ang mga pagbabago

$ sudo systemctl i-restart ang nginx

Pagsubok sa PHP

Lumikha ng file impormasyon.php bilang mga sumusunod at ilagay ito sa direktoryo ng root ng web nginin

$ sudo vim /usr/share/nginx/html/info.php
<?php phpinfo (); ?>

I-save at lumabas ang file.

Pagkatapos bisitahin ang address ng browser – http: //your_domain_or_server_public_IP/info.php

Ang web page ay magpapakita ng impormasyon ng PHP tungkol sa server. Kinukumpirma nito na ang Nginx ay gumagana nang maayos sa PHP. Para sa mga layuning pangseguridad, dapat mong magpatuloy upang tanggalin ang file ng info.php sa direktoryo ng web root.

Konklusyon

Ngayon na matagumpay mong na-install ang LEMP stack, maaari mo na ngayong i-host ang iyong kahanga-hangang website ng negosyo o aplikasyon sa web sa direktoryo ng ugat / usr / share / nginx / html at maglingkod sa iyong mga potensyal na customer. Ito ay napaka-simple!

Suriin ang mga nangungunang 3 MySQL hosting services:

A2 Hosting

Panimulang presyo:
$ 3.92


Kahusayan
9.3


Pagpepresyo
9.0


Friendly ng Gumagamit
9.3


Suporta
9.3


Mga Tampok
9.3

Basahin ang mga review

Bisitahin ang A2 Hosting

FastComet

Panimulang presyo:
$ 2.95


Kahusayan
9.7


Pagpepresyo
9.5


Friendly ng Gumagamit
9.7


Suporta
9.7


Mga Tampok
9.6

Basahin ang mga review

Bisitahin ang FastComet

Hostinger

Panimulang presyo:
$ 0.99


Kahusayan
9.3


Pagpepresyo
9.3


Friendly ng Gumagamit
9.4


Suporta
9.4


Mga Tampok
9.2

Basahin ang mga review

Bisitahin ang Hostinger

Kaugnay na Mga Artikulo Paano-Sa

  • Paano i-install ang LEMP (Linux, Nginx, MySQL, PHP) Stack sa isang Ubuntu 18.04 VPS o Dedicated Server
    nasa pagitan
  • Paano i-install ang MYSQL 8.0 at Gumawa ng isang Database sa isang CentOS 7 Linux VPS o Dedicated Server
    nasa pagitan
  • Paano i-install ang phpMyAdmin sa isang CentOS 7 VPS o Dedicated Server
    nasa pagitan
  • Paano mag-tune at i-optimize ang Pagganap ng MySQL 8.0 sa isang CentOS 7 Server
    dalubhasa
  • Paano Mag-install ng CachetHQ Sa isang CentOS 7 VPS o Dedicated Server
    nasa pagitan
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me