உபுண்டுவில் Yii PHP கட்டமைப்பை எவ்வாறு நிறுவுவது


Yii (Yee அல்லது [ji:] என உச்சரிக்கப்படுகிறது) என்பது PHP ஐப் பயன்படுத்தி அனைத்து வகையான வலை பயன்பாடுகளையும் உருவாக்குவதற்கான ஒரு இலவச மற்றும் திறந்த-மூல, வேகமான, உயர் செயல்திறன், பாதுகாப்பான, நெகிழ்வான மற்றும் நடைமுறை மற்றும் திறமையான பொதுவான வலை நிரலாக்க கட்டமைப்பாகும்.

இந்த கட்டுரையில், நவீன PHP வலை பயன்பாடுகளை உருவாக்கத் தொடங்க உபுண்டு எல்.டி.எஸ் (நீண்ட கால ஆதரவு) வெளியீடுகளில் Yii கட்டமைப்பின் சமீபத்திய பதிப்பை எவ்வாறு நிறுவுவது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்.

யி பின்வரும் உபுண்டு எல்.டி.எஸ் (நீண்ட கால ஆதரவு) வெளியீடுகளை வைத்திருக்கிறார்:

  • உபுண்டு 20.04 எல்டிஎஸ் ("குவிய")
  • உபுண்டு 18.04 எல்டிஎஸ் ("பயோனிக்")
  • உபுண்டு 16.04 எல்டிஎஸ் ("ஜெனியல்")

  • உபுண்டு சேவையகத்தின் இயங்கும் நிகழ்வு.
  • PHP 5.4.0 அல்லது அதற்கு மேற்பட்ட LEMP அடுக்கு.
  • ஒரு இசையமைப்பாளர் - PHP க்கான பயன்பாட்டு-நிலை தொகுப்பு மேலாளர்.

இந்த பக்கத்தில்

  • உபுண்டுவில் இசையமைப்பாளர் வழியாக யி கட்டமைப்பை நிறுவுதல்
  • PHP மேம்பாட்டு சேவையகத்தைப் பயன்படுத்தி Yii ஐ இயக்குகிறது
  • ஒரு NGINX HTTP சேவையகத்தைப் பயன்படுத்தி உற்பத்தியில் Yii திட்டத்தை இயக்குகிறது
  • நாம் குறியாக்கத்தைப் பயன்படுத்தி Yii பயன்பாடுகளில் HTTPS ஐ இயக்கவும்

இசையமைப்பாளர் தொகுப்பு நிர்வாகியைப் பயன்படுத்தி அல்லது காப்பகக் கோப்பிலிருந்து நிறுவுவதன் மூலம் Yii ஐ நிறுவ இரண்டு வழிகள் உள்ளன. முந்தையது பரிந்துரைக்கப்பட்ட வழி, ஏனெனில் இது புதிய நீட்டிப்புகளை நிறுவ அல்லது ஒரு கட்டளையின் மூலம் யியை புதுப்பிக்க உதவுகிறது.

உங்களிடம் இசையமைப்பாளர் நிறுவப்படவில்லை எனில், பின்வரும் கட்டளைகளைப் பயன்படுத்தி அதை நிறுவலாம், இது பின்னர் 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/ கோப்பகத்திற்குச் சென்று, பின்னர் இசையமைப்பாளரைப் பயன்படுத்தி Yii தொகுப்பை நிறுவவும் (சோதனைப் பெயரை உங்கள் பெயருடன் மாற்றவும் வலை பயன்பாட்டின் அடைவு).

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

இந்த கட்டத்தில், வளர்ச்சிக்கு Yii கட்டமைப்பைப் பயன்படுத்தத் தொடங்க நீங்கள் தயாராக உள்ளீர்கள். PHP மேம்பாட்டு சேவையகத்தை இயக்க, டெஸ்ட் ப்ராஜெக்ட்ஸ் கோப்பகத்தில் செல்லவும் (முந்தைய கட்டளையில் நீங்கள் குறிப்பிட்டதைப் பொறுத்து உங்கள் கோப்பகத்தின் பெயர் வித்தியாசமாக இருக்க வேண்டும்), பின்னர் மேம்பாட்டு சேவையகத்தைத் தொடங்கவும். இயல்பாக, இது போர்ட் 8080 இல் இயங்க வேண்டும்.

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

மேம்பாட்டு சேவையகத்தை மற்றொரு துறைமுகத்தில் இயக்க, எடுத்துக்காட்டாக, போர்ட் 5000, காட்டப்பட்டுள்ளபடி --port கொடியைப் பயன்படுத்தவும்.

$ php yii serve --port=5000

உங்கள் வலை உலாவியைத் திறந்து பின்வரும் முகவரியைப் பயன்படுத்தி செல்லவும்:

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

உற்பத்தியில் Yii பயன்பாட்டை வரிசைப்படுத்த மற்றும் அணுக, ஆதரிக்கப்பட்ட வலை சேவையக மென்பொருள் போன்ற HTTP சேவையகம் தேவை.

உங்கள் போர்ட்டைத் தட்டச்சு செய்யாமல் Yii பயன்பாட்டை அணுக, உங்கள் டொமைனை உங்கள் Yii கட்டமைப்பின் பயன்பாட்டு சேவையகத்தில் சுட்டிக்காட்ட தேவையான DNS A பதிவை உருவாக்க வேண்டும்.

இந்த வழிகாட்டிக்கு, என்ஜிஎன்எக்ஸ் உடன் ஒரு யி பயன்பாட்டை எவ்வாறு வரிசைப்படுத்துவது என்பதைக் காண்பிப்போம். எனவே, உங்கள் பயன்பாட்டிற்கான/etc/nginx/sites-available/அடைவின் கீழ் ஒரு மெய்நிகர் ஹோஸ்ட் அல்லது சர்வர் பிளாக் உள்ளமைவு கோப்பை உருவாக்க வேண்டும், இதனால் NGINX அதை வழங்க முடியும்.

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

அதில் பின்வரும் உள்ளமைவை நகலெடுத்து ஒட்டவும் ( testprojects.me மற்றும் www.testprojects.me ஐ உங்கள் டொமைன் பெயருடன் மாற்றவும்). ஃபாஸ்ட் சிஜிஐ கோரிக்கைகளை PHP-FPM க்கு NGINX அனுப்பும் வழிமுறைகளையும் குறிப்பிடவும், இந்த எடுத்துக்காட்டில், நாங்கள் யுனிக்ஸ் சாக்கெட்டைப் பயன்படுத்துகிறோம் (/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;
    }
}

கோப்பை சேமித்து மூடவும்.

சரியான தன்மைக்கு என்ஜிஎன்எக்ஸ் உள்ளமைவு தொடரியல் சரிபார்க்கவும், அது சரி என்றால், புதிய பயன்பாட்டை காட்டப்பட்டுள்ளபடி இயக்கவும்:

$ 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

கடைசியாக, உங்கள் வலைத்தளத்தில் நீங்கள் HTTPS ஐ இயக்க வேண்டும். நீங்கள் இலவச லெட்ஸ் குறியாக்க SSL/TLS சான்றிதழைப் பயன்படுத்தலாம் (இது அனைத்து நவீன வலை உலாவிகளாலும் தானியங்கி மற்றும் அங்கீகரிக்கப்பட்டுள்ளது) அல்லது வணிக CA இலிருந்து சான்றிதழைப் பெறலாம்.

நாம் ஒரு குறியாக்க சான்றிதழைப் பயன்படுத்த முடிவு செய்தால், அது தானாகவே நிறுவப்பட்டு சான்றிதழ் கருவியைப் பயன்படுத்தி கட்டமைக்கப்படலாம். Certbot ஐ நிறுவ, அதை நிறுவ snapd ஐ நிறுவ வேண்டும்.

$ sudo snap install --classic certbot

என்ஜிஎன்எக்ஸ் வலை சேவையகத்துடன் பயன்படுத்த உங்கள் இலவச எஸ்எஸ்எல்/டிஎல்எஸ் சான்றிதழைப் பெற மற்றும் நிறுவ/கட்டமைக்க செர்ட்போட்டைப் பயன்படுத்தவும் (புதுப்பிப்பதற்கான சரியான மின்னஞ்சலை வழங்கவும் மற்றும் நிறுவலை முடிக்கும்படி கேட்கவும்):

$ sudo certbot --nginx

உங்கள் Yii பயன்பாடு இப்போது HTTPS இல் இயங்குகிறது என்பதை உறுதிப்படுத்த இப்போது உங்கள் வலை உலாவிக்குச் செல்லுங்கள் (HTTP தானாகவே HTTPS க்கு திருப்பி விடப்பட வேண்டும் என்பதை நினைவில் கொள்க).

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

உங்கள் பயன்பாட்டை தரவுத்தளத்துடன் இணைப்பது போன்ற கூடுதல் தகவலுக்கு, அதிகாரப்பூர்வ Yii திட்ட வலைத்தளத்திலிருந்து Yii கட்டமைப்பின் ஆவணங்களைப் பார்க்கவும். இதை முயற்சித்துப் பாருங்கள், யியைப் பற்றிய உங்கள் எண்ணங்களைப் பகிர்ந்து கொள்ளுங்கள் அல்லது கீழேயுள்ள கருத்து படிவத்தின் மூலம் ஏதேனும் கேள்விகளைக் கேளுங்கள்.