CentOS 8 এ কীভাবে Yii পিএইচপি ফ্রেমওয়ার্ক ইনস্টল করবেন


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

এখানে ইয়ার কয়েকটি প্রধান বৈশিষ্ট্য রয়েছে:

  • একটি খাঁটি ওওপি-ভিত্তিক কাঠামো
  • একটি উপাদান-ভিত্তিক আর্কিটেকচার
  • এমভিসি (মডেল-ভিউ-কন্ট্রোলার) আর্কিটেকচারাল প্যাটার্নকে কার্যকর করে।
  • উভয় সম্পর্কের এবং NoSQL ডাটাবেসের জন্য ক্যোয়ারী বিল্ডার এবং অ্যাক্টিভেকর্ডারকে সমর্থন করে
  • মাল্টি-টায়ার ক্যাচিং সমর্থন
  • RESTful এপিআই বিকাশ সমর্থন
  • এটি ব্যবহারকারীদের মূল থেকে সরাসরি কোনও অংশের কোডকে কাস্টমাইজ করতে বা প্রতিস্থাপন করতে দেয় এটি অত্যন্ত এক্সটেনসিবল। এছাড়াও, ব্যবহারকারীরা পুনরায় বিতরণযোগ্য এক্সটেনশনগুলি ব্যবহার করতে বা বিকাশ করতে পারে

Yii 2.0 ফ্রেমওয়ার্কের বর্তমান প্রজন্ম (লেখার সময়) যা পিএইচপি 5.4.0 বা তার বেশি প্রয়োজন তবে পিএইচপি 7 এর সর্বশেষতম সংস্করণ দিয়ে সবচেয়ে ভাল রান করে It এটি সুরকার, পিএসআর সহ কয়েকটি সর্বশেষতম ওয়েব প্রযুক্তি এবং প্রোটোকল সমর্থন করে It , নেমস্পেস, বৈশিষ্ট্য এবং অন্যান্য।

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

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

এই নিবন্ধে, আমরা আপনাকে দেখাব যে কীভাবে ইআইআই ব্যবহার করে পিএইচপি অ্যাপ্লিকেশন বিকাশ শুরু করতে সেন্টোস 8 সার্ভারে ইআই পিএইচপি ফ্রেমওয়ার্কটি ইনস্টল করতে হয়।

Yii সুরকার ব্যবহার করে ইনস্টল করা

ইআইআই ইনস্টল করার বিভিন্ন উপায় রয়েছে তবে ইআইআই ইনস্টল করার প্রস্তাবিত উপায়টি সুরকার প্যাকেজ ম্যানেজার ব্যবহার করছে কারণ এটি আপনাকে একক কমান্ড দিয়ে ইআইআই আপডেট করতে দেয় এবং আপনাকে নতুন এক্সটেনশানগুলি ইনস্টল করতে সক্ষম করে।

আপনি যদি ইতিমধ্যে আপনার সেন্টস 8 সার্ভারে সুরকার ইনস্টল না করে থাকেন তবে নিম্নলিখিত কমান্ডগুলি চালিয়ে আপনি এটি ইনস্টল করতে পারেন।

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

সুরকার ইনস্টল করার সাথে, আপনি টেস্টআপ নামে একটি অ্যাপাচি বা এনগিনেক্স ওয়েব-অ্যাক্সেসযোগ্য ডিরেক্টরিতে ইআই অ্যাপ্লিকেশন টেমপ্লেটের সর্বশেষতম স্থিতিশীল সংস্করণ ইনস্টল করতে পারেন। আপনি চাইলে আলাদা ডিরেক্টরি নাম নির্বাচন করতে পারেন।

# cd /var/www/html/      [Apache Root Directory]
OR
# cd /usr/share/nginx/html/   [Nginx Root Directory]
# composer create-project --prefer-dist yiisoft/yii2-app-basic testapp

ইনস্টলেশন সম্পন্ন হওয়ার পরে, আপনার ওয়েব সার্ভারটি কনফিগার করুন (পরবর্তী বিভাগটি দেখুন) বা টেস্টআপ প্রকল্পের রুট ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি প্রয়োগ করে সংহত পিএইচপি ওয়েব সার্ভারটি ব্যবহার করুন।

# cd testapp
# php yii serve

দ্রষ্টব্য: ডিফল্টরূপে, এইচটিটিপি-সার্ভার 8080 পোর্ট শুনতে পাবে that তবে, যদি সেই বন্দরটি ইতিমধ্যে ব্যবহৃত হয়, তবে আপনি দেখানো হয়েছে হিসাবে যুক্তিটি --port যোগ করে বিভিন্ন পোর্টটি ব্যবহার করতে পারেন।

# php yii serve --port=8888

এখন, আপনার ব্রাউজারটি খুলুন এবং ইনস্টল করা Yii অ্যাপ্লিকেশনটি অ্যাক্সেস করতে নিম্নলিখিত URL টি টাইপ করুন।

http://localhost:8888

Yii এর জন্য ওয়েব সার্ভারগুলি কনফিগার করছে

