Fi sori ẹrọ LEMP - Nginx, PHP, MariaDB ati PhpMyAdmin ni OpenSUSE


LEMP tabi Linux, Engine-x, MySQL ati akopọ PHP jẹ lapapo sọfitiwia kan ti o ni sọfitiwia orisun orisun ti a fi sii lori ẹrọ ṣiṣe Linux fun ṣiṣe awọn ohun elo ayelujara ti o da lori PHP ti agbara nipasẹ olupin Nginx HTTP ati eto iṣakoso data MySQL/MariaDB.

Itọsọna yii yoo ṣe itọsọna fun ọ lori bawo ni a ṣe le fi akopọ LEMP sori ẹrọ pẹlu Nginx, MariaDB, PHP, PHP-FPM ati PhpMyAdmin lori olupin OpenSuse/awọn ikede tabili.

Fifi Nginx HTTP Server sii

Nginx jẹ iyara ati igbẹkẹle HTTP ati olupin aṣoju eyiti o le mu fifuye giga ti awọn ibeere HTTP. O nlo ọna iwakọ iṣẹlẹ ti asynchronous si awọn ibeere mimu, ati faaji iṣẹlẹ apọjuwọn rẹ le pese iṣẹ asọtẹlẹ diẹ sii labẹ awọn ẹru giga.

Lati fi Nginx sori OpenSuse, ṣiṣe aṣẹ atẹle.

$ sudo zypper install nginx

Lọgan ti a fi sori ẹrọ Nginx, o le bẹrẹ iṣẹ fun bayi, lẹhinna muu ṣiṣẹ lati bẹrẹ-adaṣe ni akoko bata ati ṣayẹwo ipo Nginx nipa ṣiṣe awọn ofin wọnyi.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

Ni aaye yii, olupin ayelujara Nginx yẹ ki o wa ni ṣiṣiṣẹ, o tun le ṣayẹwo ipo naa nipa lilo pipaṣẹ netstat bi o ti han.

$ sudo netstat -tlpn | grep nginx

Bayi, a nilo lati ṣe idanwo ti fifi sori Nginx ba ṣiṣẹ daradara. Ko dabi lori awọn pinpin kaakiri Linux miiran, labẹ openSUSE, Nginx ko ni iwe-aṣẹ boṣewa index.html ni folda gbongbo wẹẹbu. A nilo lati ṣẹda index.html faili labẹ itọsọna wẹẹbu gbongbo \"/ srv/www/htdocs \" bi ifihan.

$ echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

Ti o ba ti fi sori ẹrọ firewalld, o nilo lati ṣii ibudo 80 ati 443 lati gba ijabọ oju opo wẹẹbu lori ogiriina.

$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

Nigbamii, ṣii ẹrọ lilọ kiri lori ayelujara kan ki o lọ kiri si adirẹsi http:// localhost ki o ṣayẹwo oju-iwe Nginx naa.

Fifi Olupin aaye data MariaDB sii

MariaDB jẹ orita orisun ọfẹ ati ṣiṣi ti eto iṣakoso data ibatan ibatan MySQL. O ti dagbasoke nipasẹ awọn oludasilẹ akọkọ ti MySQL ati pinnu lati duro si orisun ṣiṣi. MariaDB yara, ti iwọn ati logan, pẹlu eto ilolupo eda ti awọn ẹrọ ibi ipamọ, awọn afikun ati ọpọlọpọ awọn irinṣẹ miiran jẹ ki o wapọ pupọ fun ọpọlọpọ awọn ọran lilo pupọ.

Lati fi MariaDB sori OpenSuse, ṣiṣe aṣẹ atẹle.

$ sudo zypper install mariadb mariadb-client 

Nigbamii, bẹrẹ iṣẹ MariaDB fun bayi, lẹhinna muu ṣiṣẹ lati bẹrẹ-adaṣe ni akoko bata ati ṣayẹwo ipo rẹ.

