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


লারাভেল হ'ল একটি ওপেন সোর্স, সুপরিচিত, এবং আধুনিক পিএইচপি-ভিত্তিক ওয়েব ফ্রেমওয়ার্ক যার সাথে এক্সপ্রেশনাল, মার্জিত, এবং সহজে বোঝার সিনট্যাক্স রয়েছে যা বড়, শক্তিশালী ওয়েব অ্যাপ্লিকেশনগুলি তৈরি করা সহজ করে তোলে।

এর মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে একটি সাধারণ, দ্রুত রাউটিং ইঞ্জিন, শক্তিশালী নির্ভরতা ইনজেকশন ধারক, সেশন এবং ক্যাশে স্টোরেজের জন্য একাধিক ব্যাক-এন্ডস, এক্সপ্রেসিভ এবং স্বজ্ঞাত ডেটাবেস ওআরএম (অবজেক্ট-রিলেশনাল ম্যাপিং), দৃ background় ব্যাকগ্রাউন্ড জব প্রসেসিং এবং রিয়েল-টাইম ইভেন্ট সম্প্রচার।

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

এই নিবন্ধে, আপনি সেন্টোস 8 লিনাক্স বিতরণে লারাভেল পিএইচপি ওয়েব ফ্রেমওয়ার্কের সর্বশেষ সংস্করণটি ইনস্টল করতে শিখবেন।

লারাভেল কাঠামোর নিম্নলিখিত প্রয়োজনীয়তা রয়েছে:

  • পিএইচপি> = 7.2.5 এই পিএইচপি এক্সটেনশনগুলির সাথে ওপেনএসএসএল, পিডিও, এমবিস্ট্রিং, টোকেনাইজার, এক্সএমএল, সিটিপি এবং জেএসওএন
  • সুরকার - নির্ভরতা ইনস্টল এবং পরিচালনা করার জন্য

পদক্ষেপ 1: সেন্টোস 8 এ এলইএমপি স্ট্যাক ইনস্টল করা

1. শুরু করার জন্য, সিস্টেম সফ্টওয়্যার প্যাকেজগুলি আপডেট করুন এবং নিম্নলিখিত ডিএনএফ কমান্ড ব্যবহার করে এলইএমপি স্ট্যাক (লিনাক্স, এনগিনেক্স, মারিয়াডিবি/মাইএসকিউএল এবং পিএইচপি) ইনস্টল করুন।

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

২. যখন এলইএমপি ইনস্টলেশনটি সম্পূর্ণ হয়, আপনাকে পিএইচপি-পিএফএম, এনগিনেক্স এবং মারিয়াডিবি পরিষেবাগুলি নিম্নলিখিত সিস্টেস্টটিএল কমান্ডগুলি ব্যবহার করে শুরু করতে হবে।

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

৩. এরপরে, আপনার দেখা হিসাবে সুরক্ষা স্ক্রিপ্টটি ব্যবহার করে মারিয়াডিবি ডাটাবেস ইঞ্জিনটিকে সুরক্ষিত এবং শক্ত করতে হবে।

# 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

৪. যদি আপনার ফায়ারওয়াল্ড পরিষেবা চলমান থাকে তবে এনগিনেক্স ওয়েব সার্ভারে ক্লায়েন্টের অনুরোধগুলি সক্ষম করতে আপনাকে ফায়ারওয়ালে এইচটিটিপি এবং এইচটিটিপিএস পরিষেবাটি খুলতে হবে।

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

৫. অবশেষে, আপনি নিশ্চিত করতে পারেন যে আপনার এলএমপি স্ট্যাক আপনার সিস্টেমের আইপি ঠিকানায় একটি ব্রাউজার ব্যবহার করে চলছে।

http://server-IP

পদক্ষেপ 2: পিএইচপি-এফপিএম এবং এনগিনেক্স কনফিগার এবং সুরক্ষা

The. এনগিনেক্স ওয়েব সার্ভার থেকে অনুরোধগুলি প্রক্রিয়া করতে, পিএইচপি-এফপিএম কোনও ইউনিক্স সকেট বা টিসিপি সকেটে শুনতে পারে এবং এটি /etc/php-fpm.d/www.conf কনফিগারেশন ফাইলের শ্রবণ প্যারামিটার দ্বারা সংজ্ঞায়িত করা হয়েছে।

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

ডিফল্টরূপে, এটি নিম্নলিখিত স্ক্রিনশট হিসাবে দেখানো হিসাবে একটি ইউনিক্স সকেট শুনতে কনফিগার করা হয়েছে। এখানে মানটি পরে Nginx সার্ভার ব্লক ফাইলে নির্দিষ্ট করা হবে।

If. যদি কোনও ইউনিক্স সকেট ব্যবহার করে থাকে তবে আপনার স্ক্রিনশটটিতে যেমন প্রদর্শিত হবে ঠিক তেমন মালিকানা এবং অনুমতিগুলিও সেট করা উচিত। নিম্নলিখিত প্যারামিটারগুলি কমেন্ট করুন এবং ব্যবহারকারী এবং গ্রুপের সাথে তাদের মানগুলি নির্ধারণ করুন এবং গ্রুপ এনগিনেক্স হিসাবে চলছে।

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

৮. পরবর্তী, /etc/php.ini কনফিগারেশন ফাইলে সিস্টেম-ওয়াইড সময় অঞ্চল নির্ধারণ করুন।

# vi /etc/php.ini

“; তারিখ.টাইমজোন” লাইনটি সন্ধান করুন এবং এটিকে uncomment করুন, তারপরে স্ক্রিনশটে প্রদর্শিত তার মানটি সেট করুন (আপনার অঞ্চল/মহাদেশ এবং দেশের ক্ষেত্রে প্রযোজ্য মানগুলি ব্যবহার করুন)।

 
date.timezone = Africa/Kampala

৯. পিএইচপি-কোডটি পিএইচপি-এফপিএম প্রয়োগ করতে অন্যান্য এক্সটেনশন ব্যবহার করে এমন দূষিত ব্যবহারকারীদের নিকট থেকে অনুরোধগুলি পাস করার ঝুঁকি হ্রাস করার জন্য, নিম্নলিখিত প্যারামিটারটিকে অসুবিধে করুন এবং এর কোডটি 0 এ সেট করুন।

cgi.fix_pathinfo=1

10. পূর্ববর্তী পয়েন্টের সাথে সম্পর্কিত ক্ষেত্রে /etc/php-fpm.d/www.conf ফাইলে নিম্নোক্ত প্যারামিটারটিও নিরস্ত করুন। আরও ব্যাখ্যা জন্য মন্তব্য পড়ুন।

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

পদক্ষেপ 3: সুরকার এবং লারাভেল পিএইচপি ফ্রেমওয়ার্ক ইনস্টল করা

১১. এর পরে, নিম্নলিখিত কমান্ডগুলি পরিচালনা করে সুরকার প্যাকেজ ইনস্টল করুন। প্রথম কমান্ড ইনস্টলারটি ডাউনলোড করে, তারপরে পিএইচপি ব্যবহার করে এটি চালায়।

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

১২. এখন যেহেতু সুরকার ইনস্টল করা আছে, নীচে লারাভেল ফাইল এবং নির্ভরতা ইনস্টল করতে এটি ব্যবহার করুন। মাইসাইট ডটকমকে ডিরেক্টরিটি যেখানে লারাভেল ফাইলগুলি সংরক্ষণ করা হবে তার নামের সাথে প্রতিস্থাপন করুন, পরম পাথ (বা এনগিনেক্স কনফিগারেশন ফাইলের মূল পাথ) হবে /var/www/html/mysite.com।

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

প্রক্রিয়া চলাকালীন সবকিছু ঠিকঠাক থাকলে, অ্যাপ্লিকেশনটি সফলভাবে ইনস্টল করা উচিত এবং নিম্নলিখিত স্ক্রিনশটটিতে যেমন দেখানো হয়েছে তেমন একটি কী তৈরি করা উচিত।

13. ইনস্টলেশন প্রক্রিয়া চলাকালীন, .এনভি এনভায়রনমেন্ট ফাইল তৈরি করা হয়েছিল এবং প্রয়োজনীয় অ্যাপ্লিকেশনটিও তৈরি করা হয়েছিল, সুতরাং এগুলি আপনাকে আর আগের মতো তৈরি করার দরকার নেই। এটি নিশ্চিত করার জন্য, ls কমান্ড ব্যবহার করে লারাভেল রুট ডিরেক্টরিটির একটি দীর্ঘ তালিকা চালান।

# ls -la mysite.com/

14. এর পরে, আপনাকে Nginx ওয়েব সার্ভারের দ্বারা লিখিতযোগ্য স্টোরেজ এবং বুটস্ট্র্যাপ/ক্যাশে ডিরেক্টরিতে সঠিক মালিকানা এবং অনুমতিগুলি কনফিগার করতে হবে।

# 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 আপনার সার্ভারে সক্ষম করে থাকে তবে আপনার স্টোরেজ এবং বুটস্ট্র্যাপ/ক্যাশে ডিরেক্টরিগুলির সুরক্ষা প্রসঙ্গও আপডেট করা উচিত।

# 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: লারাভেলের জন্য এনগিনেক্স সার্ভার ব্লকটি কনফিগার করুন

16. Nginx আপনার ওয়েবসাইট বা অ্যাপ্লিকেশন পরিবেশন করা শুরু করার জন্য, আপনার জন্য একটি .conf ফাইল /etc/nginx/conf.d/ ডিরেক্টরিতে প্রদর্শিত হিসাবে একটি সার্ভার ব্লক তৈরি করতে হবে।

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

ফাইলটিতে নিম্নলিখিত কনফিগারেশনটি অনুলিপি করুন এবং আটকান। রুট এবং ফাস্টসিজি_পাস প্যারামিটারগুলি নোট করুন।

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. তারপরে সাম্প্রতিক পরিবর্তনগুলি কার্যকর হওয়ার জন্য পিএইচপি-এফপিএম এবং এনগিনেক্স পরিষেবা পুনরায় চালু করুন।

# systemctl restart php-fpm
# systemctl restart Nginx

পদক্ষেপ 5: একটি ওয়েব ব্রাউজার থেকে লারাভেল ওয়েবসাইট অ্যাক্সেস করা

19. mysite.com এ লারাভেল ওয়েবসাইট অ্যাক্সেস করতে, যা সম্পূর্ণরূপে যোগ্য ডোমেইন নাম (এফকিউডিএন) নয় এবং এটি নিবন্ধভুক্ত নয় (এটি কেবল পরীক্ষার উদ্দেশ্যে ব্যবহৃত হয়), আমরা আপনার স্থানীয় মেশিনে/ইত্যাদি/হোস্ট ফাইলটি ব্যবহার করব স্থানীয় ডিএনএস তৈরি করতে।

প্রয়োজনীয় ফাইলটিতে সার্ভারের আইপি ঠিকানা এবং ডোমেন যুক্ত করতে নিম্নলিখিত কমান্ডটি চালান (আপনার সেটিংস অনুযায়ী মানটি প্রতিস্থাপন করুন)।

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

20. এর পরে, স্থানীয় মেশিনে একটি ওয়েব ব্রাউজার খুলুন এবং নেভিগেট করতে নিম্নলিখিত ঠিকানাটি ব্যবহার করুন।

http://mysite.com

আপনি সফলভাবে CentOS 8 এ লারাভেল মোতায়েন করেছেন আপনি এখন লারাভেল ব্যবহার করে আপনার ওয়েবসাইট বা ওয়েব অ্যাপ্লিকেশন বিকাশ শুরু করতে পারেন। আরও তথ্যের জন্য, লারাভেল শুরু করার গাইড দেখুন।