উবুন্টুতে কীভাবে ইআই পিএইচপি ফ্রেমওয়ার্ক ইনস্টল করবেন


Yii (উচ্চারণ ইয়ে বা [জি:]) হ'ল পিএইচপি ব্যবহার করে সমস্ত প্রকারের ওয়েব অ্যাপ্লিকেশন বিকাশের জন্য একটি নিখরচায় এবং ওপেন সোর্স, দ্রুত, উচ্চ কার্যকারিতা, সুরক্ষিত, নমনীয় তবে বাস্তববাদী এবং দক্ষ জেনেরিক ওয়েব প্রোগ্রামিং ফ্রেমওয়ার্ক।

এই নিবন্ধে, আপনি আধুনিক পিএইচপি ওয়েব অ্যাপ্লিকেশনগুলির বিকাশ শুরু করতে উবুন্টু এলটিএস (দীর্ঘমেয়াদী সমর্থন) রিলিজগুলিতে ইআই কাঠামোর সর্বশেষ সংস্করণটি ইনস্টল করতে শিখবেন।

Yii নিম্নলিখিত উবুন্টু এলটিএস (দীর্ঘমেয়াদী সমর্থন) রিলিজ রাখে:

  • উবুন্টু 20.04 এলটিএস ("ফোকাল")
  • উবুন্টু 18.04 এলটিএস ("বায়োনিক")
  • উবুন্টু 16.04 এলটিএস ("জেনিয়াল")

  • উবুন্টু সার্ভারের একটি চলমান উদাহরণ
  • পিএইচপি 5.4.0 বা তদুর্ধের সাথে একটি এলইএমপি স্ট্যাক।
  • একজন সুরকার - পিএইচপি-র জন্য একটি অ্যাপ্লিকেশন-স্তরের প্যাকেজ পরিচালক

এই পৃষ্ঠায়

  • উবুন্টুতে সুরকারের মাধ্যমে ইয়ে ফ্রেমওয়ার্ক ইনস্টল করা হচ্ছে
  • পিএইচপি বিকাশ সার্ভার ব্যবহার করে ইয়াই চালানো
  • একটি এনজিআইএনএক্স এইচটিটিপি সার্ভার ব্যবহার করে উত্পাদনে ইআইআই প্রকল্প চালানো
  • যাক এর এনক্রিপ্ট ব্যবহার করে Yii অ্যাপ্লিকেশনগুলিতে এইচটিটিপিএস সক্ষম করুন

কমপিউজার প্যাকেজ ম্যানেজার ব্যবহার করে বা কোনও সংরক্ষণাগার ফাইল থেকে এটি ইনস্টল করে, ইআইআই ইনস্টল করার দুটি উপায় রয়েছে। পূর্ববর্তীটি প্রস্তাবিত উপায়, কারণ এটি আপনাকে নতুন এক্সটেনশানগুলি ইনস্টল করতে বা একক আদেশ দ্বারা 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

এই মুহুর্তে, আপনি উন্নয়নের জন্য ইআই কাঠামোটি ব্যবহার শুরু করতে প্রস্তুত। পিএইচপি ডেভলপমেন্ট সার্ভারটি চালানোর জন্য, টেস্টপ্রজেক্ট ডিরেক্টরিতে যান (আপনার ডিরেক্টরিটির নামটি আপনি পূর্ববর্তী কমান্ডে নির্দিষ্ট করেছেন তার উপর নির্ভর করে পৃথক হওয়া উচিত), তারপরে বিকাশ সার্ভারটি চালু করুন। ডিফল্টরূপে, এটি 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 সার্ভার যেমন সমর্থিত ওয়েব সার্ভার সফ্টওয়্যার প্রয়োজন।

আপনার পোর্টটি টাইপ না করেই ওয়াইআই অ্যাপ্লিকেশনটি অ্যাক্সেস করতে আপনার ডোমেইনটি আপনার ইআইআই ফ্রেমওয়ার্ক অ্যাপ্লিকেশন সার্ভারের দিকে নির্দেশ করার জন্য আপনাকে প্রয়োজনীয় ডিএনএস একটি রেকর্ড তৈরি করতে হবে।

এই গাইডের জন্য, আমরা এনজিআইএনএক্সের সাথে কীভাবে ইআই অ্যাপ্লিকেশন স্থাপন করব তা দেখাব। সুতরাং, আপনার আবেদনের জন্য আপনাকে/etc/nginx/সাইট-উপলব্ধ/ডিরেক্টরিতে ভার্চুয়াল হোস্ট বা সার্ভার ব্লক কনফিগারেশন ফাইল তৈরি করতে হবে যাতে এনজিআইএনএক্স এটি পরিবেশন করতে পারে।

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

এটিতে নীচের কনফিগারেশনটি অনুলিপি করুন এবং আটকান (আপনার ডোমেন নামের সাথে টেস্টপ্রজেক্টস.এম এবং www.testprojects.me প্রতিস্থাপন করুন)। এছাড়াও এনজিআইএনএক্স পিএইচপি-এফপিএম-তে ফাস্টসিজিআই অনুরোধগুলি পাস করার উপায়গুলি নির্দিষ্ট করুন, উদাহরণস্বরূপ, আমরা একটি ইউএনআইএক্স সকেট (/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 সক্ষম করতে হবে। আপনি হয় একটি বিনামূল্যে লেটস এনক্রিপ্ট এসএসএল/টিএলএস শংসাপত্র (যা স্বয়ংক্রিয়ভাবে এবং সমস্ত আধুনিক ওয়েব ব্রাউজার দ্বারা স্বীকৃত) ব্যবহার করতে পারেন বা বাণিজ্যিক সিএ থেকে একটি শংসাপত্র অর্জন করতে পারেন either

আপনি যদি কোনও লেটস এনক্রিপ্ট শংসাপত্র ব্যবহার করার সিদ্ধান্ত নেন তবে এটি স্বয়ংক্রিয়ভাবে সার্টিবোট সরঞ্জামটি ব্যবহার করে ইনস্টল এবং কনফিগার করা যাবে। সার্টিবোট ইনস্টল করতে আপনার এটি ইনস্টল করার জন্য স্ন্যাপড ইনস্টল করতে হবে।

$ sudo snap install --classic certbot

তারপরে এনজিআইএনএক্স ওয়েব সার্ভারের সাথে ব্যবহারের জন্য আপনার নিখরচায় এসএসএল/টিএলএস শংসাপত্র প্রাপ্ত ও ইনস্টল/কনফিগার করতে সার্টিবোট ব্যবহার করুন (পুনর্নবীকরণের জন্য একটি বৈধ ইমেল সরবরাহ করুন এবং ইনস্টলেশনটি সম্পূর্ণ করার জন্য অনুরোধগুলি অনুসরণ করুন):

$ sudo certbot --nginx

আপনার Yii অ্যাপ্লিকেশনটি এখন এইচটিটিপিএস-এ চলছে তা নিশ্চিত করার জন্য এখন আরও একবার আপনার ওয়েব ব্রাউজারে যান (মনে রাখবেন HTTP স্বয়ংক্রিয়ভাবে HTTPS এ পুনঃনির্দেশ করা উচিত)।

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

আপনার অ্যাপ্লিকেশনটিকে একটি ডাটাবেসে সংযুক্ত করার মতো আরও তথ্যের জন্য, অফিসিয়াল ইআইআই প্রকল্পের ওয়েবসাইট থেকে ইআই কাঠামোর ডকুমেন্টেশন দেখুন। একবার চেষ্টা করে দেখুন এবং ইআইআই সম্পর্কে আপনার মতামত ভাগ করুন বা নীচের প্রতিক্রিয়া ফর্মের মাধ্যমে কোনও প্রশ্ন জিজ্ঞাসা করুন।