ഉബുണ്ടുവിൽ Yii PHP ഫ്രെയിംവർക്ക് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം


PHP ഉപയോഗിച്ച് എല്ലാത്തരം വെബ് ആപ്ലിക്കേഷനുകളും വികസിപ്പിക്കുന്നതിനുള്ള സൌജന്യവും ഓപ്പൺ സോഴ്uസും വേഗതയേറിയതും ഉയർന്ന പ്രകടനവും സുരക്ഷിതവും വഴക്കമുള്ളതും എന്നാൽ പ്രായോഗികവും കാര്യക്ഷമവുമായ പൊതുവായ വെബ് പ്രോഗ്രാമിംഗ് ചട്ടക്കൂടാണ് Yii (യീ അല്ലെങ്കിൽ [ji:] എന്ന് ഉച്ചരിക്കുന്നത്).

ഈ ലേഖനത്തിൽ, ആധുനിക PHP വെബ് ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കാൻ ആരംഭിക്കുന്നതിന് ഉബുണ്ടു LTS (ദീർഘകാല പിന്തുണ) റിലീസുകളിൽ Yii ഫ്രെയിംവർക്കിന്റെ ഏറ്റവും പുതിയ പതിപ്പ് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്ന് നിങ്ങൾ പഠിക്കും.

Yii ഇനിപ്പറയുന്ന ഉബുണ്ടു LTS (ദീർഘകാല പിന്തുണ) റിലീസുകൾ കൈവശം വയ്ക്കുന്നു:

  • ഉബുണ്ടു 20.04 LTS (\ഫോക്കൽ)
  • ഉബുണ്ടു 18.04 LTS (\Bionic)
  • ഉബുണ്ടു 16.04 LTS (\Xenial)

  • ഉബുണ്ടു സെർവറിന്റെ ഒരു പ്രവർത്തിക്കുന്ന ഉദാഹരണം.
  • PHP 5.4.0 അല്ലെങ്കിൽ അതിന് മുകളിലുള്ള ഒരു LEMP സ്റ്റാക്ക്.
  • ഒരു കമ്പോസർ - PHP-യ്uക്കായുള്ള ഒരു ആപ്ലിക്കേഷൻ-ലെവൽ പാക്കേജ് മാനേജർ.

ഈ പേജിൽ

  • ഉബുണ്ടുവിൽ കമ്പോസർ വഴി Yii ഫ്രെയിംവർക്ക് ഇൻസ്റ്റാൾ ചെയ്യുന്നു
  • PHP ഡെവലപ്uമെന്റ് സെർവർ ഉപയോഗിച്ച് Yii പ്രവർത്തിപ്പിക്കുന്നു
  • ഒരു NGINX HTTP സെർവർ ഉപയോഗിച്ച് Yii പ്രോജക്റ്റ് നിർമ്മാണത്തിൽ പ്രവർത്തിക്കുന്നു
  • Let's Encrypt ഉപയോഗിച്ച് Yii ആപ്ലിക്കേഷനുകളിൽ HTTPS പ്രവർത്തനക്ഷമമാക്കുക

കമ്പോസർ പാക്കേജ് മാനേജർ ഉപയോഗിച്ചോ ഒരു ആർക്കൈവ് ഫയലിൽ നിന്ന് ഇൻസ്റ്റാൾ ചെയ്തോ Yii ഇൻസ്റ്റാൾ ചെയ്യാൻ രണ്ട് വഴികളുണ്ട്. പുതിയ വിപുലീകരണങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനോ Yii അപ്uഡേറ്റ് ചെയ്യുന്നതിനോ ഒരൊറ്റ കമാൻഡ് വഴി നിങ്ങളെ പ്രാപ്uതമാക്കുന്നതിനാൽ ആദ്യത്തേതാണ് ശുപാർശ ചെയ്യുന്ന മാർഗ്ഗം.

നിങ്ങൾക്ക് കമ്പോസർ ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിൽ, ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇത് ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും, അത് പിന്നീട് Yii ഇൻസ്റ്റാൾ ചെയ്യുകയും അതിന്റെ ഡിപൻഡൻസികൾ നിയന്ത്രിക്കുകയും ചെയ്യും.

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
$ sudo chmod +x /usr/local/bin/composer

നിങ്ങൾ കമ്പോസർ ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, /var/www/html/ എന്ന ഡയറക്ടറിയിലേക്ക് നീങ്ങുക, അത് നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനുകളോ വെബ്uസൈറ്റുകളുടെ ഫയലുകളോ സംഭരിക്കും, തുടർന്ന് കമ്പോസർ ഉപയോഗിച്ച് Yii പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക (ടെസ്റ്റ് പ്രോജക്റ്റ് നിങ്ങളുടെ പേര് ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക വെബ് ആപ്ലിക്കേഷന്റെ ഡയറക്ടറി).

$ cd /var/www/html/
$ composer create-project --prefer-dist yiisoft/yii2-app-basic testproject