$ sudo systemctl start mariadb 
$ sudo systemctl enable mariadb 
$ sudo systemctl status mariadb 

Igbese pataki ti o tẹle labẹ abala yii ni lati ni aabo fifi sori ẹrọ olupin MariaDB. Nitorinaa ṣiṣe iwe afọwọkọ aabo eyiti o gbe pẹlu package MariaDB, bi o ti han.

Akiyesi: Ṣiṣe akọọlẹ aabo MariaDB ati gbogbo awọn ẹya rẹ ni iṣeduro ni iṣeduro fun gbogbo awọn olupin MariaDB ni iṣelọpọ.

$ sudo mysql_secure_installation 

Lẹhin ṣiṣe akosile, ka apejuwe ni igbesẹ kọọkan ni pẹlẹpẹlẹ. O yẹ ki o ṣeto ọrọigbaniwọle olumulo root, yọ awọn olumulo alailorukọ kuro, mu wiwọle root kuro, yọ ibi ipamọ data idanwo ati iraye si si ati nikẹhin gbe awọn tabili awọn anfani pada.

Fifi ati tunto PHP ati PHP-FPM

PHP-FPM (kukuru fun Oluṣakoso ilana ilana PHP FastCGI) jẹ yiyan daemon FastCGI fun PHP pẹlu diẹ ninu awọn ẹya afikun ati apẹrẹ lati mu awọn ẹru giga. O ṣetọju awọn adagun-odo (awọn oṣiṣẹ ti o le dahun si awọn ibeere PHP) lati ṣe eyi. Ni pataki, o yara ju awọn ọna ipilẹ CGI ti aṣa, bii SUPHP, fun awọn agbegbe PHP olumulo pupọ.

Lati fi PHP ati PHP-FPM sori ẹrọ pẹlu awọn modulu ti o nilo ṣiṣe aṣẹ atẹle.

$ sudo zypper install php php-mysql php-fpm php-gd php-mbstring

Ṣaaju ki a to tẹsiwaju lati bẹrẹ iṣẹ PHP-FPM, a nilo lati ṣẹda awọn faili iṣeto ti o nilo lati awọn faili aiyipada ti a pese lakoko fifi sori ẹrọ, ati tunto iṣẹ ti o ṣetan fun awọn iṣẹ.

$ sudo cp /etc/php7/fpm/php-fpm.conf.default  /etc/php7/fpm/php-fpm.conf 
$ sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

Lẹhinna ṣii akọkọ php-fpm.conf faili iṣeto fun ṣiṣatunkọ.

$ sudo vim /etc/php7/fpm/php-fpm.conf 

Uncomment laini atẹle ni nọmba laini 24 bi o ti han.

error_log = log/php-fpm.log

Fipamọ ki o pa faili naa.

Nigbamii ti, a nilo lati ṣalaye awọn eto to tọ fun awọn adagun atunto ni www.conf faili iṣeto.

$ sudo vim /etc/php7/fpm/php-fpm.d/www.conf

Ni akọkọ, tunto oluwa Unix ati oluwa ẹgbẹ ti awọn ilana si olumulo Nginx ati ẹgbẹ. Ṣe eyi nipa yiyipada awọn iye ti olumulo ati awọn ipilẹ ẹgbẹ lati ko si ẹnikan si nginx .

user = nginx
group = nginx

Bayi fi awọn ayipada pamọ si faili ki o jade kuro.

Ni afikun, iṣeto pataki diẹ sii wa lati ṣe, eyiti o ni aabo PHP-FPM ninu /etc/php/cli/php.ini faili.

$ sudo vim /etc/php7/cli/php.ini

Wa laini ; cgi.fix_pathinfo = 1 ki o yipada si.

cgi.fix_pathinfo=0

Fipamọ awọn ayipada ninu faili ki o jade.

Nigbamii, bẹrẹ iṣẹ PHP-FPM fun bayi, lẹhinna muu ṣiṣẹ lati bẹrẹ-adaṣe ni akoko bata ati ṣayẹwo ipo rẹ.

