CLOUD CONCEPT
Νερατζιωτίσσης 15, Μαρούσι, Αθήνα, 15124, Αττική
+30 211 8005 401
info@c2.gr
Το 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
Αρχικά το 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, το όνομα του χρήστη στον οποίο θέλουμε να δώσουμε δικαιώματα.
Αφού τα 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
Επαναλαμβάνουμε ακριβώς την ίδια διαδικασία και για το domain name test2
sudo vi /var/www/test2.com/public_html/index.html
/var/www/example.com/public_html/index.html
Τα 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 θα επαναλάβουμε ακριβώς την ίδια διαδικασία.
Ως τώρα έχουμε δημιουργήσει τα 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
Για να είμαστε σίγουροι ότι δεν κάναμε κάποιο λάθος, θα ανοίξουμε έναν browser και θα δοκιμάσουμε να μπούμε στα 2 site που δημιουργήσαμε πριν:
http://test1.com
http://test2.com
Αν δούμε το μήνυμα Sucess!The test.com virtual host is working και στις 2 σελίδες όλα έγιναν σωστά και είμαστε έτοιμοι!
Μάθετε περισσότερα για τις υπηρεσίες μας εδώ.
Ακολουθήστε μας σε LinkedIn, Facebook & Instagram για να μένετε ενημερωμένοι!