কোনও প্রোডাকশন সার্ভারে, আপনি http://www.example.com/index.php URL টি http:// এর পরিবর্তে Yii ওয়েব অ্যাপ্লিকেশন পরিবেশন করতে আপনার ওয়েবসারভারটি কনফিগার করতে পারেন http www.example.com/basic/testapp/index.php । সেক্ষেত্রে আপনাকে অবশ্যই আপনার ওয়েব সার্ভার ডকুমেন্টের রুটকে টেস্ট অ্যাপ/ওয়েব ডিরেক্টরিতে নির্দেশ করতে হবে।

/Etc/nginx/conf.d/testapp.conf নামে একটি কনফিগারেশন ফাইল তৈরি করুন।

# vi /etc/nginx/conf.d/testapp.conf

এরপরে এটিতে নীচের কনফিগারেশনটি অনুলিপি করুন এবং আটকান। আপনার ডোমেন নাম এবং /usr/share/nginx/html/testapp/ওয়েব এর সাথে tecmintapp.lan প্রতিস্থাপন করতে ভুলবেন না যেখানে আপনার অ্যাপ্লিকেশন ফাইলগুলি অবস্থিত।

server {
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

    server_name tecmintapp.lan;
    root        /usr/share/nginx/html/testapp/web;
    index       index.php;

    access_log  /var/log/nginx/access.log;
    error_log   /var/log/nginx/error.log;

    location / {
        # Redirect everything that isn't a real file to index.php
        try_files $uri $uri/ /index.php$is_args$args;
    }

    # uncomment to avoid processing of calls to non-existing static files by Yii
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;

    # deny accessing php files for the /assets directory
    location ~ ^/assets/.*\.php$ {
        deny all;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        try_files $uri =404;
    }

    location ~* /\. {
        deny all;
    }
}

ফাইলটি সংরক্ষণ করুন এবং সাম্প্রতিক পরিবর্তনগুলি প্রভাবিত করতে Nginx পুনরায় চালু করুন।

# systemctl restart nginx

অ্যাপাচের httpd.conf ফাইলে বা ভার্চুয়াল হোস্ট কনফিগারেশনের মধ্যে নিম্নলিখিত কনফিগারেশনটি ব্যবহার করুন।

# Set document root to be "testapp/web"
DocumentRoot "/var/www/html/testapp/web"

<Directory "/var/www/html/testapp/web">
    # use mod_rewrite for pretty URL support
    RewriteEngine on
    
    # if $showScriptName is false in UrlManager, do not allow accessing URLs with script name
    RewriteRule ^index.php/ - [L,R=404]
    
    # If a directory or a file exists, use the request directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    # Otherwise forward the request to index.php
    RewriteRule . index.php

    # ...other settings...
</Directory>

ফাইলটি সংরক্ষণ করুন এবং সাম্প্রতিক পরিবর্তনগুলি প্রভাবিত করতে অ্যাপাচি পুনরায় চালু করুন।

# systemctl restart httpd

ব্রাউজারের মাধ্যমে ইয়েআই ওয়েব অ্যাপ্লিকেশন পরীক্ষা করা

আমাদের Yii ওয়েব অ্যাপ্লিকেশনটি পরীক্ষা করার আগে নীচের কমান্ডটি চালিয়ে << কোড/ওয়েব/সম্পদ/ ডিরেক্টরিটিকে ওয়েব প্রক্রিয়াতে লেখার যোগ্য করার জন্য সুরক্ষা প্রসঙ্গটি আপডেট করার বিষয়টি নিশ্চিত করুন।

# chcon -R -t httpd_sys_content_rw_t '/usr/share/nginx/html/testapp/web/assets/' [for Nginx]
# chcon -R -t httpd_sys_content_rw_t '/var/www/html/testapp/web/assets/'         [for Apache] 

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

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

অবশেষে, আপনার ওয়েব অ্যাপ্লিকেশনটি ঠিকঠাকভাবে কাজ করছে এবং এনগিনেক্স বা অ্যাপাচি দ্বারা পরিবেশিত হচ্ছে কিনা তা পরীক্ষা করুন। একটি ওয়েব ব্রাউজার খুলুন এবং এটি নীচের ঠিকানায় নির্দেশ করুন:

http://tecmintapp.lan 

ডিফল্ট Yii অ্যাপ্লিকেশন ওয়েব পৃষ্ঠাটি নিম্নলিখিত স্ক্রিনশটের মতো প্রদর্শিত হবে।

অভিনন্দন! আপনি Yii পিএইচপি ফ্রেমওয়ার্কের সর্বশেষ প্রজন্মটি সফলভাবে ইনস্টল করেছেন এবং সেন্টিনস 8 এ এনগিনেক্স বা অ্যাপাচি এর সাথে কাজ করার জন্য এটি কনফিগার করেছেন।

আপনার ওয়েব অ্যাপ্লিকেশন তৈরির জন্য আরও তথ্যের জন্য এবং কীভাবে ইআইআই ব্যবহার শুরু করবেন, তার জন্য ইআইআই এর স্থির গাইড দেখুন।