I-install ang LEMP - Nginx, PHP, MariaDB ug PhpMyAdmin sa OpenSUSE


Ang LEMP o Linux, Engine-x, MySQL ug PHP stack usa ka software bundle nga gilangkoban sa open source software nga na-install sa Linux operating system para sa pagpadagan sa PHP base sa web applications nga gipadagan sa Nginx HTTP server ug MySQL/MariaDB database management system.

Kini nga panudlo maggiya kanimo kung giunsa ang pag-install sa LEMP stack nga adunay Nginx, MariaDB, PHP, PHP-FPM ug PhpMyAdmin sa OpenSuse server/desktop nga mga edisyon.

Pag-instalar sa Nginx HTTP Server

Ang Nginx usa ka paspas ug kasaligan nga HTTP ug proxy server nga makadumala sa mas taas nga load sa mga hangyo sa HTTP. Naggamit kini og usa ka asynchronous nga pamaagi nga gipatuyok sa panghitabo sa pagdumala sa mga hangyo, ug ang modular nga arkitektura nga gipalihok sa panghitabo niini makahatag og mas matag-an nga performance ubos sa taas nga mga karga.

Aron ma-install ang Nginx sa OpenSuse, pagdagan ang mosunud nga mando.

$ sudo zypper install nginx

Sa higayon nga ma-install ang Nginx, mahimo nimong sugdan ang serbisyo sa pagkakaron, dayon himoa kini nga auto-start sa boot time ug pamatud-i ang status sa Nginx pinaagi sa pagpadagan sa mosunod nga mga sugo.

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

Niini nga punto, ang Nginx web server kinahanglan nga nagdagan ug nagdagan, mahimo usab nimo masusi ang status gamit ang netstat command sama sa gipakita.

$ sudo netstat -tlpn | grep nginx

Karon, kinahanglan natong sulayan kung ang pag-instalar sa Nginx maayo ba. Dili sama sa ubang mga distribusyon sa Linux, ubos sa openSUSE, ang Nginx walay standard index.html nga dokumento sa web root folder. Kinahanglan namong maghimo ug bag-ong index.html file ubos sa root web directory \/srv/www/htdocs\ as show.

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

Kung na-install nimo ang firewalld, kinahanglan nimo nga ablihan ang port 80 ug 443 aron tugutan ang trapiko sa web sa firewall.

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

Sunod, pag-abli sa usa ka web browser ug pag-navigate sa adres http://localhost ug i-verify ang Nginx page.

Pag-instalar sa MariaDB Database Server

Ang MariaDB usa ka libre ug open source fork sa MySQL relational database management system. Gipalambo kini sa orihinal nga mga developer sa MySQL ug gituyo nga magpabilin nga bukas nga tinubdan. Ang MariaDB paspas, scalable ug lig-on, nga adunay usa ka dato nga ekosistema sa mga makina sa pagtipig, mga plugins ug daghang uban pang mga himan nga naghimo niini nga labi ka magamit alang sa usa ka lainlaing mga kaso sa paggamit.

Aron ma-install ang MariaDB sa OpenSuse, padagana ang mosunod nga sugo.

$ sudo zypper install mariadb mariadb-client 

Sunod, sugdi ang serbisyo sa MariaDB sa pagkakaron, dayon himoa kini nga awtomatikong magsugod sa oras sa pag-boot ug susihon ang kahimtang niini.

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

Ang sunod nga kritikal nga lakang sa ilawom sa kini nga seksyon mao ang pagsiguro sa pag-install sa server sa MariaDB. Busa pagdagan ang script sa seguridad nga gipadala sa pakete sa MariaDB, ingon sa gipakita.

Hinumdomi: Ang pagpadagan sa script sa seguridad sa MariaDB ug ang tanan nga mga bahin niini girekomenda kaayo alang sa tanan nga mga server sa MariaDB sa produksiyon.

$ sudo mysql_secure_installation 

Human sa pagpadagan sa script, basaha pag-ayo ang paghulagway sa matag lakang. Kinahanglan nimo nga magbutang usa ka password sa root user, tangtangon ang mga wala mailhi nga tiggamit, pag-disable ang hilit nga pag-access sa gamut, kuhaa ang database sa pagsulay ug pag-access niini ug sa katapusan i-reload ang lamesa sa mga pribilehiyo.

Pag-instalar ug Pag-configure sa PHP ug PHP-FPM

Ang PHP-FPM (mubo alang sa PHP FastCGI Process Manager) usa ka alternatibo nga FastCGI daemon para sa PHP nga adunay pipila ka dugang nga mga bahin ug gidesinyo sa pagdumala sa taas nga mga karga. Nagmintinar kini og mga pool (mga trabahante nga makatubag sa mga hangyo sa PHP) aron matuman kini. Importante, kini mas paspas kay sa tradisyonal nga CGI-based nga mga pamaagi, sama sa SUPHP, para sa multi-user PHP environment.

Aron ma-install ang PHP ug PHP-FPM kauban ang gikinahanglan nga mga module padagana ang mosunod nga mando.

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