ഈ ഘട്ടത്തിൽ, വികസനത്തിനായി Yii ചട്ടക്കൂട് ഉപയോഗിക്കാൻ തുടങ്ങാൻ നിങ്ങൾ തയ്യാറാണ്. PHP ഡെവലപ്മെന്റ് സെർവർ പ്രവർത്തിപ്പിക്കുന്നതിന്, testprojects ഡയറക്ടറിയിലേക്ക് നീങ്ങുക (മുമ്പത്തെ കമാൻഡിൽ നിങ്ങൾ വ്യക്തമാക്കിയതിനെ ആശ്രയിച്ച് നിങ്ങളുടെ ഡയറക്ടറിയുടെ പേര് വ്യത്യസ്തമായിരിക്കണം), തുടർന്ന് ഡെവലപ്മെന്റ് സെർവർ സമാരംഭിക്കുക. സ്ഥിരസ്ഥിതിയായി, ഇത് പോർട്ട് 8080-ൽ പ്രവർത്തിക്കണം.

$ cd /var/www/html/testproject/
$ php yii serve

മറ്റൊരു പോർട്ടിൽ ഡെവലപ്uമെന്റ് സെർവർ പ്രവർത്തിപ്പിക്കുന്നതിന്, ഉദാഹരണത്തിന്, പോർട്ട് 5000, കാണിച്ചിരിക്കുന്നതുപോലെ --port ഫ്ലാഗ് ഉപയോഗിക്കുക.

$ php yii serve --port=5000

തുടർന്ന് നിങ്ങളുടെ വെബ് ബ്രൗസർ തുറന്ന് ഇനിപ്പറയുന്ന വിലാസം ഉപയോഗിച്ച് നാവിഗേറ്റ് ചെയ്യുക:

http://SERVER_IP:8080
OR
http://SERVER_IP:5000

നിർമ്മാണത്തിൽ ഒരു Yii ആപ്ലിക്കേഷൻ വിന്യസിക്കാനും ആക്uസസ് ചെയ്യാനും, പിന്തുണയ്uക്കുന്ന വെബ് സെർവർ സോഫ്uറ്റ്uവെയർ പോലുള്ള ഒരു HTTP സെർവർ ആവശ്യമാണ്.

നിങ്ങളുടെ പോർട്ട് ടൈപ്പ് ചെയ്യാതെ തന്നെ Yii ആപ്ലിക്കേഷൻ ആക്സസ് ചെയ്യാൻ, നിങ്ങളുടെ ഡൊമെയ്ൻ നിങ്ങളുടെ Yii ഫ്രെയിംവർക്ക് ആപ്ലിക്കേഷൻ സെർവറിലേക്ക് പോയിന്റ് ചെയ്യുന്നതിന് ആവശ്യമായ DNS A റെക്കോർഡ് നിങ്ങൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്.

ഈ ഗൈഡിനായി, NGINX-നൊപ്പം ഒരു Yii ആപ്ലിക്കേഷൻ എങ്ങനെ വിന്യസിക്കാമെന്ന് ഞങ്ങൾ കാണിക്കും. അതിനാൽ, നിങ്ങളുടെ ആപ്ലിക്കേഷനായി /etc/nginx/sites-available/ ഡയറക്ടറിക്ക് കീഴിൽ നിങ്ങൾ ഒരു വെർച്വൽ ഹോസ്റ്റ് അല്ലെങ്കിൽ സെർവർ ബ്ലോക്ക് കോൺഫിഗറേഷൻ ഫയൽ സൃഷ്ടിക്കേണ്ടതുണ്ട്, അതുവഴി NGINX-ന് അത് സേവിക്കാൻ കഴിയും.

$ sudo vim /etc/nginx/sites-available/testproject.me.conf

അതിൽ ഇനിപ്പറയുന്ന കോൺഫിഗറേഷൻ പകർത്തി ഒട്ടിക്കുക (testprojects.me, www.testprojects.me എന്നിവ നിങ്ങളുടെ ഡൊമെയ്ൻ നാമം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക). PHP-FPM-ലേക്ക് NGINX FastCGI അഭ്യർത്ഥനകൾ കൈമാറുന്നതിനുള്ള മാർഗങ്ങളും വ്യക്തമാക്കുക, ഈ ഉദാഹരണത്തിൽ, ഞങ്ങൾ ഒരു UNIX സോക്കറ്റ് ഉപയോഗിക്കുന്നു (/run/php/php7.4-fpm.sock):

server {
    set $host_path "/var/www/html/testproject";
    #access_log  /www/testproject/log/access.log  main;

    server_name  testprojects.me www.testprojects.me;
    root   $host_path/web;
    set $yii_bootstrap "index.php";

    charset utf-8;

    location / {
        index  index.html $yii_bootstrap;
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }

    location ~ ^/(protected|framework|themes/\w+/views) {
        deny  all;
    }

    #avoid processing of calls to unexisting static files by yii
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
        try_files $uri =404;
    }

    # pass the PHP scripts to FastCGI server listening on UNIX socket 
    location ~ \.php {
        fastcgi_split_path_info  ^(.+\.php)(.*)$;

        #let yii catch the calls to unexising PHP files
        set $fsn /$yii_bootstrap;
        if (-f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }
       fastcgi_pass   unix:/run/php/php7.4-fpm.sock;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

       #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
    }

    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}

