خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ

خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ

کچھ عرصہ قبل، Mail.Ru Cloud Solutions (MCS) اور Dobro Mail.Ru سروس نے اس منصوبے کا آغاز کیا تھا۔خیراتی اداروں کے لیے بادل"، جس کی بدولت غیر منافع بخش تنظیمیں MCS کلاؤڈ پلیٹ فارم کے وسائل مفت حاصل کر سکتی ہیں۔ خیراتی فاؤنڈیشن"نیکی کا حساب» نے پروجیکٹ میں حصہ لیا اور MCS کی بنیاد پر اپنے بنیادی ڈھانچے کا کچھ حصہ کامیابی کے ساتھ تعینات کیا۔

توثیق پاس کرنے کے بعد، ایک NPO MCS سے ورچوئل صلاحیت حاصل کر سکتا ہے، لیکن مزید کنفیگریشن کے لیے کچھ قابلیت کی ضرورت ہوتی ہے۔ اس مواد میں، ہم مفت SSL سرٹیفکیٹس کا استعمال کرتے ہوئے مرکزی بنیاد کی ویب سائٹ اور متعدد ذیلی ڈومینز چلانے کے لیے Ubuntu Linux-based سرور قائم کرنے کے لیے مخصوص ہدایات کا اشتراک کرنا چاہتے ہیں۔ بہت سے لوگوں کے لیے، یہ ایک سادہ گائیڈ ہو گا، لیکن ہم امید کرتے ہیں کہ ہمارا تجربہ دیگر غیر منافع بخش تنظیموں کے لیے کارآمد ثابت ہو گا، اور نہ صرف۔

FYI: آپ MCS سے کیا حاصل کر سکتے ہیں؟ 4 CPUs، 32 GB RAM، 1 TB HDD، Ubuntu Linux OS، 500 GB آبجیکٹ اسٹوریج۔

مرحلہ 1: ورچوئل سرور لانچ کریں۔

آئیے سیدھے نقطہ پر پہنچیں اور اپنے MCS ذاتی اکاؤنٹ میں اپنا ورچوئل سرور (عرف "مثال") بنائیں۔ ایپ اسٹور میں، آپ کو ایک ریڈی میڈ LAMP اسٹیک کو منتخب اور انسٹال کرنے کی ضرورت ہے، جو کہ زیادہ تر ویب سائٹس کو چلانے کے لیے ضروری سرور سافٹ ویئر (LAMP = Linux، Apache، MySQL، PHP) کا ایک سیٹ ہے۔

خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ
خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ
خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ
مناسب سرور کنفیگریشن کو منتخب کریں اور ایک نئی SSH کلید بنائیں۔ "انسٹال" بٹن پر کلک کرنے کے بعد، سرور اور LAMP اسٹیک کی تنصیب شروع ہو جائے گی، اس میں کچھ وقت لگے گا۔ سسٹم آپ کے کمپیوٹر پر ایک پرائیویٹ کلید ڈاؤن لوڈ کرنے کی پیشکش بھی کرے گا تاکہ کنسول کے ذریعے ورچوئل مشین کا انتظام کیا جا سکے، اسے محفوظ کریں۔

ایپلیکیشن انسٹال کرنے کے بعد، آئیے فوری طور پر فائر وال سیٹ اپ کریں، یہ آپ کے ذاتی اکاؤنٹ میں بھی ہوتا ہے: "کلاؤڈ کمپیوٹنگ -> ورچوئل مشینیں" سیکشن میں جائیں اور "فائر وال سیٹ کرنا" کو منتخب کریں:

خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ
آپ کو پورٹ 80 اور 9997 کے ذریعے آنے والی ٹریفک کے لیے اجازت شامل کرنے کی ضرورت ہے۔ یہ مستقبل میں SSL سرٹیفکیٹس کو انسٹال کرنے اور phpMyAdmin کے ساتھ کام کرنے کے لیے ضروری ہے۔ نتیجے کے طور پر، قوانین کا سیٹ اس طرح نظر آنا چاہئے:

خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ
اب آپ SSH پروٹوکول کا استعمال کرتے ہوئے کمانڈ لائن کے ذریعے اپنے سرور سے جڑ سکتے ہیں۔ ایسا کرنے کے لیے، درج ذیل کمانڈ کو ٹائپ کریں، اپنے کمپیوٹر پر SSH کلید اور آپ کے سرور کے بیرونی IP ایڈریس کی طرف اشارہ کرتے ہوئے (آپ اسے "ورچوئل مشینیں" سیکشن میں تلاش کر سکتے ہیں):

$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>

پہلی بار سرور سے منسلک ہونے پر، اس پر تمام موجودہ اپ ڈیٹس انسٹال کرنے اور اسے دوبارہ شروع کرنے کی سفارش کی جاتی ہے۔ ایسا کرنے کے لیے درج ذیل کمانڈز چلائیں:

$ sudo apt-get update

سسٹم کو اپ ڈیٹس کی ایک فہرست ملے گی، اس کمانڈ کا استعمال کرتے ہوئے انہیں انسٹال کریں اور ہدایات پر عمل کریں:

$ sudo apt-get upgrade

اپ ڈیٹس انسٹال کرنے کے بعد، سرور کو دوبارہ شروع کریں:

$ sudo reboot

مرحلہ 2: ورچوئل میزبان سیٹ اپ کریں۔

بہت سے غیر منفعتی اداروں کو ایک ہی وقت میں کئی ڈومینز یا ذیلی ڈومینز کو برقرار رکھنے کی ضرورت ہوتی ہے (مثال کے طور پر، ایک اہم ویب سائٹ اور پروموشنل مہمات کے لیے کئی لینڈنگ پیجز وغیرہ)۔ یہ سب کچھ ایک سرور پر کئی ورچوئل ہوسٹ بنا کر آسانی سے رکھا جا سکتا ہے۔

پہلے ہمیں ان سائٹس کے لیے ایک ڈائرکٹری ڈھانچہ بنانے کی ضرورت ہے جو دیکھنے والوں کو دکھائی جائے گی۔ آئیے کچھ ڈائریکٹریز بنائیں:

$ sudo mkdir -p /var/www/a-dobra.ru/public_html

$ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html

اور موجودہ صارف کے مالک کی وضاحت کریں:

$ sudo chown -R $USER:$USER /var/www/a-dobra.ru/public_html

$ sudo chown -R $USER:$USER /var/www/promo.a-dobra.ru/public_html

متغیر $USER صارف نام پر مشتمل ہے جس کے تحت آپ فی الحال لاگ ان ہیں (بطور ڈیفالٹ یہ صارف ہے۔ ubuntu)۔ اب موجودہ صارف public_html ڈائریکٹریز کا مالک ہے جہاں ہم مواد کو ذخیرہ کریں گے۔

ہمیں اجازتوں میں تھوڑا سا ترمیم کرنے کی بھی ضرورت ہے تاکہ یہ یقینی بنایا جا سکے کہ مشترکہ ویب ڈائرکٹری اور اس میں موجود تمام فائلوں اور فولڈرز تک پڑھنے کی رسائی کی اجازت ہے۔ سائٹ کے صفحات کو صحیح طریقے سے ظاہر کرنے کے لیے یہ ضروری ہے:

$ sudo chmod -R 755 /var/www

آپ کے ویب سرور کے پاس اب وہ اجازتیں ہونی چاہئیں جو اسے مواد کو ظاہر کرنے کے لیے درکار ہیں۔ اس کے علاوہ، آپ کا صارف اب مطلوبہ ڈائریکٹریز میں مواد بنانے کی صلاحیت رکھتا ہے۔

/var/www/html ڈائرکٹری میں پہلے سے ہی ایک index.php فائل موجود ہے، آئیے اسے اپنی نئی ڈائریکٹریز میں کاپی کرتے ہیں - یہ فی الحال ہمارا مواد ہوگا:

$ cp /var/www/html/index.php /var/www/a-dobra.ru/public_html/index.php

$ cp /var/www/html/index.php /var/www/promo.a-dobra.ru/public_html/index.php

اب آپ کو یہ یقینی بنانا ہوگا کہ صارف آپ کی سائٹ تک رسائی حاصل کر سکتا ہے۔ ایسا کرنے کے لیے، ہم پہلے ورچوئل ہوسٹ فائلوں کو کنفیگر کریں گے، جو اس بات کا تعین کرتی ہیں کہ اپاچی ویب سرور مختلف ڈومینز کی درخواستوں کا کیسے جواب دے گا۔

پہلے سے طے شدہ طور پر، Apache میں ایک ورچوئل ہوسٹ فائل 000-default.conf ہے جسے ہم نقطہ آغاز کے طور پر استعمال کر سکتے ہیں۔ ہم اپنے ہر ڈومین کے لیے ورچوئل ہوسٹ فائلیں بنانے کے لیے اسے کاپی کرنے جا رہے ہیں۔ ہم ایک ڈومین کے ساتھ شروع کریں گے، اسے ترتیب دیں گے، اسے دوسرے ڈومین میں کاپی کریں گے، اور پھر ضروری ترامیم دوبارہ کریں گے۔

Ubuntu کی ڈیفالٹ کنفیگریشن کا تقاضا ہے کہ ہر ورچوئل ہوسٹ فائل میں *.conf ایکسٹینشن ہو۔

آئیے پہلے ڈومین کے لیے فائل کو کاپی کرکے شروع کریں:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf

روٹ رائٹس کے ساتھ ایڈیٹر میں ایک نئی فائل کھولیں:

$ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf

درج ذیل ڈیٹا میں ترمیم کریں، پورٹ 80 کی وضاحت کرتے ہوئے، آپ کا ڈیٹا ServerAdmin, ServerName, ServerAlias، نیز اپنی سائٹ کی روٹ ڈائرکٹری کا راستہ، فائل کو محفوظ کریں (Ctrl+X، پھر Y):

<VirtualHost *:80>
 
    ServerAdmin [email protected]
    ServerName a-dobra.ru
    ServerAlias www.a-dobra.ru
 
    DocumentRoot /var/www/a-dobra.ru/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    <Directory /var/www/a-dobra.ru/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
 
    <FilesMatch .php$>
        SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
    </FilesMatch>
 
</VirtualHost>

ServerName بنیادی ڈومین سیٹ کرتا ہے، جو ورچوئل ہوسٹ نام سے مماثل ہونا چاہیے۔ یہ آپ کا ڈومین نام ہونا چاہیے۔ دوسرا، ServerAlias، دوسرے ناموں کی وضاحت کرتا ہے جن کی تشریح اس طرح کی جانی چاہئے جیسے یہ بنیادی ڈومین ہو۔ یہ اضافی ڈومین نام استعمال کرنے کے لیے آسان ہے، مثال کے طور پر www کا استعمال۔

آئیے اس کنفیگریشن کو دوسرے میزبان کے لیے کاپی کریں اور اسی طرح اس میں ترمیم بھی کریں:

$ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf

آپ اپنی ویب سائٹس کے لیے جتنی مرضی ڈائرکٹریز اور ورچوئل ہوسٹ بنا سکتے ہیں! اب جب کہ ہم نے اپنی ورچوئل ہوسٹ فائلیں بنا لی ہیں، ہمیں ان کو فعال کرنے کی ضرورت ہے۔ ہم اپنی ہر سائٹ کو اس طرح فعال کرنے کے لیے a2ensite یوٹیلیٹی استعمال کر سکتے ہیں:

$ sudo a2ensite a-dobra.ru.conf

$ sudo a2ensite promo.a-dobra.ru.conf 

پہلے سے طے شدہ طور پر، پورٹ 80 LAMP میں بند ہے، اور ہمیں SSL سرٹیفکیٹ انسٹال کرنے کے لیے بعد میں اس کی ضرورت ہوگی۔ تو آئیے فوری طور پر ports.conf فائل میں ترمیم کریں اور پھر اپاچی کو دوبارہ شروع کریں:

$ sudo nano /etc/apache2/ports.conf

ایک نئی لائن شامل کریں اور فائل کو محفوظ کریں تاکہ یہ اس طرح نظر آئے:

Listen 80
Listen 443
Listen 9997

ترتیبات کو مکمل کرنے کے بعد، آپ کو تمام تبدیلیوں کے اثر انداز ہونے کے لیے اپاچی کو دوبارہ شروع کرنے کی ضرورت ہے:

$ sudo systemctl reload apache2

مرحلہ 3: ڈومین کے نام مرتب کریں۔

اگلا، آپ کو DNS ریکارڈز شامل کرنے کی ضرورت ہے جو آپ کے نئے سرور کی طرف اشارہ کریں گے۔ ڈومینز کو منظم کرنے کے لیے، ہمارا ریاضی آف گڈ فاؤنڈیشن dns-master.ru سروس استعمال کرتا ہے، ہم اسے ایک مثال کے ساتھ دکھائیں گے۔

مین ڈومین کے لیے A-ریکارڈ ترتیب دینا عام طور پر مندرجہ ذیل طور پر اشارہ کیا جاتا ہے (sign @):

خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ
ذیلی ڈومینز کا ریکارڈ عام طور پر اس طرح بیان کیا جاتا ہے:

خیراتی اداروں کے لیے کلاؤڈ: مائیگریشن گائیڈ
IP ایڈریس لینکس سرور کا پتہ ہے جو ہم نے ابھی بنایا ہے۔ آپ TTL = 3600 بتا سکتے ہیں۔

کچھ وقت کے بعد، آپ کی سائٹ پر جانا ممکن ہو جائے گا، لیکن ابھی کے لیے صرف اس کے ذریعے http://. اگلے مرحلے میں ہم سپورٹ شامل کریں گے۔ https://.

مرحلہ 4: مفت SSL سرٹیفکیٹس مرتب کریں۔

آپ اپنی مرکزی سائٹ اور تمام ذیلی ڈومینز کے لیے مفت لیٹس انکرپٹ SSL سرٹیفکیٹ حاصل کر سکتے ہیں۔ آپ ان کی خودکار تجدید کو بھی ترتیب دے سکتے ہیں، جو کہ بہت آسان ہے۔ SSL سرٹیفکیٹ حاصل کرنے کے لیے، اپنے سرور پر Certbot انسٹال کریں:

$ sudo add-apt-repository ppa:certbot/certbot

اپاچی استعمال کرنے کے لیے Certbot پیکیج انسٹال کریں۔ apt:

$ sudo apt install python-certbot-apache 

اب Certbot استعمال کرنے کے لیے تیار ہے، کمانڈ چلائیں:

$ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru

یہ کمانڈ certbot، keys چلاتی ہے۔ -d ان ڈومینز کے ناموں کی وضاحت کریں جن کے لیے سرٹیفکیٹ جاری کیا جانا چاہیے۔

اگر آپ پہلی بار سرٹ بوٹ لانچ کر رہے ہیں، تو آپ سے اپنا ای میل ایڈریس درج کرنے اور سروس کے استعمال کی شرائط سے اتفاق کرنے کو کہا جائے گا۔ certbot پھر Let's Encrypt سرور سے رابطہ کرے گا اور پھر تصدیق کرے گا کہ آپ واقعی اس ڈومین کو کنٹرول کرتے ہیں جس کے لیے آپ نے سرٹیفکیٹ کی درخواست کی تھی۔

اگر سب کچھ ٹھیک رہا تو، certbot پوچھے گا کہ آپ HTTPS کنفیگریشن کو کس طرح ترتیب دینا چاہتے ہیں:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

ہم آپشن 2 کو منتخب کرنے اور ENTER دبانے کی تجویز کرتے ہیں۔ کنفیگریشن کو اپ ڈیٹ کر دیا جائے گا اور تبدیلیوں کو لاگو کرنے کے لیے اپاچی کو دوبارہ شروع کیا جائے گا۔

آپ کے سرٹیفکیٹ اب ڈاؤن لوڈ، انسٹال اور کام کر رہے ہیں۔ اپنی سائٹ کو https:// کے ساتھ دوبارہ لوڈ کرنے کی کوشش کریں اور آپ کو اپنے براؤزر میں سیکیورٹی آئیکن نظر آئے گا۔ اگر آپ اپنے سرور کی جانچ کرتے ہیں۔ SSL لیبز سرور ٹیسٹ، اسے A گریڈ ملے گا۔

آئیے انکرپٹ سرٹیفکیٹس صرف 90 دنوں کے لیے درست ہیں، لیکن ہم نے ابھی جو سرٹیفیکیٹ پیکج انسٹال کیا ہے وہ خود بخود سرٹیفکیٹس کی تجدید کرے گا۔ اپ ڈیٹ کے عمل کو جانچنے کے لیے، ہم سرٹ بوٹ کا ڈرائی رن کر سکتے ہیں:

$ sudo certbot renew --dry-run 

اگر آپ کو اس کمانڈ کو چلانے کے نتیجے میں کوئی خرابی نظر نہیں آتی ہے، تو سب کچھ کام کر رہا ہے!

مرحلہ 5: MySQL اور phpMyAdmin تک رسائی حاصل کریں۔

بہت سی ویب سائٹیں ڈیٹا بیس استعمال کرتی ہیں۔ ڈیٹا بیس مینجمنٹ کے لیے phpMyAdmin ٹول ہمارے سرور پر پہلے سے ہی انسٹال ہے۔ اس تک رسائی حاصل کرنے کے لیے، لنک کا استعمال کرتے ہوئے اپنے براؤزر پر جائیں جیسے:

https://<ip-адрес сервера>:9997

روٹ تک رسائی کا پاس ورڈ آپ کے MCS ذاتی اکاؤنٹ میں حاصل کیا جا سکتا ہے (https://mcs.mail.ru/app/services/marketplace/apps/)۔ پہلی بار لاگ ان ہونے پر اپنا روٹ پاس ورڈ تبدیل کرنا نہ بھولیں!

مرحلہ 6: SFTP کے ذریعے فائل اپ لوڈ ترتیب دیں۔

ڈویلپرز کو SFTP کے ذریعے آپ کی ویب سائٹ کے لیے فائلیں اپ لوڈ کرنا آسان ہو گا۔ ایسا کرنے کے لیے، ہم ایک نیا صارف بنائیں گے، اسے ویب ماسٹر کہتے ہیں:

$ sudo adduser webmaster

سسٹم آپ سے پاس ورڈ سیٹ کرنے اور کچھ اور ڈیٹا داخل کرنے کو کہے گا۔

اپنی ویب سائٹ کے ساتھ ڈائریکٹری کے مالک کو تبدیل کرنا:

$ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html

اب آئیے SSH کنفیگریشن کو تبدیل کریں تاکہ نئے صارف کو صرف SFTP تک رسائی حاصل ہو نہ کہ SSH ٹرمینل تک:

$ sudo nano /etc/ssh/sshd_config

کنفیگریشن فائل کے بالکل آخر تک سکرول کریں اور درج ذیل بلاک کو شامل کریں:

Match User webmaster
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www/a-dobra.ru
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

فائل کو محفوظ کریں اور سروس کو دوبارہ شروع کریں:

$ sudo systemctl restart sshd

اب آپ کسی بھی SFTP کلائنٹ کے ذریعے سرور سے جڑ سکتے ہیں، مثال کے طور پر، FileZilla کے ذریعے۔

کل

  1. اب آپ جانتے ہیں کہ نئی ڈائریکٹریز کیسے بنائی جائیں اور اسی سرور کے اندر اپنی ویب سائٹس کے لیے ورچوئل ہوسٹس کو کنفیگر کریں۔
  2. آپ آسانی سے ضروری SSL سرٹیفکیٹ بنا سکتے ہیں - یہ مفت ہے، اور وہ خود بخود اپ ڈیٹ ہو جائیں گے۔
  3. آپ واقف phpMyAdmin کے ذریعے MySQL ڈیٹا بیس کے ساتھ آسانی سے کام کر سکتے ہیں۔
  4. نئے SFTP اکاؤنٹس بنانے اور رسائی کے حقوق کو ترتیب دینے کے لیے زیادہ محنت کی ضرورت نہیں ہے۔ ایسے اکاؤنٹس کو تھرڈ پارٹی ویب ڈویلپرز اور سائٹ ایڈمنسٹریٹرز کو منتقل کیا جا سکتا ہے۔
  5. وقتاً فوقتاً سسٹم کو اپ ڈیٹ کرنا نہ بھولیں، اور ہم بیک اپ لینے کی بھی تجویز کرتے ہیں - MCS میں آپ ایک کلک کے ساتھ پورے سسٹم کے "اسنیپ شاٹس" لے سکتے ہیں، اور پھر، اگر ضروری ہو تو، پوری تصاویر لانچ کر سکتے ہیں۔

استعمال شدہ وسائل جو مفید ہو سکتے ہیں:

https://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru
https://www.digitalocean.com/community/tutorials/apache-let-s-encrypt-ubuntu-18-04-ru
https://www.digitalocean.com/community/tutorials/how-to-enable-sftp-without-shell-access-on-ubuntu-18-04

ویسے، یہاں آپ VC پر پڑھ سکتے ہیں کہ کس طرح ہماری فاؤنڈیشن نے MCS کلاؤڈ پر مبنی یتیموں کے لیے آن لائن تعلیم کے لیے ایک پلیٹ فارم تیار کیا۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں