Sunday, May 21, 2017

Apache එකම directory එකට domains 2ක් configure කරමු


අද අපි බලමු කොහොමද එකම web directory එකට domains දෙකක් configure කරන්නේ කියලා. ඒ කියන්නේ මේකයි. fb.com ගියත් facebook.com ගියත් දෙකෙන්ම එකම website එකට direct වෙන්නේ.
අපි සාරාංශයක් වශයෙන් කරන්න යන්නේ මේ ටික

  1. HOST කිරීම සදහා 192.168.1.100 කියන ip එකට server එකක් Virtual Machine එකක up කරන එක 
  2. Apache web directory එකක් හදල එකේ files ටිකක් හොස්ට් කරගන්නවා 
  3. umesh.com සහ prabushitha.com කියන domains දෙකට අපි හදපු apache directory එක configure කිරීම 
  4. වෙනම virtual machine එකකින් umesh.com සහ prabushitha.com කියන domains දෙක access කිරීම 
හරි අපි වැඩේ පටන් ගමු.


Step 01 - Virtual Box එක configure කිරීම 

මුලින්ම අපි අපේ website එක හොස්ට් කරන්න server vm එකක් configure කරගන්න ඕනි. Virtual Box open කරලා file->preferences තෝරන්න.  
එන window එකෙන් Network යටතේ තියෙන Host-only Network Tab එක select කරන්න. Add new host-only network button එක click කරලා අලුතෙන් එකක් create කරගන්න.
ඊට පස්සේ Edit selected host-only network button එක click කරලා මේ විදියට ip එක සහ netmask එක set කරන්න.

හරි දැන් OK click කරලා Virtual box main screen එකට යන්න. දැන් host එක සදහා new VM එකක් setup කරගන්න
(මම Ubuntu server OS එක තමා මේ සදහා බාවිතා කලේ මොකද apache ඇතුළු server එකකට අවශ්‍ය ගොඩක් tools default එන නිසා. new VM එකක් setup කරගන්න දන්නේ නැත්තම් google කරලා හොයා ගන්න පුළුවන් ගොඩක් tutorials තියෙනවා 

දැන් හදාගත්ත VM එක right click කරලා settings තෝරන්න.  තෝරලා Network යටතේ adapter 1 tab එකට යන්න. ගිහින් Attached to Host Only Network select කරලා Name එක ලෙස අපි කලින් හදාගත්ත host only network එක තෝරන්න.  Advanced කොටස expand කරලා promiscuous mode එක Allow All ලෙස වෙනස් කරන්න. 
 දැන් හරි. Okay කරලා ඔයා හදාගත්ත VM එක start කරලා install කරලා නැතිනම් install කරගන්න.
එතනින් VM එක configure කරන එක ඉවරයි.   
දැන් ubuntu server vm එකට log වෙලා 192.168.1.100 කියන ip එක up කරගමු. 

ඒක කරන්න අපේ තියෙන network interface එක මොකද්ද කියලා දැනගෙන ඉන්න ඕනි.
ifconfig කියලා terminal එකේ ගහලා බලන්න.  eth හරි enp වලින්  හරි පටන් ගන්න එකක් තියෙනවද බලන්න. මගේ තියෙන්නේ enp0s3 කියන interface එක.
දැන් අපි 192.168.1.100 enp0s3ට සෙට් කරගමු. මුලින්ම , 
sudo nano /etc/network/interfaces
ගිහින් මේ විදියට primary network interface එක වෙනස් කරගන්න
(enp0s3 කියන එක ඔයාලගේ interface එකේ නම දාල වෙනස් කරගන්න)
(මේක කලාම VM එකෙන් internet යන්න බැරි වෙනවා. ඒක හින්දා පස්සේ වෙලාවක ඉන්ටෙර්න්ට් යන්න ඔනි වෙනවා නම් VM එකෙන්, /etc/network/interfaces file එක backup කරලා තියා ගන්න)

දැන් save (CTRL+O) කරලා  exit (CTRL+X) වෙන්න.
කරපු changes effective වෙන්න මේ විදියට interface එක down කරලා ආයේ up කරන්න! 
sudo ifdown enp0s3 
sudo ifup enp0s3
දැන් අපේ ip එක up වෙලා තියෙන්නේ. 



Step 02 - Apache Web Directory එකට files host කිරීම 

/var/www folder එකේ අලුතෙන් directory එකක් හදලා එකට ඔයාගේ website එකට ඕනි files ටික දාන්න.  මේ විදියට තාම මගේ නම් files ටික structure කරලා තියෙන්නේ.   

web folder එක ඇතුලේ තාම website එකේ display වෙන files දාල තියෙන්නේ.
ඔයාලට ඔනී විදියට files ටික හදාගන්න.  


Step 03 - Apache Host දෙකක් Configure කිරීම 

අලුතින් apache config file එකක් හදලා ape web directory එකට අදාළ විස්තර දැන් අපි දාගන්න ඕනි. එකට මන් mysite.conf කියල file එකක් /etc/apache2/sites-available/ directory එකේ හදාගන්නවා මේ විදියට.
sudo nano /etc/apache2/sites-available/mysite.conf 

දැන් මේ විදියට ඒ file එකේ අපේ site එක configurations define කරන්න පුළුවන්

ඔය විදියට file එක edit කරලා save කරන්න.
මේක බැලුවම අපිට පේනවා virtual host දෙකක් අපි configure කරලා තියෙනවා umesh.com සහ prabushitha.com කියන domains දෙකට හැබැයි ServerName කියන parameter එක ඇරෙන්න ඉතුරු ඔක්කොම දෙකේම සමානයි. 
ඔය විදියට අපිට පුළුවන් files directories දෙකක duplicate කරන්නේ නැතුව එකම site එකට point කරන්න. 

දැන් මේ හදපු configuration file එක enable කරගන්න අපිට කරන්න තියෙන්නේ


sudo a2ensite mysite.conf
(එතකොට වෙන්නේ sites-available ඉදන් sites-enabled වලට symlink එකක් හැදෙන එක)

දැන් apache restart කරන්න 
sudo service apache2 restart

Step 04 - වෙනම VM එකකින් Test කිරීම  

දැන් ubuntu server vm එක run වෙද්දීම Virtual Box එකෙන් තවත් VM එකක් start කරන්න. ( ex. ubuntu desktop os එක දාපු VM එකක් start කරන්න) මම start කරන vm එකේ network configurations හදල තියෙන්නේ මේ විදියට.


දැන් එකට log වෙලා අපි 192.168.1.100 ip එකට domain set කරන්න ඕනි.
මේ සදහා  hosts file එක open කරගන්න ඕනි 
sudo nano /etc/hosts 
දැන් ඒ file එකේ අගට මේ විදියට entries දෙකක් add කරන්න 

හරි දැන් save කරලා exit වෙන්න.
දැන් browser එක open කරලා umesh.com සහ prabushitha.com url access කරලා බලන්න. ඔයා ubuntu server එකේ හදපු website එකට direct වෙයි. index.html එකක් හදලා තියෙනවා නම් එක display වෙයි. නැත්තම් files ටික display වෙයි. 


ඔය විදියටම ඔයාට sites ගොඩක් virtual hosts configure කරලා පාවිච්චි කරන්න පුළුවන්, ගොඩක් වෙලාවට development කරද්දී  අපිට මේ විදියට configure කරලා කරන එක ලේසි මොකද deploy කරන site එකක් විදියටම අපිට configurations හදාගන්න පුළුවන් නිසා.


කරද්දී මොකක් හරි අවුලක් අවොත් comment එකක් දාන්න!    


21 comments:

  1. great work umesh..simple and elegant..and thanks for saving time

    ReplyDelete
  2. good explanation...thank you :D

    ReplyDelete
  3. Yow! Thanks Nigga ! #yolo #linux #apache2 #dulya

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Complete Walkthrough..Keep it up Umesh!

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. Thank you very much umesh. Really helpful :)

    ReplyDelete
  8. Interesting topic & Keep it up machan

    ReplyDelete