Προαπαιτούμενα
Εγκαταστήστε τον διακομιστή Web Apache 2.4
Απενεργοποίηση ευρετηρίων
Κατάλογοι χρηστών
Εικονικοί οικοδεσπότες
Προαπαιτούμενα
- Ένας διακομιστής Vultr με ενημερωμένο Arch Linux. Δείτε αυτόν τον οδηγό για περισσότερες πληροφορίες.
- Πρόσβαση Sudo.
- Οι εντολές που απαιτούνται για να εκτελεστούν ως root έχουν το πρόθεμα
#, και εκείνες που μπορούν να εκτελεστούν ως κανονικός χρήστης από $. Ο συνιστώμενος τρόπος για να εκτελέσετε εντολές ως root είναι, ως κανονικός χρήστης, να προσθέσετε πρόθεμα σε καθεμία από αυτές με sudo.
- Έχετε εγκαταστήσει ένα πρόγραμμα επεξεργασίας κειμένου, και να είναι εξοικειωμένοι με αυτό, όπως
vi, vim, nano, emacsκαι ούτω καθεξής.
Εγκαταστήστε τον διακομιστή Web Apache 2.4
Εάν χρησιμοποιείτε τείχος προστασίας, θα πρέπει να ενεργοποιήσετε την εισερχόμενη κυκλοφορία TCP στη θύρα 80.
Εγκαταστήστε το Apache:
# pacman -S apache
Ξεκινήστε το Apache και ξεκινήστε το μετά από κάθε εκκίνηση:
# systemctl enable --now httpd
Ελέγξτε ότι το Apache εκτελείται. Επισκεφτείτε το http://YOUR-SERVER-WEB-ADDRESS-OR-IP, και θα δείτε μια σελίδα που εμφανίζει "Ευρετήριο /". Εκτελέστε ip addrεάν θέλετε να γνωρίζετε τη διεύθυνση IP.
Το αρχείο ρυθμίσεων του Apache είναι /etc/httpd/conf/httpd.conf. Παρόλο που το Apache ξεκινά από τον χρήστη root, το User httpκάνει αμέσως μετάβαση σε λειτουργία ως χρήστης για λόγους ασφαλείας. DocumentRoot "/srv/http"ορίζει πού θα αναζητήσει αρχεία web. CustomLog "/var/log/httpd/access_log" commonορίζει όπου θα καταγράφονται οι επιτυχείς προσβάσεις στο Apache. ErrorLog "/var/log/httpd/error_log"ορίζει τα σημεία πρόσβασης στον Apache που θα καταγράφεται αυτό το σφάλμα.
Απενεργοποίηση ευρετηρίων
Από προεπιλογή, εάν στον Apache δοθεί ένας κατάλογος που δεν βρίσκει ένα αρχείο ευρετηρίου με μια επέκταση που έχει ρυθμιστεί να χρησιμοποιεί, θα δημιουργήσει αυτόματα ένα ευρετήριο που δείχνει τα περιεχόμενα του καταλόγου. Αυτό μπορεί να θεωρηθεί ευπάθεια ασφαλείας. Για να το απενεργοποιήσετε, επεξεργαστείτε /etc/httpd/conf/httpd.confκαι εντός <Directory "/srv/http">, από Options, διαγράψτε Indexes. Μόλις γίνει επανεκκίνηση, ο Apache θα δώσει ένα "Απαγορεύεται η πρόσβαση!" μήνυμα λάθους, εκτός αν /srv/http/index.htmlυπάρχει τέτοιο αρχείο .
Επανεκκινήστε τον Apache:
# systemctl restart httpd
Κατάλογοι χρηστών
Από προεπιλογή, ο ~/public_html/κατάλογος ενός χρήστη θα εμφανίζεται στο http://YOUR-SERVER-WEB-ADDRESS-OR-IP/~USERNAME/. Ωστόσο, ο χρήστης httpπρέπει να έχει πρόσβαση σε εκτελέσιμο bit στον κατάλογο χρήστη και στον public_htmlκατάλογό του:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
Επιπλέον, ο χρήστης httpπρέπει να έχει πρόσβαση ανάγνωσης σε μεμονωμένα αρχεία. Εάν είναι απαραίτητο, εκτελέστε την ακόλουθη εντολή:
$ chmod o+r ~/public_html/<FILES>
Εάν θέλετε να απενεργοποιήσετε τους public_htmlκαταλόγους των χρηστών να βρίσκονται στον διακομιστή ιστού σας, ανεξάρτητα από τα δικαιώματα καταλόγου και αρχείων, σχολιάστε αυτήν τη γραμμή (προσθήκη #στην αρχή) στο /etc/httpd/conf/httpd.conf:
Include conf/extra/httpd-userdir.conf
Επανεκκινήστε τον Apache:
# systemctl restart httpd
Εικονικοί οικοδεσπότες
Μπορείτε να φιλοξενήσετε πολλά ονόματα τομέα από τον ίδιο διακομιστή Apache και να τους εξυπηρετήσετε διαφορετικό περιεχόμενο.
Δημιουργήστε έναν φάκελο για να κρατήσετε τις διαμορφώσεις εικονικού κεντρικού υπολογιστή σας:
# mkdir /etc/httpd/conf/vhosts
Δημιουργήστε ένα αρχείο διαμόρφωσης για κάθε εικονικό κεντρικό υπολογιστή, όπως /etc/httpd/conf/vhosts/YOUR-DOMAIN-NAME.com:
<VirtualHost *:80>
ServerAdmin webmaster@YOUR-DOMAIN-NAME.com
DocumentRoot "/srv/YOUR-DOMAIN-NAME.com"
ServerName YOUR-DOMAIN-NAME.com
ServerAlias YOUR-DOMAIN-NAME.com
ErrorLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-error_log"
CustomLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-access_log" common
<Directory "/srv/YOUR-DOMAIN-NAME.com">
Require all granted
</Directory>
</VirtualHost>
Δημιουργήστε τον κατάλογο υπηρεσίας εικονικού κεντρικού υπολογιστή:
# mkdir /srv/YOUR-DOMAIN-NAME.com
Στο τέλος του /etc/httpd/conf/httpd.conf, συμπεριλάβετε καθένα από αυτά τα αρχεία διαμόρφωσης εικονικού κεντρικού υπολογιστή:
Include conf/vhosts/YOUR-DOMAIN-NAME.com
Επανεκκινήστε τον Apache:
# systemctl restart httpd
Τα αιτήματα που λαμβάνει ο Apache YOUR-DOMAIN-NAME.comθα εξυπηρετούνται από το /srv/YOUR-DOMAIN-NAME.com. Σημειώστε ότι τα αιτήματα προς τον Apache που δεν ταιριάζουν με μια συγκεκριμένη ServerNameή ServerAlias, απλώς τη διεύθυνση IP ή άλλο όνομα τομέα που επιλύεται στην IP σας, θα εξακολουθούν να προβάλλονται από τον πρώτο εικονικό κεντρικό υπολογιστή που περιλαμβάνεται. Τούτου λεχθέντος, θα πρέπει να εξακολουθείτε να θεωρείτε οτιδήποτε στο γενικό DocumentRoot, το οποίο είναι προεπιλεγμένο σε /srv/http, ως κατά κάποιο τρόπο προσβάσιμο.