Nginx-ൽ വ്യത്യസ്uത PHP പതിപ്പുകളുള്ള ഒന്നിലധികം വെബ്uസൈറ്റുകൾ എങ്ങനെ പ്രവർത്തിപ്പിക്കാം
ചിലപ്പോൾ PHP ഡെവലപ്പർമാർ ഒരേ വെബ് സെർവറിൽ PHP യുടെ വ്യത്യസ്ത പതിപ്പുകൾ ഉപയോഗിച്ച് വ്യത്യസ്ത വെബ്uസൈറ്റുകൾ/ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാനും പ്രവർത്തിപ്പിക്കാനും ആഗ്രഹിക്കുന്നു. ഒരു ലിനക്സ് സിസ്റ്റം അഡ്uമിനിസ്uട്രേറ്റർ എന്ന നിലയിൽ, ഒരൊറ്റ വെബ് സെർവറിൽ, അതായത് Nginx-ൽ വ്യത്യസ്ത PHP പതിപ്പുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒന്നിലധികം വെബ്uസൈറ്റുകൾ പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന ഒരു അന്തരീക്ഷം നിങ്ങൾ സജ്ജീകരിക്കേണ്ടതുണ്ട്.
ഈ ട്യൂട്ടോറിയലിൽ, LEMP സ്റ്റാക്ക് ഉപയോഗിച്ച് CentOS/RHEL 7 വിതരണങ്ങളിലെ സെർവർ ബ്ലോക്കുകൾ (അപ്പാച്ചെയിലെ വെർച്വൽ ഹോസ്റ്റുകൾ) വഴി PHP-യുടെ ഒന്നിലധികം പതിപ്പുകൾ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും വെബ് സെർവർ Nginx കോൺഫിഗർ ചെയ്യാമെന്നും ഞങ്ങൾ നിങ്ങളെ വിശദീകരിക്കും.
Nginx, PHP-FPM ഉപയോഗിക്കുന്നു (FastCGI പ്രോസസ് മാനേജർ എന്നതിന്റെ അർത്ഥം), ഇത് ഒരു ബദൽ PHP FastCGI നടപ്പിലാക്കൽ ആണ്, കൂടുതൽ ലോഡുചെയ്uത വെബ്uസൈറ്റുകൾക്ക് ചില അധിക ഉപയോഗപ്രദമായ സവിശേഷതകൾ.
- കുറഞ്ഞ ഇൻസ്റ്റാളേഷനുള്ള ഒരു RHEL 7 സെർവർ.
- Nginx HTTP സെർവർ.
- PHP 7.1 (സ്ഥിര പതിപ്പായി ഉപയോഗിക്കും) കൂടാതെ 5.6.
- MariaDB ഡാറ്റാബേസ് സെർവർ.
- സെർവർ IP വിലാസം: 192.168.56.10.
- വെബ്സൈറ്റുകൾ: example1.com, example2.com.
ഘട്ടം 1: EPEL, Remi Repository എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യുകയും പ്രവർത്തനക്ഷമമാക്കുകയും ചെയ്യുക
1. CentOS/RHEL 7 വിതരണങ്ങളിൽ PHP സ്റ്റാക്കിന്റെ ഏറ്റവും പുതിയ പതിപ്പുകൾ വാഗ്ദാനം ചെയ്യുന്ന EPEL, Remi റിപ്പോസിറ്ററി എന്നിവ ഇൻസ്റ്റാൾ ചെയ്ത് പ്രവർത്തനക്ഷമമാക്കിക്കൊണ്ട് ആദ്യം ആരംഭിക്കുക.
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
2. അടുത്തതായി yum-utils പാക്കേജ് ഇൻസ്റ്റോൾ ചെയ്യുക, അത് yum-ന്റെ നേറ്റീവ് ഫങ്ഷണാലിറ്റികൾ വിപുലീകരിക്കുകയും yum-config-manager കമാൻഡ് നൽകുകയും ചെയ്യുന്നു, ഇത് സിസ്റ്റത്തിലെ Yum റിപ്പോസിറ്ററികൾ പ്രവർത്തനക്ഷമമാക്കാനോ പ്രവർത്തനരഹിതമാക്കാനോ ഉപയോഗിക്കുന്നു.
# yum install yum-utils
ശ്രദ്ധിക്കുക: RHEL 7-ൽ താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ചില ഡിപൻഡൻസികൾക്കായി ഓപ്ഷണൽ ചാനൽ പ്രവർത്തനക്ഷമമാക്കാം.
# subscription-manager repos --enable=rhel-7-server-optional-rpms
ഘട്ടം 2: Nginx വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
3. Nginx-ന്റെ ഏറ്റവും പുതിയ പതിപ്പ് ഇൻസ്റ്റാൾ ചെയ്യാൻ, ഞങ്ങൾ ഔദ്യോഗിക Nginx റിപ്പോസിറ്ററി ചേർക്കേണ്ടതുണ്ട്, /etc/yum.repos.d/nginx.repo എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിക്കുക.
# vi /etc/yum.repos.d/nginx.repo
നിങ്ങളുടെ വിതരണം അനുസരിച്ച് ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക.
--------------- On CentOS 7 --------------- [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 --------------- On RHEL 7 --------------- [nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/7.x/$basearch/ gpgcheck=0 enabled=1
4. nginx repo ചേർത്തുകഴിഞ്ഞാൽ, കാണിച്ചിരിക്കുന്നതുപോലെ yum പാക്കേജ് മാനേജർ ടൂൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് Nginx ഇൻസ്റ്റാൾ ചെയ്യാം.
# yum install nginx
ഘട്ടം 3: MariaDB ഡാറ്റാബേസ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
5. MariaDB-യുടെ ഏറ്റവും പുതിയ പതിപ്പ് ഇൻസ്റ്റാൾ ചെയ്യാൻ, ഞങ്ങൾക്ക് ഔദ്യോഗിക MariaDB ശേഖരം ചേർക്കേണ്ടതുണ്ട്, /etc/yum.repos.d/mariadb.repo എന്ന പേരിൽ ഒരു ഫയൽ സൃഷ്ടിക്കുക.
# vi /etc/yum.repos.d/mariadb.repo
നിങ്ങളുടെ വിതരണം അനുസരിച്ച് ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക.
--------------- On CentOS 7 --------------- [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 --------------- On RHEL 7 --------------- [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/rhel7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
6. MariaDB repo ചേർത്തുകഴിഞ്ഞാൽ, കാണിച്ചിരിക്കുന്നതുപോലെ yum പാക്കേജ് മാനേജർ ടൂൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് MariaDB ഇൻസ്റ്റാൾ ചെയ്യാം.
# yum install MariaDB-client MariaDB-server
7. അതിനുശേഷം, ചുവടെയുള്ള സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ഡാറ്റാബേസ് സെർവർ ഇൻസ്റ്റാളേഷൻ സുരക്ഷിതമാക്കുക. ഒരു റൂട്ട് പാസ്uവേഡ് സജ്ജീകരിച്ച് y
എന്നതിന് ഉത്തരം നൽകുക, വിദൂര റൂട്ട് യൂസർ ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുന്നതിനും അജ്ഞാത-ഉപയോക്തൃ അക്കൗണ്ടുകൾ നീക്കം ചെയ്യുന്നതിനും സ്ഥിരസ്ഥിതിയായി എല്ലാ ഉപയോക്താക്കൾക്കും ആക്uസസ് ചെയ്യാൻ കഴിയുന്ന ഡാറ്റാബേസ് ടെസ്റ്റ് ചെയ്യുന്നതിനും തുടർന്നുള്ള ചോദ്യങ്ങൾക്ക് [Enter] അമർത്തുക. , അജ്ഞാത ഉപയോക്താക്കൾ പോലും.
# mysql_secure_installation
ഘട്ടം 4: PHP-യുടെ ഒന്നിലധികം പതിപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
8. നിങ്ങളുടെ പ്രോജക്റ്റുകൾക്കായി PHP യുടെ വ്യത്യസ്ത പതിപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ, കാണിച്ചിരിക്കുന്നതുപോലെ ആവശ്യമായ മൊഡ്യൂളുകൾക്കൊപ്പം PHP യുടെ ഒന്നിലധികം പതിപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ yum-config-manager കമാൻഡ് ഉപയോഗിക്കുക.
# yum-config-manager --enable remi-php71 [Default] # yum install php php-common php-fpm # yum install php-mysql php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo
# yum install php56 php56-php-common php56-php-fpm # yum install php56-php-mysql php56-php-pecl-memcache php56-php-pecl-memcached php56-php-gd php56-php-mbstring php56-php-mcrypt php56-php-xml php56-php-pecl-apc php56-php-cli php56-php-pear php56-php-pdo
9. PHP ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, നിങ്ങളുടെ സെർവറിൽ ഉപയോഗിക്കുന്ന PHP-യുടെ സ്ഥിരസ്ഥിതി പതിപ്പ് പരിശോധിക്കാൻ നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കാം.
# php -v
ഘട്ടം 5: PHP-FPM, PHP56-PHP-FPM എന്നിവ കോൺഫിഗർ ചെയ്യുന്നു
10. ഈ ട്യൂട്ടോറിയലിന്റെ ഏറ്റവും രസകരമായ ഭാഗമാണിത്, നിങ്ങളുടെ സെർവറിൽ ഒന്നിലധികം PHP പതിപ്പുകൾ എങ്ങനെ പ്രവർത്തിപ്പിക്കാനാകുമെന്ന് ഇത് വിശദീകരിക്കുന്നു. ഇവിടെ, നിങ്ങൾ Nginx പ്രവർത്തിക്കുന്ന php-fpm-ന്റെ വ്യത്യസ്ത പതിപ്പുകൾ കോൺഫിഗർ ചെയ്യും. FastCGI പ്രക്രിയകളുടെ ഉപയോക്താവ്/ഗ്രൂപ്പും അവർ കേൾക്കുന്ന പോർട്ടുകളും നിങ്ങൾ നിർവ്വചിക്കണം.
നിങ്ങൾ എഡിറ്റ് ചെയ്യാൻ പോകുന്ന ഇനിപ്പറയുന്ന രണ്ട് കോൺഫിഗറേഷൻ ഫയലുകൾ ഇവയാണ്.
- php-fpm (സ്ഥിരസ്ഥിതി 7.1) – /etc/php-fpm.d/www.conf
- php56-php-fpm – /opt/remi/php56/root/etc/php-fpm.d/www.conf
മുകളിലെ ഫയലുകൾ തുറക്കുക, FastCGI പ്രക്രിയകളുടെ ഉപയോക്താവ്/ഗ്രൂപ്പ് സജ്ജമാക്കുക.
# vi /etc/php-fpm.d/www.conf [PHP 7.1] # vi /opt/remi/php56/root/etc/php-fpm.d/www.conf [PHP 5.6]
സ്ഥിരസ്ഥിതി മൂല്യങ്ങൾ അപ്പാച്ചെ ആയിരിക്കണം, കാണിച്ചിരിക്കുന്നതുപോലെ അവയെ nginx-ലേക്ക് മാറ്റുക.
user = nginx group = nginx
11. അടുത്തതായി, ലിസൻ പാരാമീറ്ററുകൾ കണ്ടെത്തി, ഫാസ്റ്റ്സിജിഐ അഭ്യർത്ഥനകൾ സ്വീകരിക്കുന്ന വിലാസം: പോർട്ട് നിർവചിക്കുക.
listen = 127.0.0.1:9000 [php-fpm] listen = 127.0.0.1:9001 [php56-php-fpm]
12. മുകളിലുള്ള എല്ലാ കോൺഫിഗറേഷനും ചെയ്തുകഴിഞ്ഞാൽ, സിസ്റ്റം ബൂട്ടിൽ യാന്ത്രികമായി ആരംഭിക്കുന്നതിന് നിങ്ങൾ Nginx, MariaDB, PHP-FPM എന്നിവ ആരംഭിച്ച് പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്.
# systemctl enable nginx # systemctl start nginx # systemctl enable mariadb # systemctl start mariadb ---------------- PHP 7.1 ---------------- # systemctl enable php-fpm # systemctl start php-fpm ---------------- PHP 5.6 ---------------- # systemctl enable php56-php-fpm # systemctl start php56-php-fpm
ശ്രദ്ധിക്കുക: PHP, php56-php-fpm ന്റെ രണ്ടാമത്തെ ഉദാഹരണം ആരംഭിക്കുമ്പോൾ നിങ്ങൾക്ക് എന്തെങ്കിലും പിശകുകൾ ഉണ്ടായാൽ, ഒരു SELinux നയം അത് ആരംഭിക്കുന്നതിൽ നിന്ന് തടഞ്ഞേക്കാം. SELinux എൻഫോഴ്uസിംഗ് മോഡിലാണെങ്കിൽ, അത് അനുവദനീയമായ മോഡിലേക്ക് സജ്ജമാക്കുക, തുടർന്ന് ഒരിക്കൽ കൂടി സേവനം ആരംഭിക്കാൻ ശ്രമിക്കുക.
# getenforce # setenforce 0
ഘട്ടം 6: അനുമതികളോടെ വെബ്uസൈറ്റുകൾ സജ്ജീകരിക്കുക
13. ഈ ഘട്ടത്തിൽ, നിങ്ങൾക്ക് ഇപ്പോൾ /var/www/html/ എന്നതിന് കീഴിൽ നിങ്ങളുടെ വെബ്uസൈറ്റുകൾക്ക് ആവശ്യമായ ഡയറക്uടറികൾ സൃഷ്uടിക്കാം. ഇനിപ്പറയുന്ന രീതിയിൽ ലോഗുകൾ സംഭരിക്കുന്നതിന് നിങ്ങൾ ഡയറക്ടറികൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്:
---------------- Website 1 ---------------- # mkdir -p /var/www/html/example1.com/ # mkdir -p /var/log/nginx/example1.com/ ---------------- Website 2 ---------------- # mkdir -p /var/www/html/example2.com/ # mkdir -p /var/log/nginx/example2.com/
14. എല്ലാ ഡയറക്ടറികളിലും ഉചിതമായ ഉടമസ്ഥാവകാശ അനുമതികൾ സജ്ജമാക്കുക.
---------------- Website 1 ---------------- # chown -R root:nginx /var/www/html/example1.com/ # chmod -R 755 /var/www/html/example1.com/ # chown -R root:nginx /var/log/nginx/example1.com/ # chmod -R 660 /var/log/nginx/example1.com/ ---------------- Website 2 ---------------- # chown -R root:nginx /var/www/html/example2.com/ # chmod -R 755 /var/www/html/example2.com/ # chown -R root:nginx /var/log/nginx/example2.com/ # chmod -R 660 /var/log/nginx/example2.com/
ഘട്ടം 7: വെബ്uസൈറ്റുകൾക്കായി Nginx സെർവർ ബ്ലോക്കുകൾ സജ്ജീകരിക്കുക
15. /etc/nginx/conf.d/-ൽ സ്ഥിതി ചെയ്യുന്ന സെർവർ ബ്ലോക്ക് കോൺഫിഗറേഷൻ ഫയലുകൾ ഉപയോഗിച്ച് Nginx നിങ്ങളുടെ വെബ്uസൈറ്റുകളിലേക്കുള്ള അഭ്യർത്ഥനകൾ എങ്ങനെ പ്രോസസ്സ് ചെയ്യുമെന്ന് ഇപ്പോൾ കോൺഫിഗർ ചെയ്യുക.
.conf
വിപുലീകരണത്തിൽ അവസാനിക്കുന്ന നിങ്ങളുടെ വെബ്uസൈറ്റുകൾക്കായി കോൺഫിഗറേഷൻ ഫയലുകൾ സൃഷ്uടിക്കുക.
# vi /etc/nginx/conf.d/example1.com.conf # vi /etc/nginx/conf.d/example2.com.conf
തുടർന്ന് ഇനിപ്പറയുന്ന സെർവർ ബ്ലോക്ക് കോൺഫിഗറേഷനുകൾ ബന്ധപ്പെട്ട ഫയലുകളിൽ ഒട്ടിക്കുക.
server { listen 80; server_name example1.com www.example1.com; root /var/www/html/example1.com/; index index.php index.html index.htm; #charset koi8-r; access_log /var/log/nginx/example1.com/example1_access_log; error_log /var/log/nginx/example1.com/example1_error_log error; location / { try_files $uri $uri/ /index.php?$query_string; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { root /var/www/html/example1.com/; fastcgi_pass 127.0.0.1:9000; #set port for php-fpm to listen on fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include /etc/nginx/fastcgi_params; } }
server { listen 80; server_name example2.com www.example2.com; root /var/www/html/example2.com/; index index.php index.html index.htm; #charset koi8-r; access_log /var/log/nginx/example2.com/example2_access_log; error_log /var/log/nginx/example2.com/example2_error_log error; location / { try_files $uri $uri/ /index.php?$query_string; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { root /var/www/html/example2.com/; fastcgi_pass 127.0.0.1:9001; #set port for php56-php-fpm to listen on fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include /etc/nginx/fastcgi_params; } }
16. /etc/nginx/nginx.conf എന്നതിലെ http ബ്ലോക്കിന്റെ ക്ലോസിംഗ് ഭാഗത്ത് നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന വരി ഉണ്ടെന്ന് ഉറപ്പാക്കുക. Nginx പ്രവർത്തിക്കുമ്പോൾ /etc/nginx/conf.d/ ഡയറക്uടറിക്കുള്ളിൽ എല്ലാ കോൺഫിഗറേഷൻ ഫയലുകളും ഉൾപ്പെടുത്താൻ ഇത് സഹായിക്കുന്നു.
include /etc/nginx/conf.d/*.conf;
ഘട്ടം 8: വ്യത്യസ്uത PHP പതിപ്പുകൾ പരിശോധിക്കുന്നു
17. അവസാനമായി, നിങ്ങളുടെ സെർവർ PHP യുടെ രണ്ട് പതിപ്പുകൾ ഉപയോഗിക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കേണ്ടതുണ്ട്. കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങളുടെ വെബ്uസൈറ്റുകളുടെ ഡോക്യുമെന്റ് റൂട്ട് ഡയറക്uടറികളിൽ നിങ്ങൾക്ക് വളരെ അടിസ്ഥാനപരമായ ഒരു info.php സ്uക്രിപ്റ്റ് സൃഷ്uടിക്കാനാകും.
# echo "<?php phpinfo(); ?>" > /var/www/html/example1.com/info.php # echo "<?php phpinfo(); ?>" > /var/www/html/example2.com/info.php
18. നിങ്ങൾ മുകളിൽ വരുത്തിയ എല്ലാ മാറ്റങ്ങളും പ്രയോഗിക്കുന്നതിന്, നിങ്ങൾ Nginx, php-fpm, php56-php-fpm എന്നിവ പുനരാരംഭിക്കേണ്ടതുണ്ട്. എന്നാൽ അങ്ങനെ ചെയ്യുന്നതിനുമുമ്പ് ഏതെങ്കിലും വാക്യഘടന പിശകുകൾക്കായി Nginx കോൺഫിഗറേഷൻ ഫയലുകൾ നിങ്ങൾക്ക് ആദ്യം പരിശോധിക്കാം.
# nginx -t # systemctl restart nginx php-fpm php56-php-fpm
19. അവസാനമായി മറ്റൊരു കാര്യം കൂടി ചെയ്യാനുണ്ട്, പ്രത്യേകിച്ചും നിങ്ങൾ പ്രാദേശികമായി സെർവർ പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, ചുവടെയുള്ള സ്ക്രീൻ ഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ /etc/hosts ഫയൽ ഉപയോഗിച്ച് ലോക്കൽ DNS സജ്ജീകരിക്കേണ്ടതുണ്ട്.
192.168.56.10 example1.com example1 192.168.56.10 example2.com example2
20. അവസാനമായി, ഒരു വെബ് ബ്രൗസർ തുറന്ന് സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്ത PHP പതിപ്പുകൾ പരിശോധിക്കുന്നതിന് ഇനിപ്പറയുന്ന വിലാസങ്ങൾ ടൈപ്പ് ചെയ്യുക.
http://example1.com/index.php http://example2.com/index.php
അത്രയേയുള്ളൂ! ഇപ്പോൾ നിങ്ങൾക്ക് വ്യത്യസ്ത PHP പതിപ്പുകൾ ഉപയോഗിച്ച് ഫയലുകൾ വിന്യസിക്കാനും വെബ്uസൈറ്റുകൾ പരിശോധിക്കാനും കഴിയും. നിങ്ങൾക്ക് എന്തെങ്കിലും കൂട്ടിച്ചേർക്കലുകളോ മുന്നോട്ട് വയ്ക്കാനുള്ള ചോദ്യങ്ങളോ ഉണ്ടെങ്കിൽ, ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിക്കുക.