ആർച്ച് ലിനക്സിൽ LEMP (Nginx, PHP, MySQL, MariaDB എഞ്ചിൻ, PhpMyAdmin) ഇൻസ്റ്റാൾ ചെയ്യുന്നു


അറ്റകുറ്റപ്പണികൾ, സ്ഥിരാങ്കങ്ങൾ അപ്uഗ്രേഡുകൾ, സെൻസിബിൾ ഫയൽ കോൺഫിഗറേഷനുകൾ എന്നിവയ്uക്ക് അധിക സമയം ആവശ്യമായതിനാൽ വിശ്വസനീയമായ നെറ്റ്uവർക്ക് സേവനങ്ങൾ നൽകുന്നതിന് ഒരു സെർവറായി പ്രവർത്തിപ്പിക്കുന്നതിന് ആർച്ച് ലിനക്uസ് എന്ന സോഫ്റ്റ്uവെയർ രൂപകൽപ്പന ചെയ്uത് വികസിപ്പിച്ചെടുത്തിട്ടില്ല.

പക്ഷേ, ഇപ്പോഴും, ആർച്ച് ലിനക്സ് ഒരു സിഡി കോർ ഇൻസ്റ്റലേഷനുമായാണ് വരുന്നത്, കുറഞ്ഞ സോഫ്uറ്റ്uവെയറുകൾ മുൻകൂട്ടി ഇൻസ്റ്റോൾ ചെയ്uതിരിക്കുന്നതിനാൽ, ഈ ദിവസങ്ങളിൽ <യുൾപ്പെടെയുള്ള മിക്ക ജനപ്രിയ നെറ്റ്uവർക്ക് സേവനങ്ങളും ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനുള്ള ഒരു സോളിഡ് ബേസ് സ്റ്റാർട്ട് അപ്പ് പോയിന്റിനെ പ്രതിനിധീകരിക്കാൻ ഇതിന് കഴിയും. b>LEMP അല്ലെങ്കിൽ LAMP, Apache Web Server, Nginx, PHP, SQL ഡാറ്റാബേസുകൾ, Samba, FTP സെർവറുകൾ, BIND എന്നിവയും മറ്റുള്ളവയും, അവയിൽ പലതും Arch AUR-ൽ നിന്നുള്ള Linux ഔദ്യോഗിക ശേഖരണങ്ങളും മറ്റുള്ളവയും.

വിദൂരമായി ഉപയോഗിക്കുന്ന SSH-ൽ നിന്ന് LEMP സ്റ്റാക്ക് (Nginx, PHP , MySQL, MariaDB എഞ്ചിൻ, PhpMyAdmin എന്നിവ) ഇൻസ്റ്റാൾ ചെയ്യുന്നതിലൂടെയും കോൺഫിഗർ ചെയ്യുന്നതിലൂടെയും ഈ ട്യൂട്ടോറിയൽ നയിക്കും, ഇത് വെബ് സെർവർ ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കുന്നതിന് ശക്തമായ അടിത്തറ നൽകും.

മുമ്പത്തെ ആർച്ച് ലിനക്സ് ഇൻസ്റ്റലേഷൻ ഗൈഡ്, ഡിഎച്ച്സിപിയുമായുള്ള നെറ്റ്uവർക്കിംഗിലെ അവസാന ഭാഗം ഒഴികെ.

ഘട്ടം 1: നെറ്റ്uവർക്ക് ഇന്റർഫേസിൽ സ്റ്റാറ്റിക് ഐപി നൽകുക

1. കുറഞ്ഞ ആർച്ച് ലിനക്സ് കോർ ഇൻസ്റ്റാളേഷന് ശേഷം നിങ്ങളുടെ സെർവർ റീബൂട്ട് ചെയ്യുക, റൂട്ട് അക്കൗണ്ട് അല്ലെങ്കിൽ തത്തുല്യമായ അഡ്മിനിസ്ട്രേറ്റീവ് സുഡോ അക്കൗണ്ട് ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യുക, കൂടാതെ ip link കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങളുടെ സിസ്റ്റം NIC-കളുടെ ഉപകരണ നാമങ്ങൾ തിരിച്ചറിയുക.

# ip link

2. സ്റ്റാറ്റിക് നെറ്റ്uവർക്ക് കോൺഫിഗറേഷനുകൾ നൽകുന്നതിന് ഞങ്ങൾ നെറ്റ്uവർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കുന്നതിന് Netctl പാക്കേജ് ഉപയോഗിക്കാൻ പോകുന്നു. നിങ്ങളുടെ നെറ്റ്uവർക്ക് ഇന്റർഫേസുകൾ വിജയകരമായി തിരിച്ചറിഞ്ഞ ശേഷം, ethernet-static ഫയൽ ടെംപ്ലേറ്റ് netctl സിസ്റ്റം പാത്തിലേക്ക് പകർത്തി അതിന്റെ പേര് ഒരു വിവരണാത്മക നാമകരണ പദ്ധതിയിലേക്ക് മാറ്റുക ( ഇനിപ്പറയുന്ന കമാൻഡ് നൽകിക്കൊണ്ട്, NIC-ന്റെ പേരിനൊപ്പം “static” സ്ട്രിംഗ് ഉപയോഗിക്കാൻ ശ്രമിക്കുക.

# cp /etc/netctl/examples/ethenet-static  /etc/netctl/static.ens33

3. ഫയലിന്റെ നിർദ്ദേശങ്ങൾ മാറ്റി നിങ്ങളുടെ യഥാർത്ഥ നെറ്റ്uവർക്ക് ക്രമീകരണങ്ങൾ (ഇന്റർഫേസ്, IP/Netmask, ഗേറ്റ്uവേ, ബ്രോഡ്uകാസ്റ്റ്, DNS) നൽകിക്കൊണ്ട് ഈ പുതിയ ടെംപ്ലേറ്റ് ഫയൽ എഡിറ്റ് ചെയ്യുക എന്നതാണ് അടുത്ത ഘട്ടം.

# nano  /etc/netctl/static.ens33
Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')

4. അടുത്ത ഘട്ടം netctl സിസ്റ്റം ടൂൾ വഴി നിങ്ങളുടെ നെറ്റ്uവർക്ക് കണക്ഷൻ ആരംഭിക്കുകയും ഇനിപ്പറയുന്ന കമാൻഡുകൾ നൽകി നിങ്ങളുടെ സിസ്റ്റം കണക്റ്റിവിറ്റി പരിശോധിക്കുകയുമാണ്.

# netctl start static.ens33
# netctl status static.ens33

5. നിങ്ങൾക്ക് ഒരു സജീവ ഗ്രീൻ എക്സിറ്റ് സ്റ്റാറ്റസ് ലഭിക്കുകയാണെങ്കിൽ, നിങ്ങളുടെ നെറ്റ്uവർക്ക് ഇന്റർഫേസ് വിജയകരമായി കോൺഫിഗർ ചെയ്uതു, കൂടാതെ സിസ്റ്റം വൈഡ് സേവനങ്ങളിൽ ഇത് യാന്ത്രികമായി പ്രവർത്തനക്ഷമമാക്കാനുള്ള സമയമാണിത്. ഒരു ഡൊമെയ്ൻ നാമത്തിനെതിരെ ഒരു ping കമാൻഡ് പ്രവർത്തിപ്പിച്ച് നിങ്ങളുടെ നെറ്റ്uവർക്ക് പരിശോധിക്കുക കൂടാതെ, net-tools പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക (ഈ പാക്കേജിന്റെ ഏറ്റവും അറിയപ്പെടുന്ന സവിശേഷത ifconfig കമാൻഡ് ഏത് ആർച്ച് ആണ്. ഡെവലപ്പർമാർ അത് ഒഴിവാക്കിയതായി കണക്കാക്കുകയും അത് iproute2 ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുകയും ചെയ്തു).

# netctl enable static.ens33
# pacman -S net-tools

6. ഇപ്പോൾ നിങ്ങളുടെ നെറ്റ്uവർക്ക് ഇന്റർഫേസുകൾ ക്രമീകരണങ്ങൾ പരിശോധിച്ചുറപ്പിക്കുന്നതിനും എല്ലാം ശരിയായി പ്രദർശിപ്പിച്ചിട്ടുണ്ടോയെന്ന് പരിശോധിക്കുന്നതിനും ifconfig കമാൻഡ് പ്രവർത്തിപ്പിക്കാം, തുടർന്ന് ഉറപ്പാക്കാൻ നിങ്ങളുടെ സിസ്റ്റം റീബൂട്ട് ചെയ്യുക എല്ലാം സ്ഥലത്തുണ്ട്, ശരിയായി ക്രമീകരിച്ചിരിക്കുന്നു.

# ping linux-console.net

ഘട്ടം 2: LEMP സോഫ്റ്റ്uവെയർ ഇൻസ്റ്റാൾ ചെയ്യുക

ഈ ലേഖനത്തിന്റെ ആമുഖത്തിൽ സൂചിപ്പിച്ചതുപോലെ, LEMP എന്നത് Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB എന്നത് LAMP-ന് ശേഷം ഇന്ന് ഏറ്റവും വ്യാപകമായി പ്രചരിക്കുന്ന വെബ് ആപ്ലിക്കേഷൻ പ്ലാറ്റ്uഫോമുകളിൽ ഒന്നാണ്. സമവാക്യത്തിൽ അപ്പാച്ചെയുടെ അതേ സ്റ്റാക്ക്).

7. യഥാർത്ഥത്തിൽ LEMP സ്റ്റാക്ക് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനു മുമ്പ് നമുക്ക് സിസ്റ്റം അപ്ഡേറ്റ് ചെയ്യുകയും തുടർന്ന് Arch Linux സെർവറിലേക്ക് റിമോട്ട് കൺട്രോൾ നേടുകയും വേണം. ഈ ജോലിയുടെ പ്രധാന സ്ഥാനാർത്ഥി OpenSSH ആണെന്ന് നിങ്ങൾക്കറിയാം, അതിനാൽ മുന്നോട്ട് പോയി ഇത് ഇൻസ്റ്റാൾ ചെയ്യുക, SSH ഡെമൺ ആരംഭിച്ച് സിസ്റ്റം വൈഡ് പ്രവർത്തനക്ഷമമാക്കുക.

$ sudo pacman -Syu
$ sudo pacman –S openssh
$ sudo systemctl start sshd
$ sudo systemctl status sshd
$ sudo systemctl enable sshd

LEMP ഇൻസ്റ്റാളേഷനുമായി മുന്നോട്ട് പോകാനുള്ള സമയമാണിത്. ഈ ട്യൂട്ടോറിയൽ ഒരു സമഗ്ര ഗൈഡ് എന്ന നിലയിലായതിനാൽ ഞാൻ LEMP സ്റ്റാക്ക് ഇൻസ്റ്റാളേഷൻ ഘട്ടം ഘട്ടമായി ചെറിയ കഷണങ്ങളായി വിഭജിക്കും.

8. ആദ്യം Nginx വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുക, തുടർന്ന് അത് ആരംഭിച്ച് ഇനിപ്പറയുന്ന കമാൻഡുകൾ നൽകി അതിന്റെ നില പരിശോധിക്കുക.

$ sudo pacman -S nginx
$ sudo systemctl start nginx
$ sudo systemctl status nginx

9. ഇൻസ്റ്റാൾ ചെയ്യേണ്ട അടുത്ത സേവനം MySQL ഡാറ്റാബേസ് ആണ്. MySQL ഡാറ്റാബേസ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യാൻ ഇനിപ്പറയുന്ന കമാൻഡ് നൽകുകയും MariaDB എഞ്ചിൻ തിരഞ്ഞെടുക്കുക, തുടർന്ന് ഡെമൺ സ്റ്റാറ്റസ് ആരംഭിക്കുകയും പരിശോധിക്കുകയും ചെയ്യുക.

$ sudo pacman -S mysql
$ sudo systemctl start mysqld
$ sudo systemctl status mysqld

10. MySQL റൂട്ട് അക്കൗണ്ടിന് പാസ്uവേഡ് നൽകിക്കൊണ്ട് MySQL ഡാറ്റാബേസുകൾക്ക് വളരെ സുരക്ഷിതമായ അന്തരീക്ഷം നൽകുക, അജ്ഞാത ഉപയോക്തൃ അക്കൗണ്ട് നീക്കം ചെയ്യുക, ലോക്കൽ ഹോസ്റ്റിന് പുറത്ത് നിന്ന് ആക്uസസ് ചെയ്യാവുന്ന ടെസ്റ്റ് ഡാറ്റാബേസ്, റൂട്ട് അക്കൗണ്ടുകൾ എന്നിവ നീക്കം ചെയ്യുക എന്നതാണ് അടുത്ത ഘട്ടം. MySQL സുരക്ഷ മെച്ചപ്പെടുത്തുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക, നിലവിലെ റൂട്ട് അക്കൗണ്ട് പാസ്uവേഡിനായി [Enter] അമർത്തുക, തുടർന്ന് എല്ലാ ചോദ്യങ്ങൾക്കും അതെ എന്ന് ഉത്തരം നൽകുക (നിങ്ങളുടെ റൂട്ട് അക്കൗണ്ട് പാസ്uവേഡും സജ്ജമാക്കുക).

$ sudo mysql_secure_installation

ശ്രദ്ധിക്കുക: MySQL റൂട്ട് അക്കൌണ്ടിനെ ലിനക്സ് സിസ്റ്റം റൂട്ട് അക്കൌണ്ടുമായി ഒരു തരത്തിലും ആശയക്കുഴപ്പത്തിലാക്കരുത് - അവ രണ്ട് വ്യത്യസ്ത കാര്യങ്ങളാണ് - അത്ര വ്യത്യസ്തമല്ലെങ്കിലും അവ വ്യത്യസ്ത തലങ്ങളിൽ പ്രവർത്തിക്കുന്നു.

mysql -u root -p കമാൻഡ് സിന്റാക്സ് ഉപയോഗിച്ച് ഡാറ്റാബേസിലേക്ക് MySQL സുരക്ഷാ ലോഗിൻ ചെയ്യുന്നത് പരിശോധിക്കാൻ, നിങ്ങളുടെ റൂട്ട് പാസ്uവേഡ് നൽകുക, തുടർന്ന് exit; കമാൻഡ് ഉപയോഗിച്ച് ഡാറ്റാബേസ് വിടുക.

# mysql -u root -p

.

ഞങ്ങൾ ഒരു വെബ് സെർവറായി Nginx ഉപയോഗിക്കുന്നതിനാൽ ഫാസ്റ്റ് കോമൺ ഗേറ്റ്uവേ വഴി ആശയവിനിമയം നടത്താനും സൃഷ്ടിക്കുന്ന ഡൈനാമിക് ഉള്ളടക്കം മാറ്റാനും ഞങ്ങൾ PHP-FPM പിന്തുണയുള്ള മൊഡ്യൂൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. PHP സ്ക്രിപ്റ്റുകൾ വഴി.

PHP-FPM സേവനം ഇൻസ്റ്റാൾ ചെയ്യാൻ ഇനിപ്പറയുന്ന കമാൻഡ് ലൈൻ നൽകുക, തുടർന്ന് ഡെമൺ ആരംഭിച്ച് സ്റ്റാറ്റസ് പരിശോധിക്കുക.

$ sudo pacman –S php php-fpm
$ sudo systemctl start php-fpm
$ sudo systemctl status php-fpm

ലഭ്യമായ എല്ലാ PHP മൊഡ്യൂൾ ലിസ്റ്റുചെയ്യുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡുകൾ നൽകുക.

$ sudo pacman –S php[TAB]
$ sudo pacman –Ss | grep php

12. MySQL ഡാറ്റാബേസിനായി PhpMyAdmin വെബ് ഇന്റർഫേസ് ഇൻസ്റ്റാൾ ചെയ്യുക എന്നതാണ് അവസാന ഘട്ടങ്ങളിലൊന്ന്. PhpMyAdmin അതിന്റെ PHP ആവശ്യമായ മൊഡ്യൂളിനൊപ്പം ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് നൽകുക, തുടർന്ന് PhpMyaAdmin സിസ്റ്റം പാതയ്ക്കായി Nginx ഡിഫോൾട്ട് റൂട്ട് പാത്തിലേക്കുള്ള ഒരു പ്രതീകാത്മക ലിങ്ക് സൃഷ്ടിക്കുക.

$ pacman -S phpmyadmin php-mcrypt
$ sudo ln -s /usr/share/webapps/phpMyAdmin   /usr/share/nginx/html

13. തുടർന്ന് PhpMyAdmin ആപ്ലിക്കേഷന് ആവശ്യമായ വിപുലീകരണങ്ങൾ ഉൾപ്പെടുത്തുന്നതിന് php.ini ഫയൽ കോൺഫിഗർ ചെയ്യുക.

$ sudo nano /etc/php/php.ini

[CTRL+W] കീകൾ ഉപയോഗിച്ച് കണ്ടെത്തുകയും താഴെപ്പറയുന്ന വരികൾ കമന്റ് ചെയ്യാതിരിക്കുകയും ചെയ്യുക (ലൈനിന്റെ തുടക്കത്തിൽ ; നീക്കം ചെയ്യുക).

extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On

അതേ ഫയലിൽ, ഇനിപ്പറയുന്ന ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഡയറക്uടറികളുമായി സാമ്യമുള്ളതാക്കാൻ, എഡിറ്റ് open_basedir നിർദ്ദേശം കണ്ടെത്തുക.

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

14. ലോക്കൽഹോസ്റ്റ് Nginx നിർദ്ദേശത്തിൽ PHP-FPM FastCGI പ്രവർത്തനക്ഷമമാക്കുക എന്നതാണ് അടുത്ത ഘട്ടം. nginx.conf വെബ് സെർവർ ഫയൽ കോൺഫിഗറേഷൻ ബാക്കപ്പ് ചെയ്യുന്നതിന് അടുത്ത കമാൻഡ് നൽകുക, തുടർന്ന് അത് ഇനിപ്പറയുന്ന ഉള്ളടക്കം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക.

$ sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
$ sudo nano /etc/nginx/nginx.conf

nginx.conf-ൽ ഇനിപ്പറയുന്ന മുഴുവൻ ഉള്ളടക്കവും ചേർക്കുക.

#user html;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;

    server {
        listen       80;
        server_name  localhost;
            root   /usr/share/nginx/html;
        charset koi8-r;
        location / {
        index  index.php index.html index.htm;
                                autoindex on;
                                autoindex_exact_size off;
                                autoindex_localtime on;
        }

                                location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

 error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

        location ~ /\.ht {
            deny  all;
        }
    }         
}

15. എല്ലാ ഫയൽ കോൺഫിഗറേഷനുകളും ഉണ്ടാക്കിയ ശേഷം, നിങ്ങൾ ചെയ്യേണ്ടത് Nginx, PHP-FPM സേവനങ്ങൾ പുനരാരംഭിച്ച് നിങ്ങളുടെ ബ്രൗസർ http://-ലേക്ക് പോയിന്റ് ചെയ്യുക ലോക്കൽ നോഡിൽ നിന്നുള്ള localhost/phpmyadmin URL അല്ലെങ്കിൽ http://arch_IP/phpmyadmin മറ്റൊരു കമ്പ്യൂട്ടർ രൂപീകരിക്കുക.

$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx

16. എല്ലാം ഉദ്ദേശിച്ചതുപോലെ പ്രവർത്തിക്കുന്നുവെങ്കിൽ, അവസാന ഘട്ടം ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് LEMP സിസ്റ്റം വൈഡ് പ്രവർത്തനക്ഷമമാക്കുക എന്നതാണ്.

$ sudo systemctl enable php-fpm
$ sudo systemctl enable nginx
$ sudo systemctl enable mysqld

അഭിനന്ദനങ്ങൾ! നിങ്ങൾ Arch Linux-ൽ LEMP ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്uതു, ഇപ്പോൾ, വെബ് ആപ്ലിക്കേഷനുകൾ ആരംഭിക്കുന്നതിനും വികസിപ്പിക്കുന്നതിനും നിങ്ങൾക്ക് ഒരു പൂർണ്ണ ഡൈനാമിക് ഇന്റർഫേസ് ഉണ്ട്.

Arch Linux അതിന്റെ കമ്മ്യൂണിറ്റി ഓറിയന്റഡ് റോളിംഗ് റിലീസ് മോഡൽ കാരണം പ്രൊഡക്ഷൻ സെർവറുകളിൽ പ്രവർത്തിക്കാൻ ഏറ്റവും അനുയോജ്യമായ സിസ്റ്റം അല്ലെങ്കിലും, ചെറിയ നോൺ-ക്രിട്ടിക്കൽ പ്രൊഡക്ഷൻ എൻവയോൺമെന്റുകൾക്ക് ഇത് വളരെ വേഗതയേറിയതും വിശ്വസനീയവുമായ ഉറവിടമായിരിക്കും.