Bii o ṣe le Fi sori ẹrọ LEMP Stack pẹlu PhpMyAdmin ni Ubuntu 20.04


Fun awọn ti ẹ ti ko mọ kini LEMP jẹ - eyi jẹ apapọ awọn idii sọfitiwia - Lainos, Nginx (ti a pe ni EngineX), MariaDB ati PHP.

O le lo LEMP fun awọn idi idanwo mejeeji tabi ni agbegbe iṣelọpọ gidi lati ṣafihan awọn ohun elo wẹẹbu nipa lilo awọn ilana PHP bii Laravel tabi Yii, tabi awọn eto iṣakoso akoonu bii Joomla

O le ṣe iyalẹnu kini iyatọ laarin atupa ati LEMP. O dara, iyatọ nikan ni olupin ayelujara ti o wa pẹlu - Apache (ni LAMP) ati Nginx (ni LEMP). Awọn olupin ayelujara mejeeji dara julọ ati pe nigba ti Apache jẹ ọkan ti a nlo nigbagbogbo, Nginx ko ṣe afẹyinti ni eyikeyi ọna.

Ohun elo miiran ti a lo ni ibigbogbo ti a fi sii lẹgbẹẹ akopọ LEMP ni PhpMyAdmin - jẹ irinṣẹ orisun wẹẹbu PHP kan fun iṣakoso olupin olupin data MySQL/MariaDB lati ẹrọ lilọ kiri lori ayelujara kan.

Ti o ba n wa ipilẹ LAMP fun Ubuntu 20.04 rẹ, lẹhinna o yẹ ki o ka itọsọna LAMP wa lori Ubuntu 20.04.

  1. Ubuntu 20.04 Itọsọna fifi sori ẹrọ olupin

Ninu nkan yii, iwọ yoo kọ bi o ṣe le fi sori ẹrọ ati tunto akopọ LEMP pẹlu PhpMyAdmin ni olupin Ubuntu 20.04.

Igbesẹ 1: Fifi Nginx sori Ubuntu 20.04

1. Nginx jẹ olupin wẹẹbu iyara ti o yara ti a ṣe apẹrẹ si olupin ọpọlọpọ awọn isopọ nigbakan laisi jijẹ awọn orisun olupin pupọ. Eyi ni idi ti o jẹ igbagbogbo ayanfẹ ayanfẹ ni awọn agbegbe ile-iṣẹ.

NGINX tun lo ni igbagbogbo bi iwọntunwọnsi fifuye ati kaṣe akoonu wẹẹbu. O ṣe atilẹyin orisun-Orukọ ati awọn olupin foju-orisun IP (ti o ṣe afiwe si awọn ọmọ ogun foju ni Apache).

O le fi Nginx sori tabili tabili Ubuntu 20.04 rẹ tabi olupin nipa ṣiṣe pipaṣẹ atẹle.

$ sudo apt update
$ sudo apt install nginx

Awọn faili iṣeto Nginx ti wa ni fipamọ labẹ itọsọna/ati be be/nginx ati faili iṣeto akọkọ rẹ ni /etc/nginx/nginx.conf. Ni pataki, gbongbo iwe aṣẹ aiyipada rẹ fun titoju awọn faili wẹẹbu rẹ jẹ/usr/share/nginx/html /. Ṣugbọn o le lo boṣewa/var/www/html eyiti o yẹ ki o tunto ni oju opo wẹẹbu rẹ tabi ohun elo olupin iṣeto iṣeto bulọọki.

2. Olupilẹṣẹ package Ubuntu nfa awọn eto lati bẹrẹ iṣẹ Nginx ati mu ki o bẹrẹ laifọwọyi ni gbogbo igba ti a tun bẹrẹ olupin naa. Lo awọn ofin systemctl atẹle lati jẹrisi pe iṣẹ n ṣiṣẹ ati pe o ti muu ṣiṣẹ.

$ sudo systemctl status nginx 
$ sudo systemctl is-enabled nginx

3. Bayi o to lati ṣayẹwo boya fifi sori Nginx ṣe aṣeyọri nipa pipe oju-iwe Nginx nipasẹ aṣawakiri nipa lilo Adirẹsi IP olupin.

http://SERVER_IP

Ti o ko ba mọ adiresi IP olupin rẹ, o le wa nipa lilo pipaṣẹ IP bi o ti han.

$ ip addr show

Oju-iwe wẹẹbu aiyipada NGINX yẹ ki o fifuye bi o ṣe han ninu sikirinifoto ti n tẹle, jẹrisi fifi sori ẹrọ deede ati iṣẹ.

Igbesẹ 2: Fifi aaye data MariaDB sori Ubuntu 20.04

4. MariaDB jẹ eto iṣakoso data ibatan ibatan tuntun ti a ṣe apẹrẹ bi orita agbegbe ti MySQL lẹhin ti o jẹ ohun-ini Oracle.

Fifi sori ẹrọ ti MariaDB rọrun ati pe o le bẹrẹ pẹlu aṣẹ bi:

$ sudo apt install mariadb-server mariadb-client

5. Iṣẹ MariaDB tun bẹrẹ laifọwọyi ati muu ṣiṣẹ lati bẹrẹ nigbagbogbo ni bata eto ati pe o le jẹrisi eyi nipa lilo awọn ofin wọnyi.

$ sudo systemctl status mariadb
$ sudo systemctl is-enabled mariadb

6. Ti o ba fẹ ṣe ilọsiwaju aabo MariaDB, o le ṣiṣe aṣẹ mysql_secure_installation , eyiti yoo pese diẹ ninu ipilẹ, sibẹsibẹ awọn aṣayan pataki lati tunto:

$ sudo mysql_secure_installation

Lẹhinna yan aṣayan lati ṣeto gbongbo ibi ipamọ data (tabi alakoso) ọrọ igbaniwọle olumulo ki o tẹle awọn taarẹ ki o farabalẹ ka awọn ibeere naa. Lati ni aabo olupin data rẹ, dahun awọn ibeere bi o ṣe han ninu sikirinifoto.

  • Tẹ ọrọ igbaniwọle lọwọlọwọ fun gbongbo (tẹ fun ko si): Tẹ
  • sii
  • Ṣeto ọrọ igbaniwọle root? [Y/n] y
  • Mu awọn olumulo alailorukọ kuro? [Y/n] y
  • Ṣe iwọle wiwọle lati gbongbo latọna jijin? [Y/n] y
  • Mu ibi ipamọ data idanwo kuro ki o wọle si rẹ? [Y/n] y
  • Tun gbee awọn tabili anfaani bayi? [Y/n] y

7. Lati ṣẹda, ṣakoso, ati ṣe awọn iṣẹ ibi ipamọ data, o nilo lati aṣẹ mysql ikarahun pẹlu asia -u lati ṣafihan orukọ olumulo data ati -p lati pese ọrọ igbaniwọle olumulo .

Lati sopọ bi olumulo gbongbo, lo pipaṣẹ sudo (paapaa laisi asia -p ) bibẹẹkọ iwọ yoo gba aṣiṣe ti o ṣe afihan ni sikirinifoto atẹle.

$ mysql -u root -p
$ sudo mysql -u root

Igbesẹ 3: Fifi PHP sii ni Ubuntu 20.04

8. PHP jẹ orisun ṣiṣii olokiki, irọrun, ati ede afọwọkọ ti o ni agbara fun kikọ awọn oju opo wẹẹbu ati awọn ohun elo wẹẹbu. O ṣe atilẹyin ọpọlọpọ awọn imuposi siseto. Ni pataki, agbegbe PHP tobi ati Oniruuru, ti o ni aimọye awọn ikawe, awọn ilana, ati awọn paati to wulo.

NGINX lo FPM (Oluṣakoso ilana FastCGI) tabi PHP-FPM, lati ṣe ilana awọn iwe afọwọkọ PHP. PHP-FPM jẹ imuse miiran ti a lo ni ibigbogbo PHP FastCGI imuse ti o nru pẹlu ọpọlọpọ awọn ẹya afikun ati pe o ti lo fun agbara awọn aaye ijabọ giga/awọn ohun elo ayelujara.

Lati fi PHP ati PHP-FPM sori ẹrọ, ṣiṣe aṣẹ atẹle eyiti yoo tun fi diẹ ninu awọn idii ti o nilo sii.

$ sudo apt install php php-mysql php-fpm

Niwọn igba ti PHP 7.4 jẹ ẹya aiyipada ti PHP ni Ubuntu 20.04, awọn faili iṣeto PHP wa ni /etc/php/7.4/ ati awọn faili iṣeto PHP-FPM ti wa ni fipamọ labẹ /etc/php/7.4/fpm.

9. Nigbamii, ṣayẹwo ti iṣẹ php7.4-fpm ba wa ni oke ati nṣiṣẹ ati boya o ti ṣiṣẹ pẹlu aṣẹ atẹle.

$ sudo systemctl status php7.4-fpm
$ sudo systemctl is-enabled php7.4-fpm

Igbesẹ 4: Tito leto Nginx lati ṣiṣẹ pẹlu PHP-FPM

10. Bayi o nilo lati tunto NGINX si awọn ibeere alabara aṣoju si PHP-FPM, eyiti o jẹ aiyipada ti a tunto lati tẹtisi lori iho UNIX gẹgẹbi a ti ṣalaye nipasẹ paramita gbọ ni /etc/php/7.4/fpm/pool.d/www .conf aiyipada faili iṣeto ni adagun-odo.

$ sudo vi /etc/php/7.4/fpm/pool.d/www.conf 

11. Ninu faili atunto olupin olupin aiyipada (/ ati be be lo/nginx/awọn aaye-wa/aiyipada), ṣoki ilana ipo fun ṣiṣe awọn ibeere PHP lati dabi ẹni ti o han ni sikirinifoto atẹle.

