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

13/10/2021 / Apache
virtual-host-setup-apache

Το 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


 
   Welcome to test1.com!
 
 
   

Success! The test1.com virtual host is working!


 

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

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

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


 
   Welcome to test2.com!
 
 
   

Success! The test2.com virtual host is working!


 

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



       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/html

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

Για αρχή θα αλλάξουμε το 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.com

http://test2.com

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

 

Μάθετε περισσότερα για τις υπηρεσίες μας εδώ.

Ακολουθήστε μας σε LinkedIn, Facebook & Instagram για να μένετε ενημερωμένοι!

ΣΥΝΔΕΣΗ

Αίτηση επικοινωνίας

ΠΑΝΩ