CentOS 7-ൽ Nginx 1.15, MariaDB 10, PHP 7 എന്നിവ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം


dnf പാക്കേജ് മാനേജർ ഉപയോഗിച്ച് RHEL/CentOS 7/6, Fedora 26-29 സെർവറുകളിൽ PHP-FPM-നൊപ്പം ഒരു LEMP സ്റ്റാക്ക് (Linux, Nginx, MariaDB, PHP) എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്ന് ഈ ലേഖനത്തിൽ ഞങ്ങൾ വിശദീകരിക്കും.

പ്രക്രിയയ്ക്കിടെ, ഈ പാക്കേജുകളുടെ ഏറ്റവും പുതിയ പതിപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനായി ഞങ്ങൾ Epel, Remi, Nginx, MariaDB റിപ്പോസിറ്ററികൾ ഇൻസ്റ്റാൾ ചെയ്യുകയും പ്രവർത്തനക്ഷമമാക്കുകയും ചെയ്യും.

ഘട്ടം 1: EPEL, Remi Repository എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

EPEL (എന്റർപ്രൈസ് ലിനക്uസിനായുള്ള അധിക പാക്കേജുകൾ) ഒരു കമ്മ്യൂണിറ്റി അധിഷ്uഠിത ശേഖരമാണ് RHEL-അധിഷ്uഠിത ലിനക്uസ് വിതരണങ്ങൾക്കായി ആഡ്-ഓൺ സോഫ്റ്റ്uവെയർ പാക്കേജുകൾ വാഗ്ദാനം ചെയ്യുന്നു.

ഫെഡോറ, എന്റർപ്രൈസ് ലിനക്സ് വിതരണങ്ങളിൽ ഇൻസ്റ്റലേഷനായി പിഎച്ച്പി സ്റ്റാക്കിന്റെ ഏറ്റവും പുതിയ പതിപ്പുകൾ (മുഴുവൻ ഫീച്ചർ ചെയ്തിരിക്കുന്നു) കണ്ടെത്താനാകുന്ന ഒരു ശേഖരമാണ് റെമി.

# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
# subscription-manager repos --enable=rhel-7-server-optional-rpms
# yum update && yum install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
# subscription-manager repos --enable=rhel-6-server-optional-rpms
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
# rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

ഘട്ടം 2: Nginx, MariaDB റിപ്പോസിറ്ററികൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