ഫയൽ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.

തുടർന്ന് NGINX കോൺഫിഗറേഷൻ വാക്യഘടന ശരിയാണോയെന്ന് പരിശോധിക്കുക, അത് ശരിയാണെങ്കിൽ, കാണിച്ചിരിക്കുന്നതുപോലെ പുതിയ ആപ്ലിക്കേഷൻ പ്രവർത്തനക്ഷമമാക്കുക:

$ sudo nginx -t
$ sudo ln -s /etc/nginx/sites-available/testprojects.me.conf /etc/nginx/sites-enabled/testprojects.me.conf

പുതിയ മാറ്റങ്ങൾ പ്രയോഗിക്കുന്നതിന് NGINX സേവനം പുനരാരംഭിക്കുക:

$ sudo systemctl restart nginx

നിങ്ങളുടെ വെബ് ബ്രൗസറിലേക്ക് തിരികെ പോയി നിങ്ങളുടെ ഡൊമെയ്ൻ നാമം ഉപയോഗിച്ച് നാവിഗേറ്റ് ചെയ്യുക.

http://testprojects.me
OR
http://www.testprojects.me

അവസാനമായി, നിങ്ങളുടെ വെബ്uസൈറ്റിൽ HTTPS പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്. നിങ്ങൾക്ക് ഒന്നുകിൽ ഒരു സൗജന്യ SSL/TLS എൻക്രിപ്റ്റ് SSL/TLS സർട്ടിഫിക്കറ്റ് ഉപയോഗിക്കാം (ഇത് എല്ലാ ആധുനിക വെബ് ബ്രൗസറുകളും സ്വയമേവയുള്ളതും അംഗീകരിക്കപ്പെട്ടതുമാണ്) അല്ലെങ്കിൽ ഒരു വാണിജ്യ CA-യിൽ നിന്ന് ഒരു സർട്ടിഫിക്കറ്റ് സ്വന്തമാക്കാം.

നിങ്ങൾ ലെറ്റ്സ് എൻക്രിപ്റ്റ് സർട്ടിഫിക്കറ്റ് ഉപയോഗിക്കാൻ തീരുമാനിക്കുകയാണെങ്കിൽ, അത് സെർട്ട്ബോട്ട് ടൂൾ ഉപയോഗിച്ച് യാന്ത്രികമായി ഇൻസ്റ്റാൾ ചെയ്യാനും കോൺഫിഗർ ചെയ്യാനും കഴിയും. certbot ഇൻസ്റ്റാൾ ചെയ്യാൻ, അത് ഇൻസ്റ്റാൾ ചെയ്യാൻ നിങ്ങൾ snapd ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.

$ sudo snap install --classic certbot

NGINX വെബ് സെർവറിനൊപ്പം ഉപയോഗിക്കുന്നതിന് നിങ്ങളുടെ സൗജന്യ SSL/TLS സർട്ടിഫിക്കറ്റ് നേടുന്നതിനും ഇൻസ്റ്റാൾ/കോൺഫിഗർ ചെയ്യുന്നതിനും certbot ഉപയോഗിക്കുക (പുതുക്കലിനായി സാധുവായ ഒരു ഇമെയിൽ നൽകുക, ഇൻസ്റ്റാളേഷൻ പൂർത്തിയാക്കാൻ നിർദ്ദേശങ്ങൾ പാലിക്കുക):

$ sudo certbot --nginx

നിങ്ങളുടെ Yii ആപ്ലിക്കേഷൻ ഇപ്പോൾ HTTPS-ൽ പ്രവർത്തിക്കുന്നുണ്ടെന്ന് സ്ഥിരീകരിക്കാൻ ഒരിക്കൽ കൂടി നിങ്ങളുടെ വെബ് ബ്രൗസറിലേക്ക് പോകുക (HTTP സ്വയമേവ HTTPS-ലേക്ക് റീഡയറക്uട് ചെയ്യണമെന്ന് ഓർമ്മിക്കുക).

http://testprojects.me
OR
http://www.testprojects.me

നിങ്ങളുടെ അപേക്ഷ ഒരു ഡാറ്റാബേസുമായി ബന്ധിപ്പിക്കുന്നത് പോലെയുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, Yii പ്രൊജക്റ്റ് വെബ്സൈറ്റിൽ നിന്നുള്ള Yii ഫ്രെയിംവർക്ക് ഡോക്യുമെന്റേഷൻ കാണുക. ഇത് ശ്രമിച്ചുനോക്കൂ, Yii-യെക്കുറിച്ചുള്ള നിങ്ങളുടെ ചിന്തകൾ പങ്കിടുക അല്ലെങ്കിൽ ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി എന്തെങ്കിലും ചോദ്യങ്ങൾ ചോദിക്കുക.