$ sudo vi /etc/nginx/sites-available/default

Fipamọ faili naa ki o jade.

12. Lẹhinna idanwo idanwo iṣeto NGINX fun atunse. Ti o ba dara, tun bẹrẹ iṣẹ Nginx lati lo awọn ayipada tuntun.

$ sudo nginx -t
$ sudo systemctl restart nginx

13. Bayi ṣe idanwo ti NGINX le ṣiṣẹ ni apapo pẹlu PHP-FPM lati ṣe ilana awọn ibeere PHP. Ṣẹda oju-iwe info.php ti o rọrun labẹ itọsọna gbongbo iwe-ipamọ.

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

14. Ninu ẹrọ aṣawakiri rẹ, lilö kiri ni lilo adirẹsi atẹle. Oju-iwe iṣeto PHP yẹ ki o fifa fifihan bi o ṣe han ninu sikirinifoto atẹle.

http://SERVER_IP/info.php

Igbesẹ 5: Fifi PhpMyAdmin sii ni Ubuntu 20.04

15. PhpMyAdmin jẹ ọfẹ ati orisun-orisun ohun elo PHP ti o ni orisun wẹẹbu ti a ṣẹda pataki fun sisakoso awọn olupin data MySQL/MariaDB nipasẹ ẹrọ lilọ kiri lori ayelujara kan. O pese wiwo ayaworan ti o ni ojulowo ati ṣe atilẹyin ọpọlọpọ awọn ẹya ti o wọpọ fun awọn iṣẹ ṣiṣe iṣakoso data.

$ sudo apt install phpmyadmin

16. Lakoko fifi sori package, ao beere lọwọ rẹ lati tunto ọpọlọpọ awọn abala ti package PhpMyAdmin. Ni akọkọ, yoo ṣetan lati yan olupin ayelujara aiyipada fun ṣiṣe rẹ. Tẹ Esc nitori NGINX ko si lori atokọ ti a pese.

17. Nigbamii ti, PhpMyAdmin nilo ibi ipamọ data lati ṣiṣẹ pẹlu. Ninu iyara iṣeto iṣeto yii, yan Bẹẹni lati tunto ipilẹ data fun PhpMyAdmin pẹlu package dbconfig-wọpọ.

18. Ni iyara ti nbọ, o nilo lati pese ọrọ igbaniwọle fun PhpMyAdmin lati forukọsilẹ pẹlu ibi ipamọ data MariaDB. Tẹ ọrọ igbaniwọle to ni aabo sii ki o tẹ Tẹ.

Igbesẹ 6: Tito leto NGINX lati Sin Aaye PhpMyAdmin

19. Lati jẹ ki NGINX ṣiṣẹ fun aaye PhpMyAdmin ti o wa ni/usr/share/phpmyadmin, ṣẹda a symlink fun itọsọna yii labẹ gbongbo iwe-ipamọ, lẹhinna ṣeto awọn igbanilaaye ti o tọ ati nini lori itọsọna PHPMyAdmin gẹgẹbi atẹle.

$ sudo ln -s  /usr/share/phpmyadmin /var/www/html/phpmyadmin
$ sudo chmod 775 -R /usr/share/phpmyadmin/
$ sudo chown root:www-data -R /usr/share/phpmyadmin/

20. Yato si, rii daju pe itọsọna atọka ninu iṣeto iṣeto bulọọki olupin (/ ati be be/nginx/awọn aaye-wa/aiyipada) faili pẹlu index.php bi o ṣe han ninu sikirinifoto atẹle.

21. Nigbamii, tun bẹrẹ iṣẹ Nginx lẹẹkan si lati lo awọn ayipada ti o wa loke.

$ sudo systemctl restart nginx

22. Bayi wọle si aaye PhpMyAdmin lati ẹrọ lilọ kiri ayelujara kan nipa lilo adirẹsi atẹle.

http://SERVER_IP/phpmyadmin

Ni oju-iwe iwọle, jẹrisi pẹlu orukọ olumulo ati ọrọ igbaniwọle PHPMyAdmin. Ranti wiwọle olumulo latọna jijin ti alaabo ayafi ti o ba n wọle si PHPMyAdmin lori localhost nibiti a ti fi aaye data MariaDB sii, iraye si gbongbo kii yoo ṣiṣẹ.

Ni ikẹhin ṣugbọn ko kere ju, ni aabo fifi sori ẹrọ PhpMyAdmin rẹ nipa lilo itọsọna wa: 4 Awọn imọran Wulo lati Ni aabo oju-iwe wẹẹbu PhpMyAdmin.

Ipari

Eto LEMP rẹ ti pari bayi ati pe o le bẹrẹ kọ awọn ohun elo wẹẹbu rẹ tabi ṣere pẹlu awọn iṣẹ Nginx ati MariaDB ti o ṣẹṣẹ fi sii. Iwọnyi lo ni lilo lọpọlọpọ ati nini imoye diẹ sii ninu wọn jẹ iṣeduro gíga fun awọn alakoso eto.