CentOS 8-ൽ Nginx-നൊപ്പം Laravel PHP ഫ്രെയിംവർക്ക് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം


Laravel ഒരു ഓപ്പൺ സോഴ്uസ്, അറിയപ്പെടുന്ന, ആധുനിക PHP-അധിഷ്uഠിത വെബ് ചട്ടക്കൂടാണ്, അത് ആവിഷ്uകൃതവും മനോഹരവും മനസ്സിലാക്കാൻ എളുപ്പമുള്ളതുമായ വാക്യഘടനയാണ്, ഇത് വലുതും ശക്തവുമായ വെബ് ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കുന്നത് എളുപ്പമാക്കുന്നു.

ലളിതവും വേഗതയേറിയതുമായ റൂട്ടിംഗ് എഞ്ചിൻ, ശക്തമായ ഡിപൻഡൻസി ഇഞ്ചക്ഷൻ കണ്ടെയ്uനർ, സെഷനും കാഷെ സംഭരണത്തിനുമുള്ള ഒന്നിലധികം ബാക്ക്-എൻഡുകൾ, പ്രകടവും അവബോധജന്യവുമായ ഡാറ്റാബേസ് ORM (ഒബ്ജക്റ്റ്-റിലേഷണൽ മാപ്പിംഗ്), ശക്തമായ പശ്ചാത്തല ജോലി പ്രോസസ്സിംഗ്, തത്സമയ ഇവന്റ് ബ്രോഡ്കാസ്റ്റിംഗ് എന്നിവ ഇതിന്റെ പ്രധാന സവിശേഷതകളിൽ ഉൾപ്പെടുന്നു.

കൂടാതെ, കമ്പോസർ - ഡിപൻഡൻസികൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള PHP പാക്കേജ് മാനേജർ, ആർട്ടിസാൻ - വെബ് ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കുന്നതിനും കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള കമാൻഡ്-ലൈൻ ഇന്റർഫേസ് എന്നിങ്ങനെയുള്ള ടൂളുകളും ഇത് ഉപയോഗിക്കുന്നു.

CentOS 8 Linux വിതരണത്തിൽ Laravel PHP വെബ് ഫ്രെയിംവർക്കിന്റെ ഏറ്റവും പുതിയ പതിപ്പ് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്ന് ഈ ലേഖനത്തിൽ നിങ്ങൾ പഠിക്കും.

Laravel ചട്ടക്കൂടിന് ഇനിപ്പറയുന്ന ആവശ്യകതകൾ ഉണ്ട്:

  • PHP >= 7.2.5 ഈ PHP വിപുലീകരണങ്ങളോടൊപ്പം OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype, JSON.
  • കമ്പോസർ - ഡിപൻഡൻസികൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനും നിയന്ത്രിക്കുന്നതിനും.

ഘട്ടം 1: CentOS 8-ൽ LEMP സ്റ്റാക്ക് ഇൻസ്റ്റാൾ ചെയ്യുന്നു

1. ആരംഭിക്കുന്നതിന്, സിസ്റ്റം സോഫ്uറ്റ്uവെയർ പാക്കേജുകൾ അപ്uഡേറ്റ് ചെയ്uത് ഇനിപ്പറയുന്ന dnf കമാൻഡുകൾ ഉപയോഗിച്ച് LEMP സ്റ്റാക്ക് (Linux, Nginx, MariaDB/MySQL, കൂടാതെ PHP) ഇൻസ്റ്റാൾ ചെയ്യുക.

# dnf update
# dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. LEMP ഇൻസ്റ്റലേഷൻ പൂർത്തിയാകുമ്പോൾ, താഴെ പറയുന്ന systemctl കമാൻഡുകൾ ഉപയോഗിച്ച് നിങ്ങൾ PHP-PFM, Nginx, MariaDB സേവനങ്ങൾ ആരംഭിക്കേണ്ടതുണ്ട്.

# systemctl start php-fpm nginx mariadb
# systemctl enable php-fpm nginx mariadb
# systemctl status php-fpm nginx mariadb

3. അടുത്തതായി, കാണിച്ചിരിക്കുന്നതുപോലെ സുരക്ഷാ സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് മരിയാഡിബി ഡാറ്റാബേസ് എഞ്ചിൻ സുരക്ഷിതമാക്കുകയും കഠിനമാക്കുകയും വേണം.

# mysql_secure_installation

സെർവർ ഇൻസ്റ്റാളേഷൻ സുരക്ഷിതമാക്കാൻ ഇനിപ്പറയുന്ന ചോദ്യങ്ങൾക്ക് ഉത്തരം നൽകുക.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

4. നിങ്ങൾക്ക് ഫയർവാൾഡ് സേവനം പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ, Nginx വെബ് സെർവറിലേക്കുള്ള ക്ലയന്റ് അഭ്യർത്ഥനകൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിന് നിങ്ങൾ ഫയർവാളിൽ HTTP, HTTPS സേവനങ്ങൾ തുറക്കേണ്ടതുണ്ട്.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

5. അവസാനമായി, നിങ്ങളുടെ സിസ്റ്റത്തിന്റെ IP വിലാസത്തിൽ ഒരു ബ്രൗസർ ഉപയോഗിച്ച് നിങ്ങളുടെ LEMP സ്റ്റാക്ക് പ്രവർത്തിക്കുന്നുണ്ടെന്ന് സ്ഥിരീകരിക്കാം.

http://server-IP

ഘട്ടം 2: PHP-FPM, Nginx എന്നിവ ക്രമീകരിക്കുകയും സുരക്ഷിതമാക്കുകയും ചെയ്യുന്നു

6. Nginx വെബ് സെർവറിൽ നിന്നുള്ള അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുന്നതിന്, PHP-FPM-ന് ഒരു Unix സോക്കറ്റിലോ TCP സോക്കറ്റിലോ കേൾക്കാനാകും, ഇത് /etc/php-fpm.d/www.conf കോൺഫിഗറേഷൻ ഫയലിലെ ലിസണിംഗ് പാരാമീറ്റർ നിർവചിച്ചിരിക്കുന്നു.

# vi /etc/php-fpm.d/www.conf

സ്ഥിരസ്ഥിതിയായി, ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു Unix സോക്കറ്റിൽ കേൾക്കാൻ ഇത് ക്രമീകരിച്ചിരിക്കുന്നു. ഇവിടെയുള്ള മൂല്യം പിന്നീട് Nginx സെർവർ ബ്ലോക്ക് ഫയലിൽ വ്യക്തമാക്കും.

7. Unix സോക്കറ്റ് ഉപയോഗിക്കുകയാണെങ്കിൽ, സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ശരിയായ ഉടമസ്ഥാവകാശവും അനുമതികളും നിങ്ങൾ സജ്ജീകരിക്കണം. ഇനിപ്പറയുന്ന പാരാമീറ്ററുകൾ അൺകമന്റ് ചെയ്uത് ഉപയോക്താവിനും ഗ്രൂപ്പിനും അനുയോജ്യമാക്കുന്നതിന് അവയുടെ മൂല്യങ്ങൾ സജ്ജീകരിക്കുകയും ഗ്രൂപ്പ് Nginx പ്രവർത്തിക്കുകയും ചെയ്യുന്നു.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. അടുത്തതായി, /etc/php.ini കോൺഫിഗറേഷൻ ഫയലിൽ സിസ്റ്റം-വൈഡ് ടൈം സോൺ സജ്ജമാക്കുക.

# vi /etc/php.ini

\;date.timezone” എന്ന വരി തിരയുക, അഭിപ്രായമിടുക

 
date.timezone = Africa/Kampala

9. PHP-FPM-ലേക്ക് PHP കോഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നതിന് മറ്റ് വിപുലീകരണങ്ങൾ ഉപയോഗിക്കുന്ന ക്ഷുദ്ര ഉപയോക്താക്കളിൽ നിന്നുള്ള Nginx അഭ്യർത്ഥനകൾ കടന്നുപോകാനുള്ള സാധ്യത ലഘൂകരിക്കുന്നതിന്, ഇനിപ്പറയുന്ന പാരാമീറ്റർ അൺകമന്റ് ചെയ്ത് അതിന്റെ മൂല്യം 0 ആയി സജ്ജമാക്കുക.

cgi.fix_pathinfo=1

10. മുമ്പത്തെ പോയിന്റുമായി ബന്ധപ്പെട്ട്, /etc/php-fpm.d/www.conf ഫയലിൽ ഇനിപ്പറയുന്ന പാരാമീറ്റർ കമന്റ് ചെയ്യുക. കൂടുതൽ വിശദീകരണത്തിന് കമന്റ് വായിക്കുക.

security.limit_extensions = .php .php3 .php4 .php5 .php7

ഘട്ടം 3: കമ്പോസറും ലാറവെൽ പിഎച്ച്പി ഫ്രെയിംവർക്കും ഇൻസ്റ്റാൾ ചെയ്യുന്നു

11. അടുത്തതായി, താഴെ പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ച് കമ്പോസർ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക. ആദ്യത്തെ കമാൻഡ് ഇൻസ്റ്റാളർ ഡൗൺലോഡ് ചെയ്യുന്നു, തുടർന്ന് അത് PHP ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കുന്നു.

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

12. ഇപ്പോൾ കമ്പോസർ ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, ഇനിപ്പറയുന്ന രീതിയിൽ Laravel ഫയലുകളും ഡിപൻഡൻസികളും ഇൻസ്റ്റാൾ ചെയ്യാൻ ഇത് ഉപയോഗിക്കുക. mysite.com-ന് പകരം Laravel ഫയലുകൾ സംഭരിക്കുന്ന ഡയറക്ടറിയുടെ പേര് നൽകുക, സമ്പൂർണ്ണ പാത്ത് (അല്ലെങ്കിൽ Nginx കോൺഫിഗറേഷൻ ഫയലിലെ റൂട്ട് പാത്ത്) /var/www/html/mysite.com ആയിരിക്കും.

# cd /var/www/html/
# composer create-project --prefer-dist laravel/laravel mysite.com

പ്രക്രിയയ്ക്കിടയിൽ എല്ലാം ശരിയായി നടക്കുന്നുണ്ടെങ്കിൽ, ആപ്ലിക്കേഷൻ വിജയകരമായി ഇൻസ്റ്റാൾ ചെയ്യുകയും ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ ഒരു കീ ജനറേറ്റ് ചെയ്യുകയും വേണം.

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

# ls -la mysite.com/

14. അടുത്തതായി, Nginx വെബ് സെർവറിന് എഴുതാൻ കഴിയുന്ന സംഭരണത്തിലും ബൂട്ട്uസ്uട്രാപ്പ്/കാഷെ ഡയറക്uടറികളിലും ശരിയായ ഉടമസ്ഥാവകാശവും അനുമതികളും നിങ്ങൾ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്.

# chown -R :nginx /var/www/html/mysite.com/storage/
# chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
# chmod -R 0777 /var/www/html/mysite.com/storage/
# chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. നിങ്ങളുടെ സെർവറിൽ SELinux പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, സംഭരണത്തിന്റെയും ബൂട്ട്uസ്uട്രാപ്പ്/കാഷെ ഡയറക്uടറികളുടെയും സുരക്ഷാ സന്ദർഭവും നിങ്ങൾ അപ്uഡേറ്റ് ചെയ്യണം.

# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
# restorecon -Rv '/var/www/html/mysite.com'

ഘട്ടം 4: Laravel-നായി Nginx സെർവർ ബ്ലോക്ക് കോൺഫിഗർ ചെയ്യുക

16. Nginx-ന് നിങ്ങളുടെ വെബ്uസൈറ്റോ അപ്ലിക്കേഷനോ സേവനം നൽകാൻ ആരംഭിക്കുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ /etc/nginx/conf.d/ ഡയറക്uടറിക്ക് കീഴിലുള്ള ഒരു .conf ഫയലിൽ നിങ്ങൾ അതിനായി ഒരു സെർവർ ബ്ലോക്ക് സൃഷ്uടിക്കേണ്ടതുണ്ട്.

# vi /etc/nginx/conf.d/mysite.com.conf

ഫയലിൽ ഇനിപ്പറയുന്ന കോൺഫിഗറേഷൻ പകർത്തി ഒട്ടിക്കുക. റൂട്ട്, fastcgi_pass പാരാമീറ്ററുകൾ ശ്രദ്ധിക്കുക.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. ഫയൽ സംരക്ഷിച്ച് പ്രവർത്തിപ്പിക്കുന്നതിലൂടെ Nginx കോൺഫിഗറേഷൻ സിന്റാക്സ് ശരിയാണോ എന്ന് പരിശോധിക്കുക.

# nginx -t

18. അടുത്തകാലത്തെ മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുന്നതിനായി PHP-FPM, Nginx സേവനങ്ങൾ പുനരാരംഭിക്കുക.

# systemctl restart php-fpm
# systemctl restart Nginx

ഘട്ടം 5: ഒരു വെബ് ബ്രൗസറിൽ നിന്ന് Laravel വെബ്സൈറ്റ് ആക്സസ് ചെയ്യുന്നു

19. mysite.com-ൽ Laravel വെബ്സൈറ്റ് ആക്സസ് ചെയ്യാൻ, അത് പൂർണ്ണ യോഗ്യതയുള്ള ഡൊമെയ്ൻ നാമം (FQDN) അല്ല, അത് രജിസ്റ്റർ ചെയ്തിട്ടില്ല (ഇത് ടെസ്റ്റിംഗ് ആവശ്യങ്ങൾക്ക് മാത്രമാണ് ഉപയോഗിക്കുന്നത്), ഞങ്ങൾ നിങ്ങളുടെ ലോക്കൽ മെഷീനിൽ /etc/hosts ഫയൽ ഉപയോഗിക്കും. പ്രാദേശിക DNS സൃഷ്ടിക്കാൻ.

ആവശ്യമായ ഫയലിൽ സെർവർ ഐപി വിലാസവും ഡൊമെയ്uനും ചേർക്കുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക (നിങ്ങളുടെ ക്രമീകരണങ്ങൾക്കനുസരിച്ച് മൂല്യം മാറ്റിസ്ഥാപിക്കുക).

# ip add		#get remote server IP
$ echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. അടുത്തതായി, ലോക്കൽ മെഷീനിൽ ഒരു വെബ് ബ്രൗസർ തുറന്ന് നാവിഗേറ്റ് ചെയ്യാൻ ഇനിപ്പറയുന്ന വിലാസം ഉപയോഗിക്കുക.

http://mysite.com

നിങ്ങൾ CentOS 8-ൽ Laravel വിജയകരമായി വിന്യസിച്ചു. നിങ്ങൾക്ക് ഇപ്പോൾ Laravel ഉപയോഗിച്ച് നിങ്ങളുടെ വെബ്uസൈറ്റോ വെബ് ആപ്ലിക്കേഷനോ വികസിപ്പിക്കാൻ തുടങ്ങാം. കൂടുതൽ വിവരങ്ങൾക്ക്, Laravel Getting Started Guide കാണുക.