Ένας διακομιστής ιστού (web server) αποθηκεύει, επεξεργάζεται και παραδίδει ιστοσελίδες στους επισκέπτες του ιστότοπου. Υπάρχουν αρκετές Open Source web server επιλογές λογισμικού, αλλά ο Apache HTTP server θεωρείται ως ο πιο ευρέως χρησιμοποιούμενος διακομιστής ιστού στον κόσμο. Αυτό συμβαίνει επειδή, εκτός από το ότι είναι ανοιχτού κώδικα, η αρθρωτή αρχιτεκτονική του επιτρέπει την επέκταση των δυνατοτήτων του μέσω της προσθήκης ενοτήτων (modules) για την εξυπηρέτηση διαφορετικών σκοπών. Ως αποτέλεσμα, ο διακομιστής ιστού είναι εξαιρετικά στιβαρός.
Αν θέλετε να εγκαταστήσετε τον Apache σε ένα σύστημα CentOS 7, αυτός ο οδηγός είναι για εσάς. Επιπλέον, θα μάθετε πώς να δημιουργείτε virtual hosts ώστε να μπορείτε να φιλοξενείτε πολλούς ιστότοπους σε έναν Apache HTTP server που εκτελείται σε CentOS.
Αυτός είναι ένας λεπτομερής οδηγός που εστιάζει μόνο στην εγκατάσταση του Apache. Αν ψάχνατε για τον οδηγό σε μορφή λίστας για το LAMP stack, έχουμε αυτόν τον οδηγό για το Πώς να εγκαταστήσετε Linux, Apache, MySQL, PHP (LAMP) στο CentOS 7 που μπορείτε να δείτε. Τώρα, ας ξεκινήσουμε!
Προαπαιτούμενα
Καθώς πρόκειται για έναν πρακτικό οδηγό, θα πρέπει να έχετε τα εξής:
- Έναν διακομιστή που εκτελεί CentOS 7, μπορείτε να δημιουργήσετε έναν στο CloudSigma με μερικά απλά βήματα ακολουθώντας αυτόν τον σύνδεσμο.
- Διαμορφώστε έναν μη-root χρήστη με προνόμια sudo στον διακομιστή σας. Στη συνέχεια, συνδεθείτε με αυτόν τον χρήστη.
- Ρυθμίστε ένα βασικό τείχος προστασίας (firewall) ακολουθώντας τα βήματα στον οδηγό μας σχετικά με τη Ρύθμιση τείχους προστασίας με το FirewallD στο CentOS 7.
Βήμα 1: Εγκατάσταση του Apache HTTP Server
Μπορείτε να βρείτε τον Apache στα προεπιλεγμένα αποθετήρια του CentOS. Επομένως, η εγκατάσταση είναι απλή χρησιμοποιώντας τον διαχειριστή πακέτων yum. Από την ενότητα των προαπαιτούμενων, πρέπει να έχετε συνδεθεί με τον μη-root χρήστη. Εκτελέστε την ακόλουθη εντολή στο τερματικό σας για να ενημερώσετε το τοπικό ευρετήριο πακέτων httpd του Apache:
|
1 |
sudo yum update httpd |
Μόλις ενημερωθούν τα πακέτα, εισαγάγετε την ακόλουθη εντολή για να εγκαταστήσετε τον Apache:
|
1 |
sudo yum install httpd |
Επιβεβαιώστε την εγκατάσταση και περιμένετε να εγκαταστήσει το yum τον Apache και τις απαιτούμενες εξαρτήσεις του.
Αν ακολουθήσατε τα βήματα στον οδηγό σχετικά με τη Ρύθμιση τείχους προστασίας με το FirewallD στο CentOS 7 και ενεργοποιήσατε το τείχος προστασίας για τη θύρα 80, τότε είστε έτοιμοι. Firewalld είναι ο διαχειριστής τείχους προστασίας για το CentOS. Διαφορετικά, μπορείτε να ενεργοποιήσετε την υπηρεσία http (θύρα 80) του firewalld εισάγοντας την ακόλουθη εντολή:
|
1 |
sudo firewall-cmd --permanent --add-service=http |
Αν σκοπεύετε να εξυπηρετήσετε κίνηση μέσω ασφαλούς HTTPS, τότε μπορείτε να ενεργοποιήσετε την υπηρεσία https (θύρα 443) του firewalld εισάγοντας την ακόλουθη εντολή:
|
1 |
sudo firewall-cmd --permanent --add-service=https |
Τέλος, πρέπει να επαναφορτώσετε το firewalld για να εφαρμοστούν οι αλλαγές. Ορίστε η εντολή για επαναφόρτωση:
|
1 |
sudo firewall-cmd –reload |
Σε αυτό το σημείο, έχετε εγκαταστήσει και ρυθμίσει τον Apache ώστε να εξυπηρετεί κίνηση μέσω HTTP ή HTTPS, ανάλογα με το αν εκτελέσατε τις παραπάνω εντολές.
Βήμα 2: Επιβεβαίωση ότι ο Apache Web Server εκτελείται
Στο CentOS, η διεργασία του Apache δεν ξεκινά αυτόματα μετά την εγκατάσταση. Για να εκκινήσετε χειροκίνητα τον Apache, εισαγάγετε την ακόλουθη εντολή:
|
1 |
sudo systemctl start httpd |
Για να επαληθεύσετε ότι η υπηρεσία ξεκίνησε με επιτυχία, ελέγξτε την κατάσταση εισάγοντας την ακόλουθη εντολή:
|
1 |
sudo systemctl status httpd |
Εάν η υπηρεσία εκτελείται, θα πρέπει να δείτε ένα αποτέλεσμα παρόμοιο με το παρακάτω στιγμιότυπο οθόνης. Σημειώστε την ενεργή κατάσταση:

Το αποτέλεσμα υποδεικνύει ότι η υπηρεσία ξεκίνησε με επιτυχία και εκτελείται. Στη συνέχεια, πρέπει επίσης να δοκιμάσουμε αν ο Apache μπορεί να εξυπηρετήσει μια σελίδα σε χρήστες του διαδικτύου. Ο Apache συνοδεύεται από μια προεπιλεγμένη σελίδα που μπορείτε να χρησιμοποιήσετε για να δοκιμάσετε εάν ο διακομιστής σας είναι προσβάσιμος μέσω του διαδικτύου.
Θα πρέπει να βρείτε τη δημόσια διεύθυνση IP του διακομιστή σας, εάν δεν την έχετε ήδη. Αυτή τη διεύθυνση IP θα χρησιμοποιήσετε στη γραμμή διευθύνσεων του προγράμματος περιήγησής σας για να ζητήσετε την προεπιλεγμένη ιστοσελίδα του Apache. Μπορείτε να εμφανίσετε τις διευθύνσεις δικτύου του κεντρικού υπολογιστή εισάγοντας την ακόλουθη εντολή:
|
1 |
hostname –I |
Από τη λίστα των διευθύνσεων που θα λάβετε, μπορείτε να δοκιμάσετε καθεμία στο πρόγραμμα περιήγησής σας για να επιβεβαιώσετε ότι λειτουργούν. Προαιρετικά, μπορείτε να χρησιμοποιήσετε το curl για να λάβετε τη διεύθυνση IP σας από το icanhazip.com. Η παρακάτω εντολή εμφανίζει τη δημόσια διεύθυνση IP σας, όπως φαίνεται από έναν υπολογιστή σε άλλη τοποθεσία στο διαδίκτυο:
|
1 |
curl -4 icanhazip.com |
Μόλις έχετε τη δημόσια διεύθυνση IP του διακομιστή σας, αντιγράψτε την και επικολλήστε την στη γραμμή διευθύνσεων του προγράμματος περιήγησής σας:
|
1 |
http://your_server_public_ip |
Το πρόγραμμα περιήγησής σας θα πρέπει να φορτώσει την προεπιλεγμένη ιστοσελίδα Apache του CentOS 7:

Αν μπορέσατε να φορτώσετε την προεπιλεγμένη ιστοσελίδα Apache, αυτό σημαίνει ότι ο διακομιστής σας λειτουργεί σωστά. Αν κυλήσετε προς τα κάτω, μπορείτε να δείτε μερικές βασικές πληροφορίες σχετικά με τα αρχεία και τις τοποθεσίες καταλόγων του Apache. Με την υπηρεσία εγκατεστημένη και να λειτουργεί σωστά, θα πρέπει να μπορείτε να χρησιμοποιήσετε τις διάφορες εντολές systemctl για τη διαχείριση της υπηρεσίας.
Βήμα 3: Διαχείριση της υπηρεσίας Apache
Σε αυτήν την ενότητα, θα σας δείξουμε μερικές βασικές εντολές διαχείρισης του Apache. Εδώ είναι η εντολή που σταματά τον διακομιστή ιστού:
|
1 |
sudo systemctl stop httpd |
Εδώ είναι η εντολή για την εκκίνηση του διακομιστή ιστού:
|
1 |
sudo systemctl start httpd |
Στη συνέχεια, αυτή είναι η εντολή για την επανεκκίνηση του διακομιστή ιστού (διακοπή και εκκίνηση):
|
1 |
sudo systemctl restart httpd |
Μετά από αυτό, θα σας δείξουμε την εντολή για την επαναφόρτωση της υπηρεσίας Apache. Αυτή η εντολή είναι απαραίτητη όταν κάνετε απλώς αλλαγές στις ρυθμίσεις. Με την επαναφόρτωση, η διεργασία του Apache θα εφαρμόσει τις αλλαγές ρυθμίσεων χωρίς να διακόψει τις συνδέσεις, όπως θα συνέβαινε αν είχατε κάνει επανεκκίνηση:
|
1 |
sudo systemctl reload httpd |
Σύμφωνα με τις προεπιλεγμένες ρυθμίσεις, ο Apache ξεκινά αυτόματα κατά την εκκίνηση του διακομιστή. Αν θέλετε να αλλάξετε αυτήν τη συμπεριφορά, εδώ είναι η εντολή για την απενεργοποίηση της εκκίνησης της υπηρεσίας κατά την εκκίνηση του συστήματος:
|
1 |
sudo systemctl disable httpd |
Για να ενεργοποιήσετε ξανά την εκκίνηση της υπηρεσίας κατά την εκκίνηση του συστήματος, εισαγάγετε την ακόλουθη εντολή:
|
1 |
sudo systemctl enable httpd |
Βήμα 4: Ρύθμιση εικονικών κεντρικών υπολογιστών (Virtual Hosts) του Apache
Από προεπιλογή, ο Apache είναι ρυθμισμένος να φιλοξενεί και να εξυπηρετεί έναν μόνο ιστότοπο. Στις περισσότερες περιπτώσεις, θα θέλετε ο διακομιστής ιστού σας να εξυπηρετεί και να φιλοξενεί πολλούς ιστότοπους. Για παράδειγμα, μπορεί να έχετε υποτομείς ή να θέλετε να δημιουργήσετε μια σελίδα ιστολογίου για τον κύριο ιστότοπο της εταιρείας/οργανισμού σας. Εδώ είναι που έρχονται στο προσκήνιο οι εικονικοί κεντρικοί υπολογιστές (virtual hosts) του Apache. Οι εικονικοί κεντρικοί υπολογιστές του Apache σάς επιτρέπουν να ρυθμίσετε τον διακομιστή ιστού σας ώστε να εξυπηρετεί πολλούς ιστότοπους. Οι εικονικοί κεντρικοί υπολογιστές του Apache είναι το αντίστοιχο των server blocks στον Nginx server.
Για αυτόν τον οδηγό, θα σας δείξουμε πώς να δημιουργήσετε έναν εικονικό κεντρικό υπολογιστή χρησιμοποιώντας το example.com ως τομέα μας. Φυσικά, ο τομέας example.com δεν θα λειτουργήσει στο διαδίκτυο, επομένως θα πρέπει να τον αντικαταστήσετε με τον πραγματικό σας τομέα – τα βήματα είναι τα ίδια.
Όταν εγκαθιστάτε τον Apache στο CentOS, εγκαθίσταται ένας εικονικός κεντρικός υπολογιστής που είναι ρυθμισμένος να εξυπηρετεί περιεχόμενο από τον κατάλογο /var/www/html. Αυτός ο σχεδιασμός λειτουργεί καλά εάν φιλοξενείτε έναν μόνο ιστότοπο. Ωστόσο, θέλουμε να έχουμε τη δυνατότητα να φιλοξενούμε πολλούς ιστότοπους. Θα αφήσουμε τον προεπιλεγμένο κατάλογο /var/www/html και αντ' αυτού θα δημιουργήσουμε έναν άλλο κατάλογο για τον τομέα example.com μέσα στην τοποθεσία /var/www. Ο λόγος για τον οποίο αφήνουμε τον προεπιλεγμένο κατάλογο είναι για να εξυπηρετείται όταν τα αιτήματα των πελατών δεν αντιστοιχούν σε άλλους ιστότοπους που έχετε ρυθμίσει με εικονικούς κεντρικούς υπολογιστές. Επιπλέον, εάν θέλετε να απενεργοποιήσετε τους εικονικούς κεντρικούς υπολογιστές που δημιουργήσατε, ο προεπιλεγμένος παραμένει για την εξυπηρέτηση της κίνησης.
Αρχικά, δημιουργήστε έναν κατάλογο μέσα στο /var/www για το όνομα του τομέα σας. Είστε ελεύθεροι να επιλέξετε ένα όνομα της επιλογής σας. Ωστόσο, συνιστάται να επιλέξετε ένα όνομα παρόμοιο με τον τομέα σας για εύκολη απομνημόνευση όταν δημιουργείτε το αρχείο conf του εικονικού κεντρικού υπολογιστή. Εισαγάγετε την ακόλουθη εντολή για να δημιουργήσετε τον κατάλογο example:
|
1 |
sudo mkdir -p /var/www/example |
Εισαγάγετε την ακόλουθη εντολή για να δημιουργήσετε έναν πρόσθετο φάκελο που θα περιέχει τα αρχεία καταγραφής (logs) για τον ιστότοπο:
|
1 |
sudo mkdir -p /var/www/example/log |
Έχοντας δημιουργήσει τους καταλόγους του ιστότοπού σας, εκχωρήστε την ιδιοκτησία του καταλόγου με τη μεταβλητή περιβάλλοντος $USER χρησιμοποιώντας την ακόλουθη εντολή:
|
1 |
sudo chown -R $USER:$USER /var/www/example |
Εκτελέστε την ακόλουθη εντολή για να βεβαιωθείτε ότι ο ριζικός κατάλογος ιστού σας έχει τα προεπιλεγμένα δικαιώματα:
|
1 |
sudo chmod -R 755 /var/www |
Τώρα, δημιουργήστε μια απλή index.html σελίδα χρησιμοποιώντας το nano μέσα στον κατάλογο example εισάγοντας την ακόλουθη εντολή:
|
1 |
sudo nano /var/www/example/index.html |
Στον επεξεργαστή nano, προσθέστε το ακόλουθο απόσπασμα κώδικα HTML:
|
1 2 3 4 5 6 7 8 |
<html> <head> <title>Καλώς ορίσατε στο Example.com!</title> </head> <body> <h1>Αν μπορείτε να δείτε αυτό το μήνυμα, σημαίνει ότι <em>example.com</em> ο εικονικός κεντρικός υπολογιστής είναι σε λειτουργία!</h1> </body> </html> |
Μόλις τελειώσετε, αποθηκεύστε το αρχείο πατώντας Ctrl O και πατήστε ENTER. Μπορείτε τώρα να κλείσετε τον επεξεργαστή πατώντας Ctrl X.
Μέχρι στιγμής, έχουμε τον κατάλογο του ιστότοπού σας και τη βασική ιστοσελίδα για να δοκιμάσουμε τον εικονικό κεντρικό υπολογιστή. Στη συνέχεια, θέλουμε να δημιουργήσουμε τα αρχεία ρυθμίσεων του εικονικού κεντρικού υπολογιστή. Τα αρχεία εικονικού κεντρικού υπολογιστή καθορίζουν τις ρυθμίσεις των διαφόρων ιστότοπων που θέλετε να φιλοξενήσετε σε έναν μόνο διακομιστή Apache. Κατευθύνουν τα αιτήματα του καθορισμένου ονόματος τομέα στον συγκεκριμένο κατάλογό του.
Τα αρχεία εικονικού κεντρικού υπολογιστή αποθηκεύονται στον κατάλογο /etc/httpd/sites-available. Τα ενεργοποιημένα αρχεία εικονικού κεντρικού υπολογιστή συνδέονται συμβολικά από τον κατάλογο /etc/httpd/sites-available στον κατάλογο /etc/httpd/sites-enabled . Αυτοί οι δύο κατάλογοι δεν δημιουργούνται από προεπιλογή στο CentOS, επομένως πρέπει να τους δημιουργήσετε μόνοι σας. Εισαγάγετε την ακόλουθη εντολή για να δημιουργήσετε τους καταλόγους:
|
1 |
sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled |
Με τους καταλόγους στη θέση τους, καθοδηγήστε τον Apache να αναζητήσει εικονικούς κεντρικούς υπολογιστές στον κατάλογο sites-enabled. Θα το κάνετε αυτό τροποποιώντας το κύριο αρχείο ρυθμίσεων του Apache. Εισαγάγετε την ακόλουθη εντολή για να ανοίξετε το αρχείο στον επεξεργαστή nano:
|
1 |
sudo nano /etc/httpd/conf/httpd.conf |
Θέλουμε να προσθέσουμε μια γραμμή που θα καθοδηγεί τον Apache να αναζητά πρόσθετα αρχεία ρυθμίσεων σε έναν προαιρετικό κατάλογο. Μεταβείτε στο κάτω μέρος του αρχείου και προσθέστε την ακόλουθη γραμμή στο τέλος:
|
1 |
IncludeOptional sites-enabled/*.conf |
Αποθηκεύστε το αρχείο πατώντας Ctrl O και πατήστε ENTER. Μπορείτε τώρα να κλείσετε τον επεξεργαστή πατώντας Ctrl X. Το επόμενο βήμα είναι να δημιουργήσετε το αρχείο εικονικού κεντρικού υπολογιστή μέσα στον κατάλογο sites-available. Εισαγάγετε την ακόλουθη εντολή για να δημιουργήσετε και να ανοίξετε το νέο αρχείο με τον επεξεργαστή nano:
|
1 |
sudo nano /etc/httpd/sites-available/example.conf |
Στο ανοιχτό αρχείο, προσθέστε το ακόλουθο μπλοκ ρυθμίσεων. Θυμηθείτε να αντικαταστήσετε το δικό μας example.com με το πραγματικό σας όνομα τομέα, και αν χρησιμοποιήσατε διαφορετικό όνομα καταλόγου στο /var/www/example, ενημερώστε το επίσης κατάλληλα:
|
1 2 3 4 5 6 7 |
<VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example ErrorLog /var/www/example/log/error.log CustomLog /var/www/example/log/requests.log combined </VirtualHost> |
Όπως μπορείτε να δείτε, έχουμε καθορίσει το όνομα τομέα και τον ριζικό κατάλογο εγγράφων όπου θα βρίσκονται τα αρχεία που θα εξυπηρετούνται για αυτόν τον τομέα. Έχουμε επίσης καθορίσει τη θέση του αρχείου καταγραφής σφαλμάτων – αυτό θα σας βοηθήσει κατά την αντιμετώπιση προβλημάτων του διακομιστή.
Μόλις έχουμε το αρχείο εικονικού κεντρικού υπολογιστή μέσα στον κατάλογο sites-available, το επόμενο βήμα είναι να ενεργοποιήσουμε το αρχείο δημιουργώντας έναν συμβολικό σύνδεσμο προς τον κατάλογο sites-enabled. Εισαγάγετε την ακόλουθη εντολή για να δημιουργήσετε τον συμβολικό σύνδεσμο:
|
1 |
sudo ln -s /etc/httpd/sites-available/example.conf /etc/httpd/sites-enabled/example.conf |
Αν έχετε ακολουθήσει τα βήματα μέχρι αυτό το σημείο, ο εικονικός σας κεντρικός υπολογιστής θα πρέπει τώρα να είναι έτοιμος να εξυπηρετήσει το περιεχόμενο του ιστότοπού σας. Ωστόσο, υπάρχει ένας ακόμη έλεγχος που πρέπει να ρυθμίσετε πριν αρχίσουν να λειτουργούν οι εικονικοί κεντρικοί υπολογιστές. Θα το καλύψουμε αυτό στη συνέχεια.
Βήμα 5: Προσαρμογή των δικαιωμάτων SELinux για να επιτρέπονται οι εικονικοί κεντρικοί υπολογιστές
Οι διανομές Linux, συμπεριλαμβανομένων των Fedora, RHEL και CentOS συνοδεύονται από το SELinux από προεπιλογή. SELinux (Security Enhanced Linux) είναι μια αρχιτεκτονική ασφαλείας για συστήματα Linux που περιορίζει και καθορίζει τον τρόπο με τον οποίο ένας διακομιστής πρέπει να επεξεργάζεται τα αιτήματα, καθώς και τον τρόπο με τον οποίο οι χρήστες πρέπει να αλληλεπιδρούν με υποδοχές (sockets), θύρες δικτύου και βασικούς καταλόγους.
Αμέσως μετά την εγκατάσταση, το SELinux θα λειτουργήσει με την προεπιλεγμένη διαμόρφωση του Apache. Ωστόσο, με τον προσαρμοσμένο εικονικό κεντρικό υπολογιστή που δημιουργήσατε, συμπεριλαμβανομένου ενός προσαρμοσμένου καταλόγου καταγραφής, θα εμφανιστεί ένα σφάλμα υπηρεσίας όταν προσπαθήσετε να επανεκκινήσετε την υπηρεσία Apache. Η λύση είναι να τροποποιήσετε τις πολιτικές του SELinux ώστε να επιτρέψετε στην υπηρεσία Apache να γράφει στα απαραίτητα αρχεία.
Το SELinux καθιστά το CentOS έναν εξαιρετικά ασφαλή διακομιστή. Επομένως, δεν συνιστούμε την πλήρη απενεργοποίησή του. Δεδομένου ότι το SELinux σάς επιτρέπει να προσαρμόσετε το επίπεδο ασφαλείας σας με διάφορους τρόπους, συνιστάται να ενημερώνετε ή να ορίζετε πολιτικές μόνο με βάση τις ανάγκες του περιβάλλοντός σας.
Έχετε δύο επιλογές για την ενημέρωση των πολιτικών του Apache: είτε Καθολικά είτε ανά Συγκεκριμένο κατάλογο. Η ενημέρωση πολιτικών για έναν συγκεκριμένο κατάλογο είναι πιο ασφαλής. Επομένως, είναι η συνιστώμενη επιλογή.
-
Καθολική ενημέρωση των πολιτικών του Apache
Μπορείτε να τροποποιήσετε την πολιτική του Apache καθολικά, γεγονός που θα καθοδηγήσει το SELinux να αντιμετωπίζει όλες τις διεργασίες του Apache πανομοιότυπα, χρησιμοποιώντας τη μεταβλητή Boolean httpd_unified Boolean. Λάβετε υπόψη ότι η καθολική τροποποίηση των πολιτικών του Apache δεν θα σας προσφέρει το ίδιο επίπεδο ελέγχου με τη ρύθμιση κάθε καταλόγου ξεχωριστά. Ωστόσο, είναι πιο βολική όσον αφορά τη συντήρηση. Εκτελέστε την ακόλουθη εντολή για να ενημερώσετε τις πολιτικές του Apache καθολικά:
|
1 |
sudo setsebool -P httpd_unified 1 |
Ας ορίσουμε τι κάνουν οι τιμές σε αυτήν την εντολή:
- setsebool – ενημερώνει τις τιμές boolean του SELinux.
- -P ετικέτα – ενημερώνει την τιμή κατά την εκκίνηση, ώστε αυτή η αλλαγή να παραμείνει και μετά από επανεκκινήσεις.
- httpd_unified – η τιμή boolean που θα καθοδηγήσει το SELinux να αντιμετωπίζει όλες τις διεργασίες του Apache ως τον ίδιο τύπο. Η χρήση της τιμής 1 την ενεργοποιεί.
-
Προσαρμογή των πολιτικών του Apache σε έναν κατάλογο
Αν θέλετε περισσότερο έλεγχο στους καταλόγους, τότε η προσαρμογή των πολιτικών του Apache ανά κατάλογο είναι ο σωστός τρόπος. Ωστόσο, αυτό συνεπάγεται το πρόσθετο βάρος της ανάγκης για περισσότερη συντήρηση. Αυτό συμβαίνει επειδή η πολιτική δεν είναι καθολική. Επομένως, θα πρέπει να ορίσετε χειροκίνητα τον τύπο πλαισίου (context type) για τυχόν νέους καταλόγους καταγραφής που καθορίζετε στα αρχεία conf του εικονικού σας κεντρικού υπολογιστή.
Πριν ενημερώσετε την πολιτική, ελέγξτε πρώτα τον τύπο πλαισίου που εκχώρησε το SELinux στον κατάλογο /var/www/example/log χρησιμοποιώντας την ακόλουθη εντολή:
|
1 |
sudo ls -dZ /var/www/example/log/ |
Η εντολή θα εμφανίσει κάτι σαν το ακόλουθο, το οποίο είναι βασικά το πλαίσιο SELinux του καταλόγου:
|
1 |
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example/log/ |
httpd_sys_content_t είναι το τρέχον πλαίσιο, το οποίο ενημερώνει το SELinux ότι η διεργασία του Apache επιτρέπεται μόνο να διαβάζει αρχεία που έχουν δημιουργηθεί σε αυτόν τον κατάλογο. Δεδομένου ότι από τις ρυθμίσεις του εικονικού μας κεντρικού υπολογιστή θέλουμε ο Apache να γράφει σε αρχεία καταγραφής στον κατάλογο /var/www/example/log , θα τροποποιήσουμε αυτήν την πολιτική για να επιτρέψουμε στον Apache να δημιουργεί και να προσθέτει δεδομένα σε αρχεία καταγραφής εφαρμογών ιστού. Το πλαίσιο που το επιτρέπει αυτό είναι το httpd_log_t. Ορίστε η εντολή για την ενημέρωση του πλαισίου:
|
1 |
sudo semanage fcontext -a -t httpd_log_t "/var/www/example/log(/.*)?" |
Για να εφαρμόσετε τις αλλαγές από την παραπάνω εντολή και να διατηρηθούν μετά την επανεκκίνηση, εκτελέστε την ακόλουθη εντολή:
|
1 |
sudo restorecon -R -v /var/www/example/log |
Ας ορίσουμε τι κάνει η εντολή:
- restorecon – εφαρμόζει τις αλλαγές και διασφαλίζει ότι παραμένουν μετά από επανεκκινήσεις.
- flag -R – θα εκτελέσει την εντολή αναδρομικά, ενημερώνοντας τυχόν υπάρχοντα αρχεία ώστε να χρησιμοποιούν το νέο πλαίσιο.
- flag -v – εκτυπώνει τις αλλαγές πλαισίου μετά την εκτέλεση της εντολής. Θα εμφανίσει κάτι σαν αυτό:
|
1 2 |
Έξοδος: restorecon reset /var/www/example/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0 |
|
1 |
sudo ls -dZ /var/www/example/log/ |
|
1 |
drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log |
Βήμα 6: Δοκιμή της Ρύθμισης του Εικονικού Κεντρικού Υπολογιστή
Πριν μπορέσουμε να δοκιμάσουμε τον εικονικό κεντρικό υπολογιστή, θα πρέπει να επανεκκινήσετε τις υπηρεσίες Apache. Ορίστε η εντολή για αυτό:
|
1 |
sudo systemctl restart httpd |
Στη συνέχεια, εμφανίστε τα περιεχόμενα του καταλόγου καταγραφής χρησιμοποιώντας την ακόλουθη εντολή:
|
1 |
ls -lZ /var/www/example/log |
Θα πρέπει να εμφανίσει κάτι σαν αυτό, δείχνοντας ότι ο Apache έχει δημιουργήσει τα αρχεία καταγραφής:

Εάν έχετε ακολουθήσει τα βήματα μέχρι αυτό το σημείο, ο Apache θα πρέπει τώρα να μπορεί να εξυπηρετεί τη δοκιμαστική σελίδα HTML όταν επισκέπτεστε το όνομα τομέα σας όπως ορίζεται στο αρχείο του εικονικού κεντρικού υπολογιστή σας. Εάν το επιθυμείτε, μπορείτε να επαναλάβετε τα βήματα 4 και 5 για να ρυθμίσετε πρόσθετους τομείς και να ενημερώσετε κατάλληλα τις άδειες SELinux τους.
Συμπέρασμα
Σε αυτόν τον οδηγό, εγκαταστήσαμε τον Apache, μάθαμε πώς να ενημερώνουμε τις πολιτικές SELinux ώστε να επιτρέπουν στον Apache να γράφει σε προσαρμοσμένα αρχεία καταγραφής, και τέλος δοκιμάσαμε τη ρύθμισή μας για να επιβεβαιώσουμε ότι λειτουργεί σωστά. Χρησιμοποιώντας αυτό το υπόβαθρο, θα πρέπει να είστε σε θέση να βασιστείτε σε αυτό και να εξυπηρετήσετε καλύτερες εφαρμογές με πλουσιότερες εμπειρίες.
Αν θέλετε να εξερευνήσετε μια ολοκληρωμένη στοίβα ιστού, δείτε τον οδηγό μας για το πώς να εγκαταστήσετε τη στοίβα LAMP στο CentOS 7.
Καλή συνέχεια!
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.