Ο Apache είναι αυτή τη στιγμή ο πιο ευρέως χρησιμοποιούμενος διακομιστής ιστού στον κόσμο. Είναι ένα λογισμικό ανοιχτού κώδικα που συντηρείται από το The Apache Software Foundation. Από τον Σεπτέμβριο του 2020, εκτιμάται ότι εξυπηρετεί το 36% του συνόλου της κίνησης ιστότοπων στον κόσμο. Οι προγραμματιστές τον λατρεύουν για την ταχύτητα, την ασφάλεια, την αξιοπιστία και τη στιβαρότητά του. Η ευκολία προσαρμογής του του επιτρέπει να ανταποκρίνεται στις ανάγκες πολλών περιβαλλόντων με την εγκατάσταση επεκτάσεων και πρόσθετων.
Ο Apache συνοδεύεται από ένα σύστημα αντιστοίχισης που μπορείτε να χρησιμοποιήσετε για να φιλοξενήσετε πολλαπλούς τομείς ή ιστότοπους χρησιμοποιώντας μια ενιαία εγκατάσταση διακομιστή Apache που εκτίθεται σε μια ενιαία διεύθυνση IP. Οι τομείς ή οι ιστότοποι ρυθμίζονται σε ένα από τα αρχεία ρυθμίσεων του Apache που ορίζονται ως εικονικοί οικοδεσπότες.
Κάθε τομέας έχει έναν ορισμό εικονικού οικοδεσπότη με έναν συγκεκριμένο κατάλογο στον οποίο κατευθύνει. Όταν ένας χρήστης επισκέπτεται έναν τομέα, ο διακομιστής εξετάζει κάθε εικονικό οικοδεσπότη που ταιριάζει και επιλέγει ποιον θα χρησιμοποιήσει για να εξυπηρετήσει το αίτημα του επισκέπτη ανάλογα με το όνομα κεντρικού υπολογιστή που εισήγαγε. Εάν δεν βρεθεί αντίστοιχο όνομα κεντρικού υπολογιστή, ο διακομιστής χρησιμοποιεί τον πρώτο ορισμένο εικονικό οικοδεσπότη στο αρχείο conf ως εναλλακτική λύση. Ο επισκέπτης θα έχει πρόσβαση στην ιστοσελίδα που ζήτησε χωρίς να γνωρίζει ότι ο ίδιος διακομιστής εξυπηρετεί άλλους ιστότοπους. Ανάλογα με τους πόρους που έχετε στον διακομιστή σας και την κίνηση που μπορεί να διαχειριστεί, μπορείτε να φιλοξενήσετε όσους τομείς θέλετε.
Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στη ρύθμιση εικονικών οικοδεσποτών στον διακομιστή Ubuntu 20.04.
Πρώτα απ' όλα
Για να παρακολουθήσετε αυτόν τον οδηγό, θα πρέπει να έχετε μια εγκατάσταση του Ubuntu 20.04. Πρέπει επίσης να δημιουργήσετε έναν χρήστη που δεν είναι root και να συνδεθείτε με αυτόν.
Τα βήματα σε αυτόν τον οδηγό απαιτούν επίσης να έχετε εγκατεστημένο τον Apache. Εάν δεν το έχετε κάνει ήδη, μπορείτε να τον εγκαταστήσετε χρησιμοποιώντας τις παρακάτω εντολές. Μπορείτε να ακολουθήσετε τον οδηγό μας LAMP Stack setup – Linux Apache MySQL PHP tutorial για έναν πιο λεπτομερή οδηγό εγκατάστασης.
|
1 2 |
sudo apt update sudo apt install apache2 |
Θα πρέπει να έχετε κατοχυρώσει δωρεάν ή επί πληρωμή ονόματα τομέα από έναν καταχωρητή της επιλογής σας. Βεβαιωθείτε ότι οι τομείς δείχνουν στον διακομιστή σας μέσω της διαμόρφωσης των εγγραφών DNS. Ωστόσο, μπορείτε ακόμα να χρησιμοποιήσετε τις δικές μας ρυθμίσεις για να ακολουθήσετε τα βήματα σε αυτόν τον οδηγό. Θα χρησιμοποιήσουμε τα example.dev και mydomain.com για αυτόν τον οδηγό. Είστε ελεύθεροι να τα αντικαταστήσετε με τα δικά σας. Εάν αποφασίσετε να χρησιμοποιήσετε τους δοκιμαστικούς τομείς, τότε τα αρχεία hosts στον Apache πρέπει να τροποποιηθούν για να χειριστούν τους τομείς. Θα καλύψουμε πώς να το κάνετε αυτό αργότερα στον οδηγό.
Βήμα 1 – Ρύθμιση των καταλόγων του ιστότοπου
Αυτοί είναι οι κατάλογοι που περιέχουν τα δεδομένα του ιστότοπου στους οποίους θα έχουν πρόσβαση οι επισκέπτες σας. Ο ριζικός κατάλογος εγγράφων του Apache που είναι προσβάσιμος από το διαδίκτυο βρίσκεται συνήθως στο /var/www. Εδώ θα δημιουργήσουμε τους καταλόγους για τους επιμέρους τομείς που θέλουμε να φιλοξενήσουμε. Σε καθέναν από τους καταλόγους, θα προσθέσουμε έναν κατάλογο public_html για να περιέχει τα πραγματικά αρχεία του ιστότοπου. Ο εικονικός οικοδεσπότης δείχνει στον κατάλογο public_html. Αυτό σας παρέχει ευελιξία, καθώς μπορείτε να διατηρείτε κρίσιμα αρχεία του ιστότοπου εκτός του public_html και να τοποθετείτε μόνο δημόσια αρχεία μέσα σε αυτόν.
Στη συνέχεια, εισαγάγετε τις παρακάτω εντολές για να δημιουργήσετε τους καταλόγους. Να θυμάστε πάντα να αντικαθιστάτε τους δοκιμαστικούς τομείς με τους πραγματικούς σας τομείς για τις επόμενες ρυθμίσεις:
|
1 2 |
sudo mkdir -p /var/www/example.dev/public_html sudo mkdir -p /var/www/mydomain.com/public_html |
Βήμα 2 – Αλλαγή δικαιωμάτων ανάγνωσης-εγγραφής
Οι προηγούμενες εντολές δημιούργησαν τη δομή των καταλόγων αλλά διατήρησαν την ιδιοκτησία στον χρήστη root. Θέλουμε ο χρήστης μας που δεν είναι root να έχει πλήρη δικαιώματα ανάγνωσης-εγγραφής στους καταλόγους. Θέλουμε επίσης ο γενικός ιστός να έχει δικαιώματα ανάγνωσης.
Αρχικά, αλλάξτε την ιδιοκτησία στον χρήστη που δεν είναι root εισάγοντας την ακόλουθη εντολή:
|
1 2 |
sudo chown -R $USER:$USER /var/www/example.dev/public_html sudo chown -R $USER:$USER /var/www/mydomain.com/public_html |
Η μεταβλητή $USER λαμβάνει τα διαπιστευτήρια του τρέχοντος συνδεδεμένου χρήστη. Ο απλός χρήστης έχει πλέον την ιδιοκτησία του public_html. Στη συνέχεια, πρέπει να εκχωρήσετε δικαιώματα ανάγνωσης στον γενικό ιστό. Η ακόλουθη εντολή επιτρέπει την πρόσβαση σε όλα τα αρχεία στον κατάλογο, διασφαλίζοντας ότι οι ιστοσελίδες εξυπηρετούνται σωστά:
|
1 |
sudo chmod -R 755 /var/www |
Με την εκτέλεση των τριών προηγούμενων εντολών, ο ιστότοπός σας μπορεί πλέον να εξυπηρετεί περιεχόμενο. Επιπλέον, ο χρήστης σας μπορεί εξίσου να δημιουργήσει περιεχόμενο προς εξυπηρέτηση στους συγκεκριμένους καταλόγους. Εδώ μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τα δικαιώματα του Ubuntu.
Βήμα 3 – Δημιουργία δοκιμαστικών σελίδων στους καταλόγους για κάθε εικονικό κεντρικό υπολογιστή
Με τη δομή των καταλόγων έτοιμη, ήρθε η ώρα για λίγο scripting. Θα χρησιμοποιήσουμε HTML και τον επεξεργαστή κειμένου nano για να δημιουργήσουμε μερικές βασικές ιστοσελίδες. Εισαγάγετε την ακόλουθη εντολή για να ανοίξετε το nano και να δημιουργήσετε ένα αρχείο index.html στον κατάλογο για τον πρώτο τομέα:
|
1 |
vim /var/www/example.dev/public_html/index.html |
Στον επεξεργαστή, τοποθετήστε τον ακόλουθο δείγμα κώδικα που θα εμφανίζεται όταν αποκτούμε πρόσβαση στον τομέα:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Καλώς ορίσατε στο Example.dev!</title> </head> <body> <h1>Επιτυχία! Ο example.dev εικονικός κεντρικός υπολογιστής λειτουργεί κανονικά!</h1> </body> </html> |
Μόλις επικολλήσετε τις παραπάνω γραμμές, πιέστε “!wq” για να αποθηκεύσετε και να εξέλθετε από το αρχείο.
Δημιουργήστε τη σελίδα index.html για τον δεύτερο τομέα χρησιμοποιώντας τον επεξεργαστή nano, εισάγοντας την ακόλουθη εντολή:
|
1 |
vim /var/www/mydomain.com/public_html/index.html |
Στη συνέχεια, στον επεξεργαστή, επικολλήστε τον ακόλουθο κώδικα HTML, αποθηκεύστε και εξέλθετε:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Καλώς ορίσατε στο Mydomain.com!</title> </head> <body> <h1>Επιτυχία! Ο mydomain.com εικονικός κεντρικός υπολογιστής λειτουργεί κανονικά!</h1> </body> </html> |
Τώρα, έχετε τις σελίδες για να δοκιμάσετε τους δύο εικονικούς κεντρικούς υπολογιστές που πρόκειται να δημιουργήσουμε στο επόμενο βήμα.
Βήμα 4 – Δημιουργία αρχείων εικονικού κεντρικού υπολογιστή για τα ονόματα τομέα
Τα αρχεία εικονικού κεντρικού υπολογιστή περιέχουν ρυθμίσεις παραμέτρων για κάθε εικονικό κεντρικό υπολογιστή. Καθορίζουν τον τρόπο με τον οποίο θα εξυπηρετείται ένα όνομα τομέα. Μια νέα εγκατάσταση του Apache συνοδεύεται από ένα προεπιλεγμένο αρχείο εικονικού κεντρικού υπολογιστή με όνομα 000-default.conf, το οποίο μπορούμε να χρησιμοποιήσουμε και να προσαρμόσουμε στους τομείς μας. Όπως μπορείτε να δείτε, καταλήγει σε επέκταση .conf, η οποία είναι αυτή που αναμένει το Ubuntu για τα αρχεία ρυθμίσεων.
Τα αρχεία ρυθμίσεων του Apache βρίσκονται στον κατάλογο /etc/apache2/sites-available. Εκεί θα αποθηκεύσουμε τα αρχεία των εικονικών κεντρικών υπολογιστών μας. Μπορούμε να αντιγράψουμε το προεπιλεγμένο αρχείο conf και να το επεξεργαστούμε όπου είναι απαραίτητο.
-
Δημιουργήστε το πρώτο αρχείο εικονικού κεντρικού υπολογιστή για τον τομέα example.dev
Εισαγάγετε την ακόλουθη εντολή για να δημιουργήσετε το example.dev.conf αντιγράφοντας το προεπιλεγμένο αρχείο conf:
|
1 |
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.dev.conf |
Στη συνέχεια, ανοίξτε το αρχείο που δημιουργήθηκε χρησιμοποιώντας τον επεξεργαστή nano με προνόμια sudo χρησιμοποιώντας την ακόλουθη εντολή:
|
1 |
sudo nano /etc/apache2/sites-available/example.dev.conf |
Το προεπιλεγμένο αρχείο conf μοιάζει με το παρακάτω στιγμιότυπο οθόνης. Τα σχόλια είναι για να σας καθοδηγήσουν. Μπορούμε να τα αφαιρέσουμε και να αφήσουμε μόνο το καθαρό αρχείο με τις πραγματικές γραμμές ρυθμίσεων:

Πρέπει να προσαρμόσετε αυτό το αρχείο για το όνομα τομέα σας και τη διαδρομή καταλόγου όπου έχετε αποθηκεύσει τα αρχεία του ιστότοπου. Επιπλέον, θα ενημερώσουμε και θα προσθέσουμε αρκετές οδηγίες στο αρχείο. Διαθέτει ήδη μια οδηγία ServerAdmin, η οποία περιέχει τη διεύθυνση email στην οποία ο διαχειριστής του διακομιστή θα λαμβάνει μηνύματα ηλεκτρονικού ταχυδρομείου. Διαθέτει επίσης μια οδηγία DocumentRoot, η οποία δείχνει στον κατάλογο όπου έχετε αποθηκεύσει τα αρχεία του ιστότοπου.
Πρέπει να προσθέσουμε δύο νέες οδηγίες: ServerName και ServerAlias. Το ServerName ορίζει το βασικό όνομα τομέα. Εκεί τοποθετείτε τον τομέα σας. Το ServerAlias ορίζει άλλα ονόματα που θα πρέπει να αντιστοιχεί ο Apache σαν να είναι το βασικό όνομα τομέα. Σας επιτρέπει να αντιστοιχίσετε κεντρικούς υπολογιστές όπως το www.
Ενημερώστε το αρχείο ώστε να φαίνεται όπως φαίνεται παρακάτω:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@example.dev ServerName example.dev ServerAlias www.example.dev DocumentRoot /var/www/example.dev/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Μετά από αυτό, ενημερώστε κατάλληλα τους τομείς και το email σας. Μόλις τελειώσετε, πατήστε CTRL + O και ENTER για να αποθηκεύσετε το αρχείο. Για να βγείτε από τον επεξεργαστή, πατήστε CTRL + X.
-
Create the first virtual host file for mydomain.com domain
Μπορούμε απλώς να αντιγράψουμε τον εικονικό κεντρικό υπολογιστή για τον πρώτο τομέα και να τον ενημερώσουμε όπου είναι απαραίτητο για τον δεύτερο τομέα. Χρησιμοποιήστε την ακόλουθη εντολή για να αντιγράψετε το αρχείο:
|
1 |
sudo cp /etc/apache2/sites-available/example.dev.conf /etc/apache2/sites-available/mydomain.com.conf |
Στη συνέχεια, ανοίξτε το στον επεξεργαστή nano χρησιμοποιώντας την εντολή:
|
1 |
sudo nano /etc/apache2/sites-available/mydomain.com.conf |
Βρείτε τις οδηγίες και ενημερώστε τις κατάλληλα, ώστε το αρχείο να φαίνεται όπως φαίνεται παρακάτω:
|
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerAdmin admin@mydomain.com ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/mydomain.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Μόλις τελειώσετε, αποθηκεύστε το αρχείο και βγείτε από τον επεξεργαστή.
Step 5 – Enabling the Virtual Host Files
Στο βήμα τέσσερα, δημιουργήσαμε τα αρχεία εικονικού κεντρικού υπολογιστή. Ωστόσο, δεν είναι λειτουργικά μέχρι να τα ενεργοποιήσετε. Ο Apache διαθέτει ένα εργαλείο που ονομάζεται a2ensite το οποίο θα χρησιμοποιήσουμε για να ενεργοποιήσουμε τους εικονικούς κεντρικούς υπολογιστές.
Εισαγάγετε τις ακόλουθες δύο εντολές για να ενεργοποιήσετε τους εικονικούς κεντρικούς υπολογιστές:
|
1 2 |
sudo a2ensite example.dev.conf sudo a2ensite mydomain.com.conf |
Το αποτέλεσμα των παραπάνω εντολών είναι όπως φαίνεται παρακάτω:

Στη συνέχεια, θα πρέπει να απενεργοποιήσετε το προεπιλεγμένο αρχείο ρυθμίσεων, χρησιμοποιούμε το εργαλείο Apache a2dissite για την απενεργοποίηση ιστότοπων. Εισαγάγετε την ακόλουθη εντολή:
|
1 |
sudo a2dissite 000-default.conf |
Όπως φαίνεται από το αποτέλεσμα, πρέπει να επανεκκινήσετε τον Apache για να εφαρμοστούν οι ρυθμίσεις. Χρησιμοποιήστε την ακόλουθη εντολή:
|
1 |
sudo systemctl restart apache2 |
Στη συνέχεια, ελέγξτε την κατάσταση του Apache χρησιμοποιώντας την ακόλουθη εντολή:
|
1 |
sudo systemctl status apache2 |
Το αποτέλεσμα δείχνει ότι ο διακομιστής σας λειτουργεί κανονικά και είναι σε θέση να εξυπηρετήσει τους δύο ιστότοπους.

Βήμα 6 – Τροποποίηση των Τοπικών Hosts με Παραδείγματα Domain
Αν δεν είχατε καταχωρίσει ένα πραγματικό domain αλλά χρησιμοποιούσατε δοκιμαστικά domains, θα πρέπει να ενημερώσετε τα τοπικά αρχεία host. Πρέπει να αναχαιτίζουν την κίνηση και να την κατευθύνουν στον κατάλογο του ιστότοπού σας όταν πλοηγείστε σε οποιοδήποτε από τα domains που έχουν οριστεί στα αρχεία εικονικού host. Θυμηθείτε ότι αυτό θα λειτουργήσει μόνο στον τοπικό σας υπολογιστή. Αν ο τοπικός σας υπολογιστής εκτελεί λειτουργικό σύστημα Windows, τότε ακολουθήστε τις οδηγίες για τη ρύθμιση των hosts σε αυτόν τον σύνδεσμο.
Αν βρίσκεστε σε μηχάνημα Mac ή Linux, το αρχείο hosts βρίσκεται στον κατάλογο /etc. Θα χρησιμοποιήσουμε έναν επεξεργαστή nano για να ανοίξουμε και να προσθέσουμε τα δοκιμαστικά μας domains. Αρχικά, βρείτε τη διεύθυνση IP του VPS σας εισάγοντας την ακόλουθη εντολή:
|
1 |
curl -4 icanhazip.com |
Εισαγάγετε την ακόλουθη εντολή για να ανοίξετε το αρχείο και να το ενημερώσετε με τη διεύθυνση IP του διακομιστή σας:
|
1 |
sudo nano /etc/hosts |
|
1 2 3 4 |
127.0.0.1 localhost 127.0.1.1 ComputerName your_server_IP example.dev your_server_IP mydomain.com |
Στη συνέχεια, αποθηκεύστε και κλείστε το αρχείο. Κάθε φορά που εισάγετε ένα όνομα domain στο πρόγραμμα περιήγησής σας, ελέγχεται πρώτα το αρχείο host. Εάν βρεθεί το όνομα domain, η κίνηση κατευθύνεται στη συγκεκριμένη διεύθυνση IP. Εάν δεν βρεθεί, χρησιμοποιείται το σύστημα DNS για παγκόσμια ανακατεύθυνση. Για τα δοκιμαστικά μας domains, η κίνηση θα κατευθυνθεί στη συγκεκριμένη διεύθυνση IP.
Βήμα 7 – Δοκιμή των Εικονικών Hosts σας
Με τα ονόματα domain ρυθμισμένα, μπορείτε να δοκιμάσετε αν λειτουργούν ελέγχοντάς τα στο πρόγραμμα περιήγησης/τερματικό:
|
1 |
curl http://example.dev |
Το αποτέλεσμα θα πρέπει να εμφανίζει κάτι σαν αυτό:

|
1 |
http://mydomain.com |

Συγχαρητήρια! Ρυθμίσατε με επιτυχία δύο ιστότοπους ώστε να εκτελούνται σε έναν διακομιστή.
Συμπέρασμα
Σε αυτόν τον οδηγό, μάθατε πώς να ρυθμίζετε τον διακομιστή Apache για να εξυπηρετεί περισσότερους από έναν ιστότοπους. Εάν θέλετε να προσθέσετε περισσότερους ιστότοπους, μπορείτε να το κάνετε ακολουθώντας τα βήματα και ρυθμίζοντας εικονικούς hosts. Ο Apache μπορεί να διαχειριστεί όσα domains επιθυμείτε, αρκεί οι πόροι του διακομιστή σας να μπορούν να τους υποστηρίξουν.
Καλή συνέχεια!
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.