ফ্রিবিএসডি-তে কীভাবে এনগিনেক্স, মারিয়াডিবি এবং পিএইচপি (এফইএমপি) ইনস্টল করবেন


এই টিউটোরিয়ালটি আপনাকে ফ্রিবিএসডি ১১.x সর্বশেষ প্রকাশে কীভাবে এফবিইএমপি ইনস্টল ও কনফিগার করতে হয় সে সম্পর্কে আপনাকে গাইড করবে। এফবিইএমপি হ'ল একটি সংক্ষিপ্ত বিবরণ যা নিম্নলিখিত সফ্টওয়্যারগুলির সংগ্রহ বর্ণনা করে:

ফ্রিবিএসডি ১১.১ ইউনিক্সের মতো বিতরণ, এনগিনেক্স ওয়েব সার্ভার, মারিয়াডিবি রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম (মাইএসকিউএল এর একটি সম্প্রদায় কাঁটা) এবং সার্ভার-সাইডে চলমান পিএইচপি গতিশীল প্রোগ্রামিং ভাষা।

  1. ফ্রিবিএসডি 11.x এর ইনস্টলেশন
  2. ফ্রিবিএসডি ইনস্টলেশনের পরে 10 টি জিনিস

পদক্ষেপ 1: ফ্রিবিএসডি-তে এনগিনেক্স ওয়েব সার্ভার ইনস্টল করুন

1. ফ্রিবিএসডি-তে আমাদের এফবিইএমপি স্ট্যাকের জন্য আমরা প্রথম পরিষেবাটি ইনস্টল করব সেটি হল ওয়েব সার্ভার, যা এনগিনেক্স সফ্টওয়্যার দ্বারা প্রতিনিধিত্ব করা হয়।

এনজিএনএক্স ওয়েব সার্ভারে ফ্রিবিএসডি ১১.x পোর্টগুলিতে আরও প্রাক-মঞ্জুরিযুক্ত প্যাকেজ উপলব্ধ রয়েছে। পোর্ট সংগ্রহস্থলগুলি থেকে Nginx বাইনারিগুলির একটি তালিকা পেতে, আপনার সার্ভার টার্মিনালে নিম্নলিখিত কমান্ডগুলি ইস্যু করুন।

# ls /usr/ports/www/ | grep nginx
# pkg search -o nginx

২. এই নির্দিষ্ট কনফিগারেশনে, আমরা নীচের কমান্ডটি জারি করে Nginx এর প্রধান প্যাকেজ সংস্করণটি ইনস্টল করব। Pkg প্যাকেজ পরিচালনা আপনাকে nginx প্যাকেজ ইনস্টল করার বিষয়ে এগিয়ে যেতে চাইলে আপনাকে জিজ্ঞাসা করবে। ইনস্টলেশন প্রক্রিয়া শুরু করার জন্য হ্যাঁ ( y কমান্ড লাইনে) দিয়ে উত্তর দিন।

# pkg install nginx

৩. আপনার সিস্টেমে এনগিনেক্স ওয়েব সার্ভার প্যাকেজ ইনস্টল হওয়ার পরে ডেমন সিস্টেম-ব্যাপী সক্ষম করতে এবং আপনার সিস্টেমে পরিষেবা শুরু করার জন্য নিম্নলিখিত কমান্ডগুলি প্রয়োগ করুন।

# sysrc nginx_enable="yes"
# service nginx start

৪. এরপরে, সোকস্ট্যাট কমান্ডটি ব্যবহার করে নিগিনেক্স সার্ভিস নেটওয়ার্ক সকেটগুলি যাচাই করুন, যদি তারা নিচের কমান্ডটি জারি করে 80/টিসিপি পোর্টে আবদ্ধ হয়। শুধুমাত্র এনজিন্স স্ট্রিংয়ে ফিরে আসা ফলাফলগুলি হ্রাস করার জন্য সোকস্ট্যাট কমান্ডের আউটপুট গ্রেপ ইউটিলিটির মাধ্যমে পাইপ করা হবে।

# sockstat -4 | grep nginx

৫. অবশেষে, আপনার নেটওয়ার্কে একটি ডেস্কটপ কম্পিউটারে একটি ব্রাউজার খুলুন এবং এইচটিটিপি প্রোটোকলের মাধ্যমে এনগিনেক্স ডিফল্ট ওয়েব পৃষ্ঠাতে যান। Nginx ওয়েব সার্ভারের ডিফল্ট ওয়েব পৃষ্ঠার অনুরোধের জন্য দায়ের করা ব্রাউজারের URL এ আপনার মেশিনের FQDN বা আপনার ডোমেনের নাম বা আপনার সার্ভারের আইপি ঠিকানা লিখুন। "Nginx স্বাগতম!" বার্তা আপনার ব্রাউজারে প্রদর্শিত হবে, যেমন নীচের স্ক্রিনশটে চিত্রিত।

http://yourdomain.com
http://your_server_IP
http://your_machine_FQDN

/./usr/স্থানীয়/www/nginx/পরম সিস্টেমের পথে Nginx ওয়েব সামগ্রীর জন্য ডিফল্ট ওয়েব বুট ডিরেক্টরি directory এই অবস্থানটিতে আপনার ওয়েবসাইটের জন্য <কড> << html বা .php ফাইলগুলি তৈরি করতে, অনুলিপি করা বা ইনস্টল করা উচিত।

এই অবস্থানটি পরিবর্তন করতে, এনগিনেক্সের প্রধান কনফিগারেশন ফাইলটি সম্পাদনা করুন এবং আপনার নতুন ওয়েবরুট পাথ প্রতিফলিত করতে মূল নির্দেশিকা পরিবর্তন করুন।

# nano /usr/local/etc/nginx/nginx.conf

আপনার নতুন ওয়েবরুট পাথ প্রতিফলিত করতে এখানে নীচের লাইনটি অনুসন্ধান এবং আপডেট করুন:

root	/path/to/new/webroot;

পদক্ষেপ 2: ফ্রিবিএসডি তে পিএইচপি ইনস্টল করুন

Ap. অ্যাপাচি এইচটিটিপি সার্ভারের বিপরীতে, এনগিনেক্সের স্থানীয়ভাবে পিএইচপি কোড প্রক্রিয়া করার ক্ষমতা নেই। বিনিময়ে, এনগিনেক্স ওয়েব সার্ভার পিএইচপি অনুরোধগুলি পিএইচপি ইন্টারপ্রেটারকে যেমন পিএইচপি-এফপিএম ফাস্টসিজিআই ডেমনকে পাস করে, যা কোডটি পরীক্ষা করে এবং সম্পাদন করে। ফলস্বরূপ কোডটি আবার এনগিনেক্সে ফিরে আসে, যা কোডটিকে অনুরোধ করা এইচটিএমএল ফর্ম্যাটে পুনরায় একত্রিত করে এবং কোডটি আরও ভিজিটর ওয়েব ব্রাউজারে প্রেরণ করে।

ফ্রিবিএসডি 11.x পোর্টস সংগ্রহস্থলগুলি পিএইচপি প্রোগ্রামিং ভাষার জন্য পিএইচপি 5.6, পিএইচপি 7.0 এবং পিএইচপি 7.1 প্রকাশের মতো একাধিক বাইনারি সংস্করণ সরবরাহ করে inary ফ্রিবিএসডি ১১.x-এ সমস্ত উপলভ্য প্রাক-সংকলিত পিএইচপি সংস্করণ প্রদর্শন করতে, নীচের কমান্ডগুলি চালান।

# pkg search -o php
# ls /usr/ports/lang/ | grep php

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

বিভিন্ন ওয়েব অ্যাপ্লিকেশনগুলির জন্য প্রয়োজনীয় পিএইচপি 7.1 রিলিজ এবং কিছু পিএইচপি গুরুত্বপূর্ণ মডিউল ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান run

# pkg install php71 php71-mysqli php71-mcrypt php71-zlib php71-gd php71-json mod_php71 php71-mbstring php71-curl

৯. আপনি আপনার সিস্টেমে পিএইচপি প্যাকেজ ইনস্টল করার পরে, এনগিনেক্সের জন্য পিএইচপি-এফপিএম কনফিগারেশন ফাইলটি খুলুন এবং এনগিনেক্স রানটাইম ব্যবহারকারীর মানটির সাথে মেলে ব্যবহারকারী এবং গোষ্ঠী মানগুলিকে সামঞ্জস্য করুন, যা www is প্রথমে নীচের কমান্ড দিয়ে ফাইলটির ব্যাকআপ করুন।

# cp /usr/local/etc/php-fpm.d/www.conf{,.backup}

তারপরে, ফাইলটি খুলুন এবং নীচের নমুনায় উপস্থাপিত হিসাবে নিম্নলিখিত লাইনগুলি আপডেট করুন।

user = www
group = www

১০. এছাড়াও, নীচের কমান্ডটি জারি করে উত্পাদনের জন্য ব্যবহৃত একটি পিএইচপি কনফিগারেশন ফাইল তৈরি করুন। এই ফাইলটিতে আপনি কাস্টম পরিবর্তন করতে পারেন যা রানটাইম সময়ে পিএইচপি ইন্টারপ্রেটারে প্রয়োগ করা হবে।

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

উদাহরণস্বরূপ, পিএইচপি ইন্টারপ্রেটারের জন্য ডেট.টাইমজোন সেটিং পরিবর্তন করুন যাতে নীচের উদাহরণে দেখানো হয়েছে এমনভাবে আপনার মেশিনের শারীরিক অবস্থান আপডেট করতে পারেন। পিএইচপি টাইমজোন তালিকা এখানে পাওয়া যাবে: http://php.net/manual/en/timezones.php।

# vi /usr/local/etc/php.ini

নিম্নলিখিত সময় অঞ্চল যুক্ত করুন (আপনার দেশ অনুযায়ী টাইমজোন সেট করুন)।

date.timezone = Europe/London

আপনি অন্যান্য পিএইচপি ভেরিয়েবলগুলিও সমন্বয় করতে পারেন, যেমন আপলোড করা ফাইলের সর্বাধিক ফাইলের আকার, যা নীচের মানগুলিতে পরিবর্তন করে বাড়ানো যেতে পারে:

upload_max_filesize = 10M
post_max_size = 10M

১১. পরে, আপনি পিএইচপি-র জন্য কাস্টম সেটিংস তৈরি করেছেন, নীচের আদেশগুলি জারি করে নতুন কনফিগারেশনগুলি প্রয়োগ করতে পিএইচপি-এফপিএম ডেমন সক্ষম এবং শুরু করুন।

# sysrc php_fpm_enable=yes
# service php-fpm start

12. ডিফল্টরূপে, ফ্রিবিএসডি-তে পিএইচপি-এফপিএম ডেমন 9000/টিসিপি পোর্টে স্থানীয় নেটওয়ার্ক সকেটে বাঁধে। পিএইচপি-এফপিএম নেটওয়ার্ক সকেটগুলি প্রদর্শনের জন্য নিম্নলিখিত কমান্ডটি কার্যকর করুন।

# sockstat -4 -6| grep php-fpm

১৩. এনগিনেক্স ওয়েব সার্ভারের জন্য পিএইচপি স্ক্রিপ্টগুলি ফাস্টসিজিআই গেটওয়ে সার্ভারে পাস করার জন্য, যা 127.0.0.1:9000 সকেটে শুনছে, এনগিনেক্সের প্রধান কনফিগারেশন ফাইলটি খুলুন এবং চিত্রের মতো নিম্নলিখিত ব্লকের কোডটি যুক্ত করুন নীচের নমুনায়।

# vi /usr/local/etc/nginx/nginx.conf

এনগিনেক্সের জন্য ফাস্টসিজিআই কোড ব্লক:

 location ~ \.php$ {
        root	/usr/local/www/nginx;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;    
        include        fastcgi_params;
        	}

14. আপনার সার্ভারের জন্য বর্তমান পিএইচপি তথ্য দেখতে, নীচের কমান্ডটি জারি করে Nginx ওয়েবूट পথে একটি info.php ফাইল তৈরি করুন।

# echo "<?php phpinfo(); ?>" | tee /usr/local/www/nginx/info.php

15. তারপরে, পিএইচপি ফাস্টপিজিআই সেটিংস প্রয়োগ করতে Nginx ডেমন পরীক্ষা করুন এবং পুনরায় চালু করুন এবং একটি ব্রাউজারে info.php পৃষ্ঠাতে যান।

# nginx -t # Test nginx configuration file for syntax errors
# service nginx restart

নীচের লিঙ্কগুলিতে সেই অনুযায়ী আইপি ঠিকানা বা ডোমেন নামটি প্রতিস্থাপন করুন। পিএইচপি তথ্য পৃষ্ঠার নীচের স্ক্রিনশটে চিত্রিত হিসাবে তথ্য প্রদর্শন করা উচিত।

http://yourdomain.com/info.php
http://server_IP-or-FQDN/info.php

পদক্ষেপ 3: ফ্রিবিএসডি তে মারিয়াডিবি ইনস্টল করুন

16. ডাটাবেসে আপনার FEMP স্ট্যাক থেকে সর্বশেষ উপাদান অনুপস্থিত। মারিয়াডিবি/মাইএসকিউএল এনজিএনএক্স ওয়েব সার্ভারের সাথে ডায়নামিক ওয়েবসাইটগুলি মোতায়েনের জন্য ব্যবহৃত সবচেয়ে যুক্ত ওপেন সোর্স আরডিবিএমএস সফ্টওয়্যার।

প্রকৃতপক্ষে, মারিয়াডিবি/মাইএসকিউএল বিশ্বের অন্যতম ব্যবহৃত রিলেশনাল ডাটাবেস। ফ্রিবিএসডি পোর্টগুলির মাধ্যমে অনুসন্ধান করে আপনি মারিয়াডিবি/মাইএসকিউএল এর একাধিক প্রকাশ পেতে পারেন।

এই গাইডে আমরা মারিয়াডিবি ডাটাবেস ইনস্টল করব যা মাইএসকিউএল ডাটাবেসের একটি সম্প্রদায় কাঁটাচামচ। মারিয়াডিবি-র উপলভ্য সংস্করণগুলি অনুসন্ধান করতে, টার্মিনালে নিম্নলিখিত কমান্ডগুলি জারি করুন।

# ls -al /usr/ports/databases/ | grep mariadb
# pkg search mariadb

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

# pkg install mariadb102-server php71-mysqli

18. ডাটাবেস ইনস্টল হওয়ার পরে, মাইএসকিউএল ডেমন সক্ষম করুন এবং নিম্নলিখিত কমান্ডগুলি চালিয়ে ডাটাবেস পরিষেবা শুরু করুন।

# sysrc mysql_enable="YES" 
# service mysql-server start

19. এছাড়াও, মাইএসকিউএল ড্রাইভার এক্সটেনশান লোড করার জন্য আপনি পিএইচপি-এফপিএম ডেমন পুনরায় চালু করার বিষয়টি নিশ্চিত করুন।

# service php-fpm restart
20. On the next step, secure MariaDB database by launching mysql_secure_installation script. Use the below sample of the installation script in order to answer the questions. Basically, say yes (y) for all asked questions to secure the database and type a strong password for MySQL root user.
# /usr/local/bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

21. কনসোল থেকে মারিয়াডিবি ডাটাবেস সংযোগ পরীক্ষা করতে, নীচের কমান্ডটি কার্যকর করুন।

# mysql -u root -p -e "show status like ‘Connections’"

২২. মারিয়াডিবি আরও সুরক্ষিত করার জন্য, যা পূর্বনির্ধারিতভাবে ০.০.০.০.৩০30/২০১।/টিসিপি সকেটে আগত নেটওয়ার্ক সংযোগগুলির জন্য শোনার জন্য, পরিষেবাটি লুপব্যাক ইন্টারফেসে আবদ্ধ করতে এবং দূরবর্তী অ্যাক্সেসকে সম্পূর্ণ নিষিদ্ধ করার জন্য নীচের আদেশটি জারি করে। এরপরে, নতুন কনফিগারেশন প্রয়োগ করতে মাইএসকিউএল পরিষেবাটি পুনরায় চালু করুন।

# sysrc mysql_args="--bind-address=127.0.0.1"
# service mysql-server restart

নীচের উদাহরণে যেমন দেখানো হয়েছে তেমন নেটস্ট্যাট কমান্ড চালিয়ে লোকালহোস্ট বাইন্ডিং সফলভাবে প্রয়োগ করা হয়েছে কিনা তা যাচাই করুন।

# netstat -an -p tcp

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