Wụnye LEMP - Nginx, PHP, MariaDB na PhpMyAdmin na OpenSUSE


LEMP ma ọ bụ Linux, Engine-x, MySQL na PHP stack bụ ngwugwu ngwanrọ mejupụtara sọftụwia mepere emepe arụnyere na sistemụ arụmọrụ Linux maka iji ngwa weebụ dabere na PHP nke sava Nginx HTTP na sistemụ njikwa nchekwa data MySQL/MariaDB kwadoro.

Nkuzi a ga-eduzi gị ka esi etinye nchịkọta LEMP na Nginx, MariaDB, PHP, PHP-FPM na PhpMyAdmin na mbipụta OpenSuse/desktọpụ.

Ịwụnye Nginx HTTP Server

Nginx bụ HTTP ngwa ngwa na ntụkwasị obi na sava proxy nke nwere ike ijikwa arịrịọ HTTP dị elu. Ọ na-eji usoro mmemme asynchronous chụpụrụ iji jikwaa arịrịọ, yana ihe owuwu ihe omume ya na-ebute modular nwere ike inye arụmọrụ enwere ike ịkọ karịa n'okpuru ibu dị elu.

Iji tinye Nginx na OpenSuse, mee iwu na-esonụ.

$ sudo zypper install nginx

Ozugbo arụnyere Nginx, ị nwere ike ịmalite ọrụ ahụ ugbu a, wee mee ka ọ malite na akpaghị aka n'oge buut wee nyochaa ọnọdụ Nginx site na ịme iwu ndị a.

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

N'oge a, sava weebụ Nginx kwesịrị ịdị elu ma na-agba ọsọ, ị nwekwara ike nyochaa ọnọdụ site na iji iwu netstat dị ka egosiri.

$ sudo netstat -tlpn | grep nginx

Ugbu a, anyị kwesịrị ịnwale ma nwụnye Nginx na-arụ ọrụ nke ọma. N'adịghị ka nkesa Linux ndị ọzọ, n'okpuru openSUSE, Nginx enweghị ọkọlọtọ index.html akwụkwọ na nchekwa mgbọrọgwụ weebụ. Anyị kwesịrị ịmepụta faịlụ index.html ọhụrụ n'okpuru ndekọ ndekọ weebụ \/srv/www/htdocs\ dị ka ihe ngosi.

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

Ọ bụrụ na etinyere firewalld, ịkwesịrị imepe ọdụ ụgbọ mmiri 80 na 443 iji kwe ka okporo ụzọ webụ na firewall.

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

Ọzọ, mepee ihe nchọgharị weebụ wee gaa na adreesị http://localhost wee nyochaa ibe Nginx.

Ịwụnye MariaDB Database Server

MariaDB bụ ndụdụ efu na mepere emepe nke sistemụ njikwa nchekwa data MySQL. Ọ bụ ndị nrụpụta mbụ MySQL mebere ya ma bu n'obi ịnọ na-emeghe. MariaDB dị ngwa ngwa, nke nwere ike ịgbatị ma sie ike, nwere nnukwu igwe nchekwa nchekwa, plugins na ọtụtụ ngwaọrụ ndị ọzọ na-eme ka ọ bụrụ nke ukwuu maka ụdị ojiji dị iche iche.

Iji wụnye MariaDB na OpenSuse, mee iwu na-esonụ.

$ sudo zypper install mariadb mariadb-client 

Na-esote, bido ọrụ MariaDB maka ugbu a, wee mee ka ọ malite na akpaghị aka n'oge buut wee lelee ọkwa ya.

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

Nzọụkwụ ọzọ dị oke egwu n'okpuru ngalaba a bụ ịchekwa nrụnye nkesa MariaDB. Ya mere, na-agba ọsọ script nchekwa nke ụgbọ mmiri na MariaDB ngwugwu, dị ka egosiri.

Mara: Na-agba ọsọ edemede nchekwa MariaDB yana akụkụ ya niile ka akwadoro maka sava MariaDB niile na mmepụta.

$ sudo mysql_secure_installation 

Mgbe ịmechara edemede ahụ, gụọ nkọwa na nzọụkwụ ọ bụla nke ọma. Ịkwesịrị ịtọ okwuntughe onye ọrụ mgbọrọgwụ, wepụ ndị ọrụ na-amaghị aha, gbanyụọ ohere mgbọrọgwụ dịpụrụ adịpụ, wepụ nchekwa data ule wee nweta ya ma mesịa bugharịa tebụl ihe ùgwù.

Ịwụnye na ịhazi PHP na PHP-FPM

PHP-FPM (obere maka PHP FastCGI Process Manager) bụ ihe ọzọ FastCGI daemon maka PHP nwere ụfọdụ ndị ọzọ atụmatụ na e mere iji jikwaa nnukwu ibu. Ọ na-edobe ọdọ mmiri (ndị ọrụ nwere ike ịza arịrịọ PHP) iji mezuo nke a. N'ụzọ dị mkpa, ọ na-adị ngwa karịa ụzọ CGI ọdịnala, dị ka SUPHP, maka gburugburu PHP ọtụtụ ndị ọrụ.

Iji wụnye PHP na PHP-FPM yana modul achọrọ na-eme iwu a.

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

Tupu anyị amalite ịmalite ọrụ PHP-FPM, anyị kwesịrị ịmepụta faịlụ nhazi achọrọ site na faịlụ ndabara enyere n'oge nrụnye, ma hazie ọrụ dị njikere maka ịrụ ọrụ.

$ 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

Mepee isi php-fpm.conf faịlụ nhazi maka ndezi.

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

Weghachite ahịrị na-esonụ na nọmba ahịrị 24 dị ka egosiri.

error_log = log/php-fpm.log

Chekwaa ma mechie faịlụ ahụ.

Ọzọ, anyị kwesịrị ịkọwapụta ntọala ziri ezi maka ọdọ mmiri ndị ahaziri na faịlụ nhazi www.conf.

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

Nke mbụ, hazie onye nwe Unix na onye nwe otu usoro na onye ọrụ na otu Nginx. Mee nke a site n'ịgbanwe ụkpụrụ nke onye ọrụ na paramita otu site na ọ dịghị onye gaa na nginx.

user = nginx
group = nginx

Ugbu a, chekwaa mgbanwe na faịlụ ma pụọ na ya.

Na mgbakwunye, enwere otu nhazi dị mkpa iji rụọ ọrụ, nke na-echekwa PHP-FPM na faịlụ /etc/php/cli/php.ini faịlụ.

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

Chọọ ahịrị ;cgi.fix_pathinfo=1 wee gbanwee ya.

cgi.fix_pathinfo=0

Chekwaa mgbanwe na faịlụ wee pụọ.

Na-esote, bido ọrụ PHP-FPM maka ugbu a, wee mee ka ọ malite na akpaghị aka n'oge buut wee lelee ọkwa ya.

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

Ịhazi Nginx ka ọ rụọ ọrụ na PHP-FPM

N'oge a, anyị kwesịrị ịhazi Nginx ka ọ rụọ ọrụ na PHP-FPM na faịlụ nhazi Nginx ndabara.

$ sudo vim /etc/nginx/nginx.conf

Mgbe ahụ, chọọ ngalaba na-esonụ, tinyekwa index.php n'ime ndepụta faịlụ ndeksi a tụrụ anya ya.

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

Chọtakwa ngalaba na-esonụ (nke ekwesịrị ịza ajụjụ) wee kwupụta ya. A na-eji ngalaba a nyefee script PHP gaa na sava FastCGI na-ege ntị na 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; 
       }

Chekwaa mgbanwe na faịlụ wee pụọ.

Na-anwale Nginx na PHP-FPM

Nzọụkwụ ọzọ bụ ịnwale ma Nginx na-arụ ọrụ nke ọma na njikọ PHP-FPM site na ịmepụta faịlụ nyocha PHP ọhụrụ n'okpuru akwụkwọ ndekọ DocumentRoot dị ka egosiri.

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

Ugbu a, anyị kwesịrị ịlele ma nhazi Nginx ziri ezi dịka ndị a, tupu anyị amalite ịmalite ọrụ ahụ.

$ sudo nginx -t

Ọ bụrụ na syntax nhazi Nginx dị mma, gaa n'ihu ma malitegharịa ọrụ Nginx na PHP-FPM maka mgbanwe ndị na-adịbeghị anya iji nweta mmetụta.

$ sudo systemctl restart nginx php-fpm

Ugbu a mepee ihe nchọgharị weebụ wee gaa na adreesị http://localhost/info.php iji nyochaa nhazi PHP dị ka egosiri na nseta ihuenyo na-esonụ.

Ịwụnye na ịhazi PhpMyAdmin

phpMyAdmin bụ ngwa n'efu, dị mfe iji yana ngwa ama ama edere na PHP, wuru maka ijikwa sava MySQL n'elu Weebụ. Ọ na-arụ ọrụ dị iche iche na MySQL na MariaDB.

Iji tinye phpMyAdmin na OpenSuse, mee iwu na-esonụ.

$ sudo zypper install phpMyAdmin

Ozugbo echichi mechara, mepụta faịlụ nhazi vhost ọhụrụ maka ịnweta phpMyAdmin dị ka egosiri.

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

Tinye nhazi ndị a na faịlụ.

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; 
   } 
} 

Chekwaa mgbanwe ndị ahụ wee mechie faịlụ ahụ. Mgbe ahụ malitegharịa ọrụ Nginx site na iji iwu a.

$ sudo systemctl restart nginx

Ugbu a gaa na ihe nchọgharị weebụ gị wee pịnye adreesị http://localhost/phpMyAdmin. Ibe nbanye phpMyAdmin kwesịrị igosipụta dị ka egosiri na nseta ihuenyo na-esonụ. Tinye nzere nbanye onye ọrụ mgbọrọgwụ nchekwa data wee pịa Go.

Ọ gwụla! N'ime nkuzi a, anyị akọwara gị otu esi etinye nchịkọta LEMP na Nginx, MariaDB, PHP, PHP-FPM na PhpMyAdmin na mbipụta OpenSuse/desktọpụ. Ọ bụrụ na ị na-eche nsogbu ọ bụla ihu n'oge nhazi, jụọ ajụjụ gị site na mpempe nkọwa n'okpuru.