अघिल्लो पोस्टमा [भिपिएस सर्भर भनेको के हो] (/2020/09/30/what-is-vps-hosting) कसरी काम गर्छ भन्ने बारेमा थोरै चर्चा गरेका थियौ यहाँ हामी भिपिएस सर्भरलाई कसरी कन्फीगर गर्ने ? अनि त्यसमा अपाचे , माईएसक्युवल र पिएचपी कसरी राख्ने भनेर चर्चा गर्ने छौ । यसको लागी सबैभन्दा पहिले लिनक्स अपरेटिङ्ग सिस्टम प्रयोगकर्ताहरूले टर्मिनल बाट र विन्डोज अपरेटिङ्ग सिस्टम प्रयोगकर्ताहरूले कमान्ड प्रम्प्ट (Command Prompt) मा गएर ssh लगइन गर्नु पर्दछ ।

ssh [email protected]_server_ip

एउटा वेबसाईटमा एउटा भन्दा धेरै वेबसाईट पनि होष्ट गर्न सकिने र कारणबस सर्भरको पासवर्ड शेयर गर्नु पर्ने हुन सक्ने हुनाले वेबसाईट सेटअप/अपलोड/कन्फिगर गर्नकोलागी मात्र हामी उएटा छुट्टै प्रयोगकर्ता बनाऔँ ।

adduser w38g0ru

रुट युजरले गर्नु पर्ने कतिपय काम गर्नको हामीले बनाएको नयाँ युजरलाई रुट एक्सेस दिनु उपयुक्त हुन्छ । यसो गर्नाले नर्मल युजरको रूपमा कुनै काम गर्दा गर्दै रुट युजरको कुनै काम गर्नु पर्‍यो भने लग आउट/लगइन गर्नु पर्दैन । यसको लागी तलको कमान्ड प्रयोग गर्नु पर्दछ ।

usermod -aG sudo w38g0ru

अब हामीले बनाएको नयाँ युजर w38g0ru बाट लगइन गरी वेब सर्भरको लागी आवश्यक सफ्टवेयरहरू ईन्सटल गरौँ । यसको लागी सबैभन्दा पहिले प्याकेज मेनेजरको क्याचेमा भएको ईन्फर्मेशनलाई अपडेट गरौँ । पहिलो पटक अपडेट गर्दा सुडो कमान्डले पासवर्ड माग्छ भने त्यही सेसनमा फेरी फेरी माग्दैन ।

sudo apt update

अपाची वेब सर्भर ईन्सटल गर्ने तरिका

अब, अपाची वेब सर्भर ईन्सटल गरौँ ।

sudo apt install apache2

अपाची वेब सर्भर ईन्सटल गर्दा तपाईँलाई केही प्रश्न सोध्न सक्छ जवाफमा तपाईँले Y टाइप गरी इन्टर कि थिच्न पर्ने हुन सक्छ । अपाची ईन्सटल गरे पछि तपाई ईनकमिङ्ग ट्राफिक कन्ट्रोल गर्नको लागी कुन कुन पोर्ट ईनेबल गर्ने कुन डिसेबल गर्ने भनेर सेट गर्न सकिन्छ । यसबारे हामी चर्चा गर्दैनौ । थप जनाकारी आवश्यक परे गुगल गर्न सक्नुहुन्छ।

अब तपाईँको अपाची वेब सर्भर तयार भयो । यसले काम गर्‍यो गरेन भनेर चेक गर्न ब्राउजरमा http://लेखी आफ्नो आइपि एड्रेस दिनु होला । default Ubuntu 20.04 Apache web page देख्नु भयो भने तपाईँको वेब सर्भरले काम गरी रहेको निर्क्योल हुन्छ ।

माईएसक्युवल ईन्सटल गर्ने तरिका

अब, माईएसक्युवल ईन्सटल गरौँ । यसको लागी तल दिएको कमान्ड प्रयोग गर्नु पर्दछ ।

sudo apt install mysql-server

ई्न्सटल भई रहँदा तपाईँले Y टाइप गरेर इन्टर कि थिच्न पर्ने हुन्छ । माईएसक्युवल ईन्सटलेशन सकिए पछि सेक्युरिटीको लागी केही स्क्रिप्ट रन गराउनु पर्ने हुन जान्छ । यसको लागी तल दिएको कमान्ड प्रयोग गर्नु पर्दछ ।

sudo mysql_secure_installation

यस पछि माईएसक्युवल को VALIDATE PASSWORD PLUGIN भ्यालिडेट गर्नको सोध्न । यस भन्नु भो भने यस प्लगईनको क्राईटेरिया अनुसारको पासवर्ड प्रयोग गर्न भन्छ अन्यथा नो भनेर आफ्नो इच्छा अनुसारको पासवर्ड प्रयोग गर्न सकिन्छ । स्ट्रङ्ग पासवर्डको प्रयोग गर्नु जहिले पनि फाइदाजनक हुन्छ । यद्यपि यस प्लगईनले सेट गरे अनुसारको पासवर्ड राख्दा आफूले सम्झिन कतिको सहज हुन्छ यस बारे आफै बिचार गर्न उपयुक्त हुन्छ । व्यक्तिगत रूपमा म आफ्नै तर स्ट्रङ्ग पासवर्ड प्रयोग गर्छु । यस प्लगईनले भने अनुसारको पासवर्ड सधैँ सम्झिन ग्राहै हुन्छ ।

माईएसक्युवल सर्भर ईन्सटल भई सके पछि लगइन गर्नको लागी तल दिए अनुसार सुडो कमान्ड प्रयोग गर्नु पर्दछ । यसको लागी पासवर्डको प्रयोग गर्न पर्दैन ।

sudo mysql

यस्तोमा तपाईँले माईएसक्युवल प्रयोग गर्नको लागी छुट्टै युजर क्रियट गर्न सक्नु हुन्छ ।

CREATE USER 'dbUser'@'%' IDENTIFIED WITH mysql_native_password BY 'dbPassword';

माथि दिएको कमान्डबाट नै प्रस्ट हुन्छ माथिको कमान्डको साहायताले हामीले dbPassword प्रयोग गर्ने गरी dbUser भन्ने माईएसक्युएल युजर निर्माण गर्‍यौ । अब यो dbUser भन्ने माईएसक्युवल युजरलाई एक्सेस दिने गरी रुट युजरबाट नै एउटा डाटाबेसको निर्माण गरौँ । पहिले नै निर्माण गरेको डाटाबेसमा युजर प्रिभिलेज मात्र थप्ने हो भने डाटाबेस बनाउन परेन । अन्यथा तल दिएको कमान्ड प्रयोग गरौँ ।

CREATE DATABASE sampleDatabase;

अब माथि हामीले बनाएको माईएसक्युवल युजर dbUser लाई sampleDatabaseभन्ने डाटाबेस प्रयोग गर्ने परमिसन दिने हो भने तल दिएको कमान्ड प्रयोग गर्नु पर्दछ ।

GRANT ALL ON sampleDatabase.* TO 'dbUser'@'%';

पिएचपी ईन्सटल गर्ने तरिका

अब हामी पिएचपी ईन्सटल गर्न लागौँ ।

sudo apt install php libapache2-mod-php php-mysql

PHP को बृहत् प्रयोग गर्नको लागी तपाईँलाई थप मोड्युलहरु ईन्सटल गर्न पर्ने हुन सक्दछ । आवश्यकता अनुसार थप मोड्युलहरु ईन्सटल गर्न सक्नु हुन्छ । तपाईँले भर्खर ईन्सटल गरेको PHP कुन भर्सन हो भने पत्ता लगाउन तल दिएको कमान्डको प्रयोग गर्नुहोस् ।

php -v
यसरी माईएसक्युवल , पिएचपी र अपाची छुट्टा छुट्टै ईन्सटल नगरि एउटै कमाण्ड बाट एकैचोटी पनि ईन्सटल गर्न सकिन्छ ।
sudo apt install lamp-server^

भर्चुवल होष्ट सेटअप गर्ने तरिका

अहिले सम्म हामीले भिपिएस सर्भरलाई आईपी एड्रेसको साहायताले कनेक्ट गरेर , PHP , MySQL र Apache सर्भर ईन्सटल गर्यौ । अपाची सर्भरको वेबरुट डिरेक्ट्री /var/www/html मा रहेको हुन्छ । हामीले कुनै पनि वेबसाईट लोकलहोष्ट/डोमेन/आईपी बाट एक्सेस गर्नको लागि www फोल्डको html भन्ने फोल्डरमा फाईलहरु राख्नु पर्दछ । अनि त्यो फाईलहरु राखेको लोकेशनलाई डोमेन सँग लिङ्क गराउन पर्दछ । अब आउनुहोस भर्चुवल होष्ट कसरि कन्फगर गर्ने त्यसपटी लागौ ।

सबैभन्दा पहिले आफूले होस्ट गर्न चाहेको वेबसाइटको फाइल www फोल्डर भित्र राख्नु पर्दछ । यसको लागि तल दिएको कमान्डको साहायताले एउटा फोल्डर बनाउन सकिन्छ ।

sudo mkdir /var/www/your_domain

त्यसपछी जे नामको युजरले सर्भर लगइन गरेको त्यही युजरलाई त्यो फोल्डरमा वनरसिप असाईन गरी दिनु पर्दछ ।

sudo chown -R $USER:$USER /var/www/your_domain

अपाचीको sites-available भन्ने फोल्डर भित्र तल दिए अनुसार एउटा फाइल क्रियट गर्नु पर्दछ ।

sudo nano /etc/apache2/sites-available/your_domain.conf

माथिको कमान्डले एउटा खाली फाइल तयार हुन्छ यसमा तल दिए अनुसारको विवरण राख्नु पर्दछ ।

<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

अब हामीले सेटअप गर्दै गरेको वेबसाइट your_domain लाई एक्टीभेट गर्नु पर्ने हुन्छ । त्यसको लागी तल दिएको कमान्ड प्रयोग गर्नुहोस् ।

sudo a2ensite your_domain

माथि अपाची वेब सर्भर ईन्सटल गर्दा देख्नु भएको डिफल्ट पेजको सट्टमा भर्चुअल होस्टले डिफाईन गरेको फोल्डरको कन्टेन्ट देखीयोस भन्ने चाहनु हुन्छ भने डिफल्ट वेबसाइटलाई डिसेबल गर्न पर्ने हुन्छ ।

sudo a2dissite 000-default

हाल सम्म माथि गरिएका सेटिङ्गहरु कतै बिग्रिएका छन् कि भन्ने थाहा पाउनको लागी तल दिएको कमान्ड प्रयोग गर्नुहोस् ।

sudo apache2ctl configtest

कन्फिगटेष्ट गर्दा कुनै समस्या देखिएन भने अपाची वेब सर्भरलाई रिस्टार्ट/रिलोड गर्नु होला । तपाईँको डोमेन भिपिएसमा काम गर्न थाल्छ ।

sudo systemctl reload apache2