$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
$ sudo systemctl status php-fpm

Tito leto Nginx lati Ṣiṣẹ pẹlu PHP-FPM

Ni aaye yii, a nilo lati tunto Nginx lati ṣiṣẹ pẹlu PHP-FPM ninu faili iṣeto Nginx aiyipada.

$ sudo vim /etc/nginx/nginx.conf

Lẹhinna wa fun apakan atẹle, ki o ṣafikun index.php ninu atokọ ti awọn faili itọka ti a reti.

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

Tun wa apakan atẹle (eyiti o yẹ ki o ṣalaye jade) ati ṣoki rẹ. A lo apakan yii lati kọja awọn iwe afọwọkọ PHP si olupin olupin FastCGI ti n tẹtisi lori 127.0.0.1:9000.

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

Fipamọ awọn ayipada ninu faili ki o jade.

Idanwo Nginx ati PHP-FPM

Igbese ti n tẹle ni lati ṣe idanwo ti Nginx n ṣiṣẹ daradara ni apapo pẹlu PHP-FPM nipa ṣiṣẹda faili idanwo PHP tuntun labẹ ilana DocumentRoot bi o ti han.

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

Bayi a nilo lati ṣayẹwo ti iṣeto Nginx ba tọ bi atẹle, ṣaaju ki a to tẹsiwaju lati tun bẹrẹ iṣẹ naa.

$ sudo nginx -t

Ti ilana iṣeto Nginx ba dara, lọ siwaju ki o tun bẹrẹ iṣẹ Nginx ati PHP-FPM fun awọn ayipada to ṣẹṣẹ lati mu ipa.

$ sudo systemctl restart nginx php-fpm

Bayi ṣii ẹrọ lilọ kiri lori ayelujara kan ki o lọ kiri si adirẹsi http://localhost/info.php lati jẹrisi iṣeto PHP bi o ṣe han ninu sikirinifoto atẹle.

Fifi sori ẹrọ ati tito leto PhpMyAdmin

phpMyAdmin jẹ ọfẹ, rọrun-si-lilo ati ohun elo olokiki ti a kọ sinu PHP, ti a ṣe fun sisakoso olupin MySQL lori Wẹẹbu naa. O ṣe atilẹyin ọpọlọpọ awọn iṣẹ lori MySQL ati MariaDB.

Lati fi phpMyAdmin sori ẹrọ lori OpenSuse, ṣiṣe aṣẹ atẹle.

$ sudo zypper install phpMyAdmin

Lọgan ti fifi sori ẹrọ ba ti pari, ṣẹda faili atunto vhost tuntun fun iraye si phpMyAdmin bi o ti han.

$ sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

Ṣafikun iṣeto atẹle atẹle si faili.

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

   location / { 
       try_files $uri /index.php?$args; 
   } 

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

Fipamọ awọn ayipada ki o pa faili naa. Lẹhinna tun bẹrẹ iṣẹ Nginx pẹlu aṣẹ atẹle.

$ sudo systemctl restart nginx

Bayi lọ si aṣawakiri wẹẹbu rẹ ki o tẹ adirẹsi http:// localhost/phpMyAdmin. Oju-iwe iwọle iwọle phpMyAdmin yẹ ki o han bi o ṣe han ninu sikirinifoto atẹle. Tẹ awọn ẹrí wiwọle awọn olumulo wiwọle data rẹ ki o tẹ Lọ.

Gbogbo ẹ niyẹn! Ninu ẹkọ yii, a ti ṣalaye fun ọ bi o ṣe fi akopọ LEMP sii pẹlu Nginx, MariaDB, PHP, PHP-FPM ati PhpMyAdmin lori awọn ikede OpenSuse olupin/tabili. Ti o ba nkọju si eyikeyi awọn oran lakoko iṣeto, ṣe beere awọn ibeere rẹ nipasẹ fọọmu asọye ni isalẹ.