ഡെബിയൻ 10 സെർവറിൽ LEMP എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം


ഡൈനാമിക് ആപ്ലിക്കേഷനുകൾ വിന്യസിക്കാൻ ഒരു ലിനക്സ് സെർവറിൽ സാധാരണയായി ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്വെയറിന്റെ ഒരു മിശ്രിതമാണ് LEMP സ്റ്റാക്ക്. ഈ പദം Linux ഓപ്പറേറ്റിംഗ് സിസ്റ്റം, Nginx വെബ് സെർവർ, MariaDB ഡാറ്റാബേസ്, PHP പ്രോഗ്രാമിംഗ് എന്നിവയെ പ്രതിനിധീകരിക്കുന്ന ചുരുക്കപ്പേരാണ്.

ഈ \LEMP സ്റ്റാക്കിൽ സാധാരണയായി ഡാറ്റാബേസ് മാനേജ്മെന്റ് സിസ്റ്റമായി MySQL അടങ്ങിയിട്ടുണ്ടെങ്കിലും, ഡെബിയൻ പോലുള്ള ചില ലിനക്സ് വിതരണങ്ങൾ - MySQL-ന് പകരം വയ്ക്കാൻ MariaDB ഉപയോഗിക്കുന്നു.

  1. ഒരു ഡെബിയൻ 10 (ബസ്റ്റർ) മിനിമൽ സെർവർ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

ഡാറ്റാബേസ് മാനേജ്uമെന്റ് പ്ലാറ്റ്uഫോമായി MariaDB ഉപയോഗിച്ച് ഒരു ഡെബിയൻ 10 സെർവറിൽ ഒരു LEMP എൻവയോൺമെന്റ് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും സജ്ജീകരിക്കാമെന്നും ഈ ലേഖനത്തിൽ ഞങ്ങൾ വിശദീകരിക്കും.

ഡെബിയൻ 10-ൽ Nginx വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

Nginx ഒരു ഓപ്പൺ സോഴ്uസും ക്രോസ്-പ്ലാറ്റ്uഫോമും, ഭാരം കുറഞ്ഞതും എന്നാൽ ശക്തവും, എച്ച്ടിടിപിയും റിവേഴ്uസ് പ്രോക്uസി സെർവറും കോൺഫിഗർ ചെയ്യാൻ എളുപ്പവുമാണ്, ഒരു മെയിൽ പ്രോക്uസി സെർവറും ഒരു മോഡുലാർ ആർക്കിടെക്ചറോടുകൂടിയ ഒരു സാധാരണ TCP/UDP പ്രോക്uസി സെർവറും.

അതിന്റെ അടിസ്ഥാന സവിശേഷതകളിൽ ചിലത് സ്റ്റാറ്റിക്, ഇൻഡെക്സ് ഫയലുകൾ സേവിക്കുന്നത് ഉൾപ്പെടുന്നു; FastCGI, uwsgi, SCGI, Memcached സെർവറുകൾ എന്നിവയുടെ കാഷിംഗ് ഉപയോഗിച്ച് ത്വരിതപ്പെടുത്തിയ പിന്തുണ, ലോഡ് ബാലൻസിംഗും തെറ്റ് സഹിഷ്ണുതയും, SSL, TLS SNI പിന്തുണ, വെയ്റ്റഡ്, ഡിപൻഡൻസി അടിസ്ഥാനമാക്കിയുള്ള മുൻഗണനയുള്ള HTTP/2-നുള്ള പിന്തുണ.

Nginx പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യാൻ, കാണിച്ചിരിക്കുന്നതുപോലെ ഡെബിയന്റെ ആപ്റ്റ് പാക്കേജ് മാനേജർ ഉപയോഗിക്കുക.

# apt update 
# apt install nginx 

Nginx ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, ഇൻസ്റ്റാളർ ഇപ്പോൾ Nginx സേവനം ആരംഭിക്കുന്നതിന് systemd സജീവമാക്കുകയും സിസ്റ്റം ബൂട്ടിൽ അത് സ്വയമേവ ആരംഭിക്കാൻ പ്രാപ്തമാക്കുകയും ചെയ്യും. ഇനിപ്പറയുന്ന systemctl കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് Nginx-ന്റെ നില പരിശോധിക്കാം.

# systemctl status nginx

systemd-ന് കീഴിലുള്ള Nginx സേവനത്തിന്റെ കോൺഫിഗറേഷൻ ആരംഭിക്കുന്നതിനും പുനരാരംഭിക്കുന്നതിനും നിർത്തുന്നതിനും വീണ്ടും ലോഡുചെയ്യുന്നതിനും നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന പ്രധാന കമാൻഡുകൾ ഉപയോഗിക്കാം.

# systemctl start nginx
# systemctl restart nginx 
# systemctl stop nginx
# systemctl reload nginx 
# systemctl status nginx 

അടുത്തതായി, നിങ്ങൾക്ക് UFW ഫയർവാൾ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ (ഇത് സ്ഥിരസ്ഥിതിയായി പ്രവർത്തനരഹിതമാണ്), Nginx-ൽ ഇൻകമിംഗ് ട്രാഫിക് അനുവദിക്കുന്നതിന് നിങ്ങൾ പോർട്ട് 80 (HTTP), 443 (HTTPS) എന്നിവ തുറക്കേണ്ടതുണ്ട്.

# ufw allow 80
# ufw allow 443
# ufw status

ഈ സമയത്ത്, Nginx ശരിയായി ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോ, അത് പ്രവർത്തിക്കുന്നുണ്ടോ, വെബ് പേജുകൾ സേവിക്കാൻ കഴിയുമോ എന്ന് നിങ്ങൾ പരിശോധിക്കേണ്ടതുണ്ട്. അത് ചെയ്യുന്നതിന്, ഒരു വെബ് ബ്രൗസർ തുറന്ന് Nginx Debian Debian Default വെബ് പേജ് ആക്uസസ് ചെയ്യുന്നതിന് ഇനിപ്പറയുന്ന URL-ലേക്ക് പോയിന്റ് ചെയ്യുക.

http://SERVER_IP/
OR
http://localhost/

Debian 10-ൽ MariaDB ഇൻസ്റ്റാൾ ചെയ്യുന്നു

അടുത്തതായി, നിങ്ങളുടെ വെബ്uസൈറ്റിനോ വെബ് ആപ്പിനോ വേണ്ടി ഡാറ്റ സംഭരിക്കാനും നിയന്ത്രിക്കാനും കഴിയുന്ന ഒരു ഡാറ്റാബേസ് സിസ്റ്റം നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. MySQL-നുള്ള ഡ്രോപ്പ്-ഇൻ പകരമായി Debian 10 സ്ഥിരസ്ഥിതിയായി MariaDB-യെ പിന്തുണയ്ക്കുന്നു.

MariaDB ഇൻസ്റ്റാൾ ചെയ്യാൻ, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

# apt install mariadb-server

അടുത്തതായി, മരിയാഡിബി സേവന നില പരിശോധിക്കുക, കാരണം ഇത് systemd വഴി സ്വയമേവ ആരംഭിക്കുകയും സിസ്റ്റം ബൂട്ടിൽ ആരംഭിക്കാൻ പ്രാപ്uതമാക്കുകയും ചെയ്യുന്നു, അത് പ്രവർത്തനക്ഷമമാണെന്ന് ഉറപ്പാക്കാൻ, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക.

# systemctl status mariadb

systemd-ന് കീഴിലുള്ള MariaDB സേവനം നിയന്ത്രിക്കുന്നതിന് (ആരംഭിക്കുക, പുനരാരംഭിക്കുക, നിർത്തുക, വീണ്ടും ലോഡുചെയ്യുക), നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കാം.

# systemctl start mariadb
# systemctl restart mariadb
# systemctl stop mariadb
# systemctl reload mariadb

അടുത്തതായി, MariaDB വിന്യാസം സ്ഥിരസ്ഥിതിയായി സുരക്ഷിതമല്ല. ഡാറ്റാബേസ് സുരക്ഷ മെച്ചപ്പെടുത്തുന്നതിന് നിങ്ങളെ പ്രാപ്തമാക്കുന്നതിന് പാക്കേജിനൊപ്പം ഷിപ്പ് ചെയ്യുന്ന ഒരു ഷെൽ സ്ക്രിപ്റ്റ് നിങ്ങൾ പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ട്.

# mysql_secure_installation

സ്uക്രിപ്റ്റ് പ്രവർത്തിപ്പിച്ചതിന് ശേഷം, ഇനിപ്പറയുന്ന സ്uക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ MariaDB ഇൻസ്റ്റാളേഷന്റെ സ്ഥിരസ്ഥിതി ക്രമീകരണങ്ങൾ പരിഷ്uക്കരിക്കുന്നതിന് ഇനിപ്പറയുന്ന ചോദ്യങ്ങളുടെ ഒരു പരമ്പരയിലൂടെ ഇത് നിങ്ങളെ കൊണ്ടുപോകും.

ഡെബിയൻ 10-ൽ PHP-FPM (ഫാസ്റ്റ് പ്രോസസ് മാനേജർ) ഇൻസ്റ്റാൾ ചെയ്യുന്നു

അപ്പാച്ചെയിൽ നിന്നും മറ്റ് വെബ് സെർവറുകളിൽ നിന്നും വ്യത്യസ്തമായി, PHP പേജുകൾക്കായുള്ള അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്യാൻ PHP-FPM ഉപയോഗിക്കുന്നതിനാൽ Nginx PHP-ക്ക് നേറ്റീവ് പിന്തുണ നൽകുന്നില്ല. PHP-FPM എന്നത് PHP-യ്uക്കായുള്ള ഒരു ഇതര FastCGI ഡെമൺ ആണ്, ഇത് അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്യാൻ വർക്കർ പ്രോസസ്സുകൾ ഉപയോഗിച്ച് ഉയർന്ന ലോഡുകൾ കൈകാര്യം ചെയ്യാൻ ഒരു വെബ്uസൈറ്റിനെ അനുവദിക്കുന്നു.

ഒരു MariaDB/MySQL ഡാറ്റാബേസ് സിസ്റ്റവുമായി ആശയവിനിമയം നടത്തുന്നതിന് PHP-FPM പതിപ്പ് 7.3 ഉം PHP മൊഡ്യൂളും ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

# apt install php-fpm php-mysqli

PHP-FPM ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, ഇൻസ്റ്റാളർ ഇപ്പോൾ PHP-FPM സേവനം ആരംഭിക്കുന്നതിനായി systemd സജീവമാക്കുകയും സിസ്റ്റം ബൂട്ടിൽ അത് യാന്ത്രികമായി ആരംഭിക്കാൻ പ്രാപ്തമാക്കുകയും ചെയ്യും. ഇത് പ്രവർത്തനക്ഷമമാണോ എന്ന് പരിശോധിക്കാൻ, ഇനിപ്പറയുന്ന കമാൻഡ് നൽകുക.

# systemctl status php-fpm

നിങ്ങൾക്ക് systemd-ന് കീഴിലുള്ള PHP-FPM സേവനത്തിന്റെ കോൺഫിഗറേഷൻ ഇനിപ്പറയുന്ന രീതിയിൽ ആരംഭിക്കാനും സ്റ്റോപ്പ് പുനരാരംഭിക്കാനും വീണ്ടും ലോഡുചെയ്യാനും കഴിയും.

# systemctl start php-fpm
# systemctl restart php-fpm
# systemctl stop php-fpm
# systemctl reload php-fpm
# systemctl status php-fpm

അടുത്തതായി, ഇനിപ്പറയുന്ന രീതിയിൽ /etc/php/7.3/fpm/php.ini കോൺഫിഗറേഷൻ ഫയലിൽ ചില മാറ്റങ്ങൾ വരുത്തി നിങ്ങൾ PHP-FPM സുരക്ഷിതമാക്കേണ്ടതുണ്ട്.

# vi /etc/php/7.3/fpm/php.ini

;cgi.fix_pathinfo=1 എന്നതിനായി നോക്കുക, തുടക്കത്തിൽ ; പ്രതീകം നീക്കം ചെയ്തുകൊണ്ട് അഭിപ്രായമെടുക്കുക, അതിന്റെ മൂല്യം 0 ആയി സജ്ജമാക്കുക. ഇത് PHP അല്ലാത്ത ഫയലുകൾ PHP ആയി എക്സിക്യൂട്ട് ചെയ്യാൻ അനുവദിക്കുന്നതിൽ നിന്ന് Nginx-നെ തടയുന്നു.

cgi.fix_pathinfo=0

ഡിഫോൾട്ടായി, /etc/php/7.3/fpm/pool.d/www.conf കോൺഫിഗറേഷൻ ഫയലിൽ നിർവചിച്ചിരിക്കുന്നതുപോലെ, ഒരു UNIX സോക്സ്കെറ്റിൽ, /run/php/php7.3-fpm.sock ശ്രവിക്കാൻ PHP-FPM ക്രമീകരിച്ചിരിക്കുന്നു. നിങ്ങളുടെ എല്ലാ സെർവർ ബ്ലോക്കുകളും (അല്ലെങ്കിൽ വെർച്വൽ ഹോസ്റ്റുകൾ) PHP പേജുകൾ പ്രോസസ്സ് ചെയ്യുകയും സേവിക്കുകയും ചെയ്യണമെങ്കിൽ ഈ സോക്കറ്റ് ഉപയോഗിക്കുന്നതിന് നിങ്ങൾ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്.

ഇത് പരിശോധിക്കുന്നതിന് നിങ്ങൾക്ക് Nginx ഡിഫോൾട്ട് സെർവർ ബ്ലോക്ക് കോൺഫിഗറേഷൻ ഫയൽ /etc/nginx/sites-available/default ഉപയോഗിക്കാം.

# vi /etc/nginx/sites-available/default 

സ്uക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ PHP സ്uക്രിപ്റ്റുകൾ FastCGI സെർവറിലേക്ക് കൈമാറുന്നതിന് ഇനിപ്പറയുന്ന വിഭാഗത്തിനായി നോക്കുകയും അഭിപ്രായമിടാതിരിക്കുകയും ചെയ്യുക.

location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}

അടുത്തതായി, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് Nginx കോൺഫിഗറേഷൻ ഘടന ശരിയാണോ എന്ന് പരിശോധിക്കുക.

# nginx -t

Nginx കോൺഫിഗറേഷൻ ശരിയാണെങ്കിൽ, അടുത്തിടെ വരുത്തിയ മാറ്റങ്ങൾ പ്രയോഗിക്കുന്നതിന്, php7.3-fpm, nginx സേവനങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ പുനരാരംഭിക്കുക.

# systemctl restart php7.2-fpm
# systemctl restart nginx

Nginx-ൽ PHP-FPM പ്രോസസ്സിംഗ് പരിശോധിക്കുന്നു

ഒരുമിച്ച് പ്രവർത്തിക്കാൻ PHP-FPM, Nginx എന്നിവ കോൺഫിഗർ ചെയ്uത ശേഷം, രണ്ട് സേവനങ്ങൾക്ക് PHP പേജുകൾ പ്രോസസ്സ് ചെയ്യാനും ക്ലയന്റുകൾക്ക് നൽകാനും കഴിയുമോ എന്ന് നിങ്ങൾ പരിശോധിക്കേണ്ടതുണ്ട്. അത് ചെയ്യുന്നതിന്, നിങ്ങളുടെ വെബ് DocumentRoot-ൽ ഇനിപ്പറയുന്ന രീതിയിൽ ഒരു ലളിതമായ PHP സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കുക.

# echo “<?php phpinfo(); ?>”  | tee /var/www/html/info.php

അവസാനമായി, ഒരു ബ്രൗസർ തുറന്ന്, phpinfo() ഫംഗ്uഷൻ വഴി ജനറേറ്റുചെയ്uതിരിക്കുന്ന സിസ്റ്റത്തിലെ PHP കോൺഫിഗറേഷനുകൾ കാണുന്നതിന് ഇനിപ്പറയുന്ന വിലാസം ടൈപ്പ് ചെയ്യുക.

http://SERVER_IP/info.php
OR
http://localhost/info.php

ഈ ലേഖനത്തിൽ, ഡെബിയൻ 10-ൽ LEMP സ്റ്റാക്ക് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും കോൺഫിഗർ ചെയ്യാമെന്നും ഞങ്ങൾ കാണിച്ചുതന്നിട്ടുണ്ട്. നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളോ ഫീഡ്uബാക്കോ ഉണ്ടെങ്കിൽ, താഴെയുള്ള കമന്റ് ഫോം വഴി ഞങ്ങളെ ബന്ധപ്പെടുക.