Πώς να δημιουργήσετε 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 σελίδες όλα έγιναν σωστά και είμαστε έτοιμοι!

«
»
ACF (3)
Admin Column (4)
Breadcrumbs (2)
CSS (6)
Custom post types (4)
Custom Taxonomies (3)
Customizer (4)
Hooks & Filters (3)
Jquery (9)
LAMP (10)
Login (5)
Meta boxes (6)
Multisite (2)
My Code (1)
Open Graph Meta Tags (1)
Redirects (2)
SEO (4)
Theme Building (5)
Title Tags (2)
Typography (3)
Uncategorised (54)
User Roles & Capabilities (2)
White labeling (9)
Working with Images (11)
Working with videos (2)
WP Database (1)