Sa dili pa kita mopadayon sa pagsugod sa PHP-FPM nga serbisyo, kita kinahanglan nga maghimo sa gikinahanglan nga configuration files gikan sa default files nga gihatag sa panahon sa pag-instalar, ug i-configure ang serbisyo nga andam na alang sa mga operasyon.

$ 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

Dayon ablihi ang main php-fpm.conf configuration file para sa pag-edit.

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

Uncomment ang mosunod nga linya sa linya nga numero 24 sama sa gipakita.

error_log = log/php-fpm.log

I-save ug isira ang file.

Sunod, kinahanglan namong i-define ang saktong mga setting para sa gi-configure nga pool sa www.conf configuration file.

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

Una, i-configure ang tag-iya sa Unix ug tag-iya sa grupo sa mga proseso sa user ug grupo sa Nginx. Buhata kini pinaagi sa pag-usab sa mga bili sa user ug mga parameter sa grupo gikan sa nobody ngadto sa nginx.

user = nginx
group = nginx

Karon i-save ang mga pagbag-o sa file ug paggawas niini.

Dugang pa, adunay usa pa ka importante nga configuration nga himoon, nga nagsiguro sa PHP-FPM sa /etc/php/cli/php.ini file.

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

Pangitaa ang linya ;cgi.fix_pathinfo=1 ug usba kini sa.

cgi.fix_pathinfo=0

I-save ang mga pagbag-o sa file ug paggawas.

Sunod, sugdi ang PHP-FPM nga serbisyo sa pagkakaron, unya himoa kini nga auto-start sa boot time ug susihon ang status niini.

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

Pag-configure sa Nginx aron Magtrabaho sa PHP-FPM

Niini nga punto, kinahanglan natong i-configure ang Nginx aron magtrabaho kauban ang PHP-FPM sa default nga file sa configuration sa Nginx.

$ sudo vim /etc/nginx/nginx.conf

Dayon pangitaa ang mosunod nga seksyon, ug idugang ang index.php sa listahan sa gipaabot nga index files.

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

Pangitaa usab ang mosunod nga seksyon (nga kinahanglang i-comment out) ug i-uncomment kini. Kini nga seksyon gigamit sa pagpasa sa PHP scripts sa FastCGI server nga naminaw sa 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; 
       }

I-save ang mga pagbag-o sa file ug paggawas.

Pagsulay sa Nginx ug PHP-FPM

Ang sunod nga lakang mao ang pagsulay kung ang Nginx nagtrabaho nga maayo kauban sa PHP-FPM pinaagi sa paghimo og bag-ong PHP test file ubos sa DocumentRoot directory sama sa gipakita.

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

Karon kinahanglan namong susihon kung husto ba ang configuration sa Nginx sama sa mosunod, sa dili pa kami magpadayon sa pagsugod pag-usab sa serbisyo.

$ sudo nginx -t

Kung ang Nginx configuration syntax ok, ipadayon ug i-restart ang Nginx ug PHP-FPM nga mga serbisyo alang sa bag-o nga mga pagbag-o nga epektibo.

$ sudo systemctl restart nginx php-fpm

Karon ablihi ang web browser ug navigate sa adres http://localhost/info.php aron mapamatud-an ang PHP configuration sama sa gipakita sa mosunod nga screenshot.

Pag-instalar ug Pag-configure sa PhpMyAdmin

Ang phpMyAdmin usa ka libre, yano nga dali gamiton ug sikat nga himan nga gisulat sa PHP, gihimo alang sa pagdumala sa MySQL server sa Web. Nagpasiugda kini sa usa ka halapad nga mga operasyon sa MySQL ug MariaDB.

Aron ma-install ang phpMyAdmin sa OpenSuse, padagana ang mosunod nga sugo.

$ sudo zypper install phpMyAdmin

Kung kompleto na ang instalasyon, paghimo ug bag-ong vhost configuration file para sa pag-access sa phpMyAdmin sama sa gipakita.

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

Idugang kining mosunod nga configuration sa file.

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

I-save ang mga pagbag-o ug isira ang file. Dayon i-restart ang serbisyo sa Nginx gamit ang mosunod nga sugo.

$ sudo systemctl restart nginx

Karon adto sa imong web browser ug i-type ang adres http://localhost/phpMyAdmin. Ang usa ka panid sa pag-login sa phpMyAdmin kinahanglan ipakita sama sa gipakita sa mosunod nga screenshot. Pagsulod sa imong database root user login credentials ug i-klik ang Go.

Kana lang! Sa kini nga panudlo, gipatin-aw namon kanimo kung giunsa ang pag-install sa LEMP stack nga adunay Nginx, MariaDB, PHP, PHP-FPM ug PhpMyAdmin sa OpenSuse server/desktop nga edisyon. Kung nag-atubang ka sa bisan unsang mga isyu sa panahon sa pag-setup, ipangutana ang imong mga pangutana pinaagi sa usa ka porma sa komento sa ubos.