RHEL, CentOS വിതരണങ്ങളിൽ മാത്രമേ Nginx ശേഖരം ആവശ്യമുള്ളൂ. /etc/yum.repos.d/nginx.repo എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിച്ച് അതിൽ ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക.

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 
[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

MariaDB റിപ്പോസിറ്ററി പ്രവർത്തനക്ഷമമാക്കാൻ, ഇനിപ്പറയുന്ന ഉള്ളടക്കങ്ങളുള്ള /etc/yum.repos.d/mariadb.repo എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിക്കുക:

[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.1/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1 

ഘട്ടം 4: Ngnix, MariaDB എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

Nginx (Engine X) ഓപ്പൺ സോഴ്uസ്, കരുത്തുറ്റതും ഭാരം കുറഞ്ഞതും ഉയർന്ന പ്രകടനമുള്ളതുമായ വെബ് സെർവർ, റിവേഴ്uസ് പ്രോക്uസി സെവർ കൂടാതെ HTTP, SMTP, POP3, IMAP പ്രോട്ടോക്കോളുകൾക്കുള്ള മെയിൽ പ്രോക്uസി സെർവറും ആണ്. കൂടുതൽ വിവരങ്ങൾക്ക്, http://wiki.nginx.org/Overview സന്ദർശിക്കുക.

ലോകത്തിലെ ഏറ്റവും ജനപ്രിയമായ റിലേഷണൽ ഡാറ്റാബേസ് മാനേജ്uമെന്റ് സിസ്റ്റമായ (RDBMS) അറിയപ്പെടുന്ന MySQL-ന്റെ ഒരു ഫോർക്ക് ആണ് MariaDB. ഇത് പൂർണ്ണമായും കമ്മ്യൂണിറ്റി വികസിപ്പിച്ചതാണ്, അതിനാൽ ഇത് FOSS ആയി തുടരാനും GPL-ന് അനുയോജ്യമാക്കാനും ഉദ്ദേശിച്ചുള്ളതാണ്.

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

----------- Installing on RHEL/CentOS 7/6 ----------- 
# yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
# dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

ഘട്ടം 3: റെമി റിപ്പോസിറ്ററി ഉപയോഗിച്ച് PHP ഇൻസ്റ്റാൾ ചെയ്യുന്നു

PHP (ഹൈപ്പർടെക്സ്റ്റ് പ്രീപ്രൊസസ്സർ) എന്നത് വെബ് വികസനത്തിന് ഏറ്റവും അനുയോജ്യമായ ഒരു സ്വതന്ത്രവും ഓപ്പൺ സോഴ്uസ് സെർവർ സൈഡ് സ്ക്രിപ്റ്റിംഗ് ഭാഷയുമാണ്. ഒരു വെബ്uസൈറ്റിനായി ഡൈനാമിക് വെബ് പേജുകൾ നിർമ്മിക്കാൻ ഇത് ഉപയോഗിക്കാം, ഇത് ഏറ്റവും കൂടുതൽ *നിക്സ് സെർവറുകളിൽ കാണപ്പെടുന്നു. വൈവിധ്യമാർന്ന മൊഡ്യൂളുകൾ ഉപയോഗിച്ച് ഇത് എളുപ്പത്തിൽ വിപുലീകരിക്കാൻ കഴിയും എന്നതാണ് PHP യുടെ ഒരു ഗുണം.

PHP ഇൻസ്റ്റാൾ ചെയ്യാൻ, ആദ്യം നിങ്ങൾ yum ശേഖരണങ്ങളും പാക്കേജുകളും കൈകാര്യം ചെയ്യുന്നതിനുള്ള ഉപയോഗപ്രദമായ പ്രോഗ്രാമുകളുടെ ഒരു ശേഖരമായ yum-utils ഇൻസ്റ്റാൾ ചെയ്തുകൊണ്ട് Remi repository പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്.

# yum install yum-utils

ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, കാണിച്ചിരിക്കുന്നതുപോലെ വ്യത്യസ്ത PHP പതിപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള സ്ഥിരസ്ഥിതി ശേഖരണമായി Remi repository പ്രവർത്തനക്ഷമമാക്കാൻ നിങ്ങൾക്ക് yum-utils നൽകുന്ന yum-config-manager ഉപയോഗിക്കാം.

ഉദാഹരണത്തിന്, PHP 7.x പതിപ്പ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക.

------------- On CentOS & RHEL ------------- 
# yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
# yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
# yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
# yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
# dnf --enablerepo=remi install php70      [Install PHP 7.0]
# dnf --enablerepo=remi install php71      [Install PHP 7.1]
# dnf --enablerepo=remi install php72      [Install PHP 7.2]
# dnf --enablerepo=remi install php73      [Install PHP 7.3]

അടുത്തതായി, ഇനിപ്പറയുന്ന എല്ലാ പിഎച്ച്പി മൊഡ്യൂളുകളും ഞങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ പോകുന്നു.

------ On RHEL/CentOS 7/6 ------
# yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
# dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

ഘട്ടം 6: അപ്പാച്ചെ സേവനം നിർത്തുകയും പ്രവർത്തനരഹിതമാക്കുകയും ചെയ്യുക

സ്ഥിരസ്ഥിതിയായി, Apache ഉം Nginx ഉം ഒരേ പോർട്ടിൽ കേൾക്കുന്നു (TCP 80). ഇക്കാരണത്താൽ, നിങ്ങളുടെ സെർവറിൽ Apache ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെങ്കിൽ, Nginx ഉപയോഗിക്കുന്നതിന് നിങ്ങൾ അത് നിർത്തുകയും അത് പ്രവർത്തനരഹിതമാക്കുകയും/മാസ്ക് ചെയ്യുകയും വേണം (സേവനത്തെ /dev/null-ലേക്ക് ലിങ്ക് ചെയ്യുന്ന പ്രവർത്തനരഹിതമാക്കുന്നതിന്റെ ശക്തമായ പതിപ്പ്), അല്ലെങ്കിൽ നിങ്ങൾക്ക് അത് നീക്കം ചെയ്യാം. നിങ്ങൾ ഇനി അത് ഉപയോഗിക്കാൻ ഉദ്ദേശിക്കുന്നില്ല.

# systemctl stop httpd 
# systemctl disable httpd 
or 
# systemctl mask httpd 

ഘട്ടം 7: Nginx, MariaDB, PHP-FPM എന്നിവ ആരംഭിക്കുന്നു/നിർത്തുന്നു

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
# systemctl enable nginx 
# systemctl enable mariadb 
# systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
# systemctl start nginx 
# systemctl start mariadb 
# systemctl start php-fpm 

ഘട്ടം 8: Nginx, PHP-FPM എന്നിവ കോൺഫിഗർ ചെയ്യുന്നു

നിങ്ങളുടെ വെബ്uസൈറ്റിനായി (ഒരു വെർച്വൽ ഹോസ്റ്റ്, അല്ലെങ്കിൽ അതിനെ Nginx എന്ന് വിളിക്കുന്ന സെർവർ ബ്ലോക്ക്) /srv/www/ എന്നതിന് കീഴിൽ നമുക്ക് ഇപ്പോൾ ഒരു ഡയറക്ടറി ഘടന സൃഷ്ടിക്കാം. ഈ ഉദാഹരണത്തിൽ ഞങ്ങൾ linux-console.net ഉപയോഗിക്കും, എന്നാൽ നിങ്ങൾക്ക് വേണമെങ്കിൽ മറ്റൊരു ഡൊമെയ്uനും പ്രധാന ഡയറക്ടറിയും തിരഞ്ഞെടുക്കാൻ മടിക്കേണ്ടതില്ല.

# mkdir -p /srv/www/tecmint/public_html 
# mkdir /srv/www/tecmint/logs 
# chown -R nginx:nginx /srv/www/tecmint  

ഘട്ടം 9: Nginx വെർച്വൽ ഹോസ്റ്റ് ഡയറക്ടറികൾ കോൺഫിഗർ ചെയ്യുന്നു

നിങ്ങൾക്കറിയാവുന്നതുപോലെ, ഒരേ മെഷീനിൽ നിന്ന് നിരവധി സൈറ്റുകൾ പ്രവർത്തിപ്പിക്കാനുള്ള കഴിവ് പ്രധാന വെബ് സെർവറുകളുടെ വ്യതിരിക്തമായ സവിശേഷതകളിൽ ഒന്നാണ്. /etc/nginx-ന് കീഴിൽ നമ്മുടെ സെർവർ ബ്ലോക്കുകൾ (അപ്പാച്ചെയിൽ വെർച്വൽ ഹോസ്റ്റുകൾ എന്ന് അറിയപ്പെടുന്നു) സംഭരിക്കുന്നതിനുള്ള ഡയറക്ടറികൾ സൃഷ്ടിക്കാൻ നമുക്ക് ഇപ്പോൾ മുന്നോട്ട് പോകാം.

# mkdir /etc/nginx/sites-available 
# mkdir /etc/nginx/sites-enabled 

/etc/nginx/nginx.conf എന്നതിലെ http ബ്ലോക്ക് അടയ്ക്കുന്നതിന് മുമ്പ് ചേർക്കേണ്ട കോഡിന്റെ ഇനിപ്പറയുന്ന വരി, Nginx പ്രവർത്തിക്കുമ്പോൾ /etc/nginx/sites-enabled ഡയറക്uടറിക്കുള്ളിലെ കോൺഫിഗറേഷൻ ഫയലുകൾ കണക്കിലെടുക്കുമെന്ന് ഉറപ്പാക്കും. :

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 

linux-console.net എന്നതിനായി സെർവർ ബ്ലോക്ക് സൃഷ്uടിക്കാൻ, ഇനിപ്പറയുന്ന കോഡിന്റെ വരികൾ /etc/nginx/sites-available/tecmint-ലേക്ക് ചേർക്കുക (നിങ്ങൾ തിരഞ്ഞെടുത്തത് ആരംഭിക്കുന്നതിന് പൂർണ്ണമായ പാതയിൽ പ്രവേശിക്കുമ്പോൾ ഈ ഫയൽ സൃഷ്ടിക്കപ്പെടും. ടെക്സ്റ്റ് എഡിറ്റർ). ഇതൊരു അടിസ്ഥാന വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷൻ ഫയലാണ്.

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

ഒരു വെർച്വൽ ഹോസ്റ്റ് സജീവമാക്കുന്ന പ്രക്രിയയിൽ tecmint വെർച്വൽ ഹോസ്റ്റിന്റെ നിർവചനത്തിൽ നിന്ന് /etc/nginx/sites-enabled-ലേക്ക് ഒരു പ്രതീകാത്മക ലിങ്ക് സൃഷ്ടിക്കുന്നത് അടങ്ങിയിരിക്കുന്നു.

# ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

ഞങ്ങൾ ചെയ്തുകൊണ്ടിരിക്കുന്ന മാറ്റങ്ങൾ യഥാർത്ഥത്തിൽ പ്രയോഗിക്കുന്നതിന്, ഞങ്ങൾ ഇപ്പോൾ Nginx പുനരാരംഭിക്കേണ്ടതുണ്ട്. അങ്ങനെ ചെയ്യുന്നതിന് മുമ്പ് വാക്യഘടന പിശകുകൾക്കായി കോൺഫിഗറേഷൻ ഫയലുകൾ പരിശോധിക്കുന്നത് ചിലപ്പോൾ ഉപയോഗപ്രദമാണ്:

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 

നിങ്ങൾ പുതുതായി സൃഷ്ടിച്ച വെർച്വൽ ഹോസ്റ്റ് ആക്സസ് ചെയ്യുന്നതിന്, ഡൊമെയ്ൻ നെയിം റെസല്യൂഷന്റെ അടിസ്ഥാന രീതിയായി നിങ്ങൾ ഇനിപ്പറയുന്ന വരി /etc/hosts-ലേക്ക് ചേർക്കേണ്ടതുണ്ട്.

192.168.0.18	linux-console.net linux-console.net 

ഘട്ടം 10: Nginx, MySQL, PHP, PHP-FPM എന്നിവ പരിശോധിക്കുന്നു

PHP പരീക്ഷിക്കുന്നതിനുള്ള ക്ലാസിക് മാർഗത്തിൽ നമുക്ക് ഉറച്ചുനിൽക്കാം. /srv/www/tecmint/public_html/ എന്നതിന് കീഴിൽ test.php എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്uടിച്ച് അതിൽ ഇനിപ്പറയുന്ന കോഡ് ലൈനുകൾ ചേർക്കുക.

phpinfo() ഫംഗ്uഷൻ നിലവിലെ PHP ഇൻസ്റ്റാളേഷനെക്കുറിച്ചുള്ള ധാരാളം വിവരങ്ങൾ കാണിക്കുന്നു:

<?php 
	phpinfo(); 
?> 

ഇപ്പോൾ നിങ്ങളുടെ വെബ് ബ്രൗസർ http://tecmint/test.php ലേക്ക് പോയിന്റ് ചെയ്uത് ഇൻസ്റ്റാൾ ചെയ്ത മൊഡ്യൂളുകളുടെയും അധിക സോഫ്uറ്റ്uവെയറുകളുടെയും സാന്നിധ്യം പരിശോധിക്കുക:

അഭിനന്ദനങ്ങൾ! നിങ്ങൾക്ക് ഇപ്പോൾ ഒരു LEMP സ്റ്റാക്കിന്റെ പ്രവർത്തന ഇൻസ്റ്റാളേഷൻ ഉണ്ട്. പ്രതീക്ഷിച്ചതുപോലെ എന്തെങ്കിലും സംഭവിച്ചില്ലെങ്കിൽ, ചുവടെയുള്ള ഫോം ഉപയോഗിച്ച് ഞങ്ങളെ ബന്ധപ്പെടാൻ മടിക്കേണ്ടതില്ല. ചോദ്യങ്ങളും നിർദ്ദേശങ്ങളും സ്വാഗതം ചെയ്യുന്നു.