Πώς να δημιουργήσετε Virtual Hosts στον Apache σε Debian 8

Το Virtual Hosting είναι ένας τρόπος hosting πολλών διαφορετικών domain names σε έναν φυσικό server . Επιτρέπει το μοίρασμα των πόρων του φυσικού server πχ cpu , ram ,  στα διάφορα domain names .

Παρακάτω θα φτιάξουμε ένα  setup για τα domain names , test1.com , test2.com .

Αν το apache δεν είναι εγκατεστημένο στο σύστημα σας χρησιμοποιήστε την apt -get για να το εγκαταστήσετε :

sudo apt-get update
sudo apt-get install apache2

1.Δημιουργία των directories

Αρχικά το directory  /var/www/html  είναι το default του web server  . Εμέις θέλουμε να δημιουργήσουμε ενα directory για το κάθε domain name , και για κάθε domain name , έναν φάκελο που θα έχει τα αρχεία του . : 

sudo mkdir -p /var/www/test1.com/public_html
sudo mkdir -p /var/www/test2.com/public_html 

Τώρα δημιουργήσαμε αυτούς τους φακέλους , αλλά μόνο ο χρήστης root έχει δικαιώματα . Για να δώσουμε δικαιώματα στον απλό χρήστη χρησιμοποιούμε τις εντολές :

sudo chown -R $USER:$USER /var/www/test1.com/public_html
sudo chown -R $USER:$USER /var/www/test2.com/public_html

 Όπου user το όνομα του χρήστη στον οποίο θέλουμε να δώσουμε δικαιώματα .

2.Δημιουργία demo σελίδας σε κάθε Virtual Host

Τώρα αφου τα directories είναι έτοιμα , θα βάλουμε στον φάκελο του κάθε virtual host μια πολύ απλή σελίδα index.html . Αυτο θα βοηθήσει αργότερα όταν θα χρειαστούμε να τεστάρουμε τους virtual hosts .

sudo vi /var/www/test1.com/public_html/index.html

Το index.html θα είναι ένα πολύ απλό html page που απλά θα δείχνει ότι είμαστε στο σωστό directory .

/var/www/example.com/public_html/index.html

<html>
 <head>
   <title>Welcome to test1.com!</title>
 </head>
 <body>
   <h1>Success! The test1.com virtual host is working!</h1>
 </body>
</html>

Επαναλαμβάνουμε ακριβώς την ίδια διαδικασία και για το domain name test2

sudo vi /var/www/test2.com/public_html/index.html

/var/www/example.com/public_html/index.html

<html>
 <head>
   <title>Welcome to test2.com!</title>
 </head>
 <body>
   <h1>Success! The test2.com virtual host is working!</h1>
 </body>
</html>

3.Δημιουργία νέων Virtual Host files

Τα Virtual Host Files προσδιορίζουν τις ρυθμίσεις λειτουργίας των virtual host μας , και ρυθμίζουν πως θα απαντά ο server  στα αιτήματα που του γίνονται . 

Ο Apache έχει ένα default virtual host file που λέγεται 000-default.conf και μπορούμε να το χρησιμοποιήσουμε για να φτιάξουμε τα δικα μας  αρχεία .

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test1.com.conf

 sudo vi /etc/apache2/sites-available/test1.com.conf

Με κάποιες μικρές διαφορές το αρχείο πρέπει να έχει την παρακάτω μορφή

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>

       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/html

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Για αρχή θα αλλάξουμε το email στο πεδίο Serveradmin έτσι ώστε ο admin του server να μπορεί να δέχεται email .

Μετά , κάτω απο την γραμμή του email θα προσθέσουμε 2 νέες πεδία :

ServerName  test1.com

ServerAlias www.test1.com

Τέλος , αλλάζουμε το πεδίο DocumentRoot ώστε να δείχνει στο directory που δημιουργήσαμε πριν , δηλαδή το :

/var/www/test1.com/public_html

Αποθηκεύουμε το αρχείο . Βέβαια φτιάξαμε το Virtual Host File για το domain name test1. Για το domain name test2 θα επαναλάβουμε ακριβώς την ίδια διαδικασία .

4.Ενεργοποίηση των Virtual Host files 

Ως τώρα έχουμε δημιουργήσει τα virtual host fiiles σύμφωνα με τις ανάγκες μας , αλλά ο apache δεν πρόκειται να τα χρησιμοποιήσει , αν δεν τα ενεργοποιήσουμε πρώτα .

Ενεργοποιούμε με την σειρά το καθε domain name :

 sudo a2ensite test1.com.conf

 sudo a2ensite test2.com.conf

Το a2ensite είναι ένα εργαλείο για την ενεργοποίηση των sites .

Αφου εκτελέσουμε τις 2 απο πάνω εντολές θα πάρουμε λογικά την ακόλουθη έξοδο :

Enabling site test1.com.
To activate the new configuration, you need to run:
 service apache2 reload

Θα χρειαστεί να κάνουμε reload τον Apache , αλλά πριν γίνεται αυτό πρέπει να κάνουμε disable to 000-default.conf μιας και πλεον χρησιμοποιούμε τα δικά μας configuration files .

sudo a2dissite 000-default.conf

Τώρα είμαστε έτοιμοι να κάνουμε reload τον Apache

sudo systemctl restart apache2

5.Test των αποτελεσμάτων

 Για να είμαστε σίγουροι   ότι δεν κάναμε κάποιο λάθος , θα ανοίξουμε εναν browser , και θα δοκιμάσουμε να μπούμε στα 2 site που δημιουργήσαμε πριν , τα :http://test1.comhttp://test2.com

Αν δούμε το μήνυμα Sucess!The test.com virtual host is working και στις 2 σελίδες όλα έγιναν σωστά και είμαστε έτοιμοι!

Leave a Reply

Your email address will not be published. Required fields are marked *