Δημιουργία εικονικών κεντρικών υπολογιστών Apache με Ενεργοποίηση/Απενεργοποίηση επιλογών Vhosts στο RHEL/CentOS 7.0


Η Εικονική φιλοξενία επιτρέπει στον Apache Weberver να προβάλλει διαφορετικό περιεχόμενο με βάση τη διεύθυνση IP, το όνομα κεντρικού υπολογιστή ή τον αριθμό θύρας που χρησιμοποιείται. Αυτός ο οδηγός θα χρησιμοποιήσει μια προσέγγιση όπως το Debian για την ενεργοποίηση και διαχείριση των εικονικών κεντρικών υπολογιστών στο Red Hat Enterprise Linux/CentOS 7.0 δημιουργώντας δύο καταλόγους στη διαδρομή /etc/httpd/, οι οποίες θα διατηρήστε όλες τις ενεργοποιημένες και απενεργοποιημένες διαμορφώσεις αρχείων ιστότοπου – διαθέσιμοι ιστότοποι και ενεργοποιημένοι ιστότοποι, και δύο τύπους σεναρίων για να λειτουργούν ως εντολές, ένα που ενεργοποιεί και άλλο που απενεργοποιεί καθορισμένα εικονικά κεντρικοί υπολογιστές – a2ensite και a2dissite. Αυτή η προσέγγιση έχει ορισμένα πλεονεκτήματα, επειδή πρέπει να μπλέξετε με το αρχείο διαμόρφωσης httpd και κάθε εικονικός κεντρικός υπολογιστής έχει το δικό του αρχείο διαμόρφωσης που μπορεί να βρεθεί σε μία τοποθεσία – οι ενεργοποιημένοι κεντρικοί υπολογιστές είναι απλώς συμβολικοί σύνδεσμοι – που κάνουν τη διαδικασία ενεργοποίησης, απενεργοποίησης, δημιουργίας ή η διαγραφή τους είναι πολύ διαχειρίσιμη.

Απαιτήσεις

  1. Βασική εγκατάσταση LAMP σε RHEL/CentOS 7.0

Δημιουργία και διαχείριση εικονικών κεντρικών υπολογιστών Apache στο RHEL/CentOS 7

1. Για να ξεκινήσετε, ξεκινήστε εισάγοντας στη διαδρομή /etc/httpd/, δημιουργήστε καταλόγους διαθέσιμων τοποθεσιών και ενεργοποιημένων τοποθεσιών και επεξεργαστείτε το Apache httpd.conf για την εφαρμογή της νέας ενεργοποιημένης τοποθεσίας ιστοτόπων.

cd /etc/httpd/
mkdir sites-available sites-enabled
nano conf/httpd.conf

2. Στο αρχείο httpd.conf προσθέστε την ακόλουθη γραμμή οδηγιών στο κάτω μέρος του αρχείου, η οποία θα κάνει τον Apache να διαβάσει και να αναλύσει όλα τα αρχεία που βρίσκονται στο /etc/ httpd/sites-enabled/ κατέληγε σε επέκταση .conf.

IncludeOptional sites-enabled/*.conf

3. Στο επόμενο βήμα δημιουργήστε έναν νέο εικονικό κεντρικό υπολογιστή σε διαθέσιμους ιστότοπους χρησιμοποιώντας ένα περιγραφικό όνομα – σε αυτήν την περίπτωση έχω χρησιμοποιήσει rheltest.lan.conf – και χρησιμοποιήστε το παρακάτω αρχείο ως πρότυπο.

nano /etc/httpd/sites-available/rheltest.lan.conf

Χρησιμοποιήστε αυτήν τη διαμόρφωση ως οδηγό.

<VirtualHost *:80>
        ServerName rheltest.lan
        DocumentRoot "/var/www/rheltest.lan"
                <Directory "/var/www/rheltest.lan">
                Options Indexes FollowSymLinks MultiViews
         # AllowOverride controls what directives may be placed in .htaccess files.      
                        AllowOverride All
        # Controls who can get stuff from this server file
                        Order allow,deny
                        Allow from all
           </Directory>
        <IfModule mpm_peruser_module>
                ServerEnvironment apache apache
        </IfModule>
        ErrorLog  /var/log/httpd/rheltest.lan-error.log
        CustomLog /var/log/httpd/rheltest.lan-access.log combined
</VirtualHost>

4. Εάν αλλάξατε τη θέση DocumentRoot στον εικονικό σας κεντρικό υπολογιστή από προεπιλεγμένη /var/www/html σε άλλη διαδρομή, βεβαιωθείτε ότι έχετε δημιουργήσει επίσης αυτήν τη διαδρομή .

mkdir -p /var/www/rheltest.lan

ΣΗΜΕΙΩΣΗ: Βεβαιωθείτε επίσης ότι ο κεντρικός υπολογιστής ServerName είναι έγκυρη εγγραφή DNS ή προστίθεται στο αρχείο κεντρικών υπολογιστών των τοπικών μηχανημάτων, από όπου σκοπεύετε να επισκεφτείτε τον ιστότοπο.

5. Τώρα ήρθε η ώρα να δημιουργήσετε σενάρια bash a2ensite και a2dissite σε μια εκτελέσιμη διαδρομή συστήματος – σε αυτήν την περίπτωση είναι /usr/local /bin/ – αλλά
μπορείτε να χρησιμοποιήσετε οποιαδήποτε εκτελέσιμη διαδρομή που εξάγει τη μεταβλητή του συστήματος ` PATH.

Δημιουργία σεναρίου a2ensite

Δημιουργήστε ένα παρακάτω αρχείο με τον επεξεργαστή της επιλογής σας.

nano /usr/local/bin/a2ensite

Προσθέστε το ακόλουθο σενάριο σε αυτό.

#!/bin/bash
if test -d /etc/httpd/sites-available && test -d /etc/httpd/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/httpd/sites-available
mkdir /etc/httpd/sites-enabled
fi

avail=/etc/httpd/sites-available/$1.conf
enabled=/etc/httpd/sites-enabled/
site=`ls /etc/httpd/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: a2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else

echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi
if test -e $enabled/$1.conf; then

echo "Success!! Now restart Apache server: sudo systemctl restart httpd"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

Δημιουργία σεναρίου a2dissite

Δημιουργήστε ένα παρακάτω αρχείο με τον επεξεργαστή της επιλογής σας.

nano /usr/local/bin/a2dissite

Προσθέστε ολόκληρο το ακόλουθο σενάριο στο αρχείο.

#!/bin/bash
avail=/etc/httpd/sites-enabled/$1.conf
enabled=/etc/httpd/sites-enabled
site=`ls /etc/httpd/sites-enabled/`

if [ "$#" != "1" ]; then
                echo "Use script: a2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else

if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Apache: sudo systemctl restart httpd"
exit 0
fi
fi

6. Αφού δημιουργηθούν και τα δύο αρχεία σεναρίου, βεβαιωθείτε ότι είναι εκτελέσιμα και αρχίστε να τα χρησιμοποιείτε για ενεργοποίηση ή απενεργοποίηση εικονικών κεντρικών υπολογιστών προσθέτοντας όνομα vhost ως παράμετρος εντολής.

chmod +x /usr/local/bin/a2*
a2ensite vhost_name
a2disite vhost_name

7. Για να το δοκιμάσετε, ενεργοποιήστε τον εικονικό κεντρικό υπολογιστή που δημιουργήθηκε νωρίτερα, επανεκκινήστε την υπηρεσία Apache και κατευθύνετε το πρόγραμμα περιήγησης στον νέο εικονικό κεντρικό υπολογιστή – σε αυτήν την περίπτωση http://rheltest.lan.

a2ensite rheltest.lan
systemctl restart httpd

Αυτό είναι! Τώρα μπορείτε να χρησιμοποιήσετε τα σενάρια bash a2eniste και a2dissite ως εντολές συστήματος για να διαχειριστείτε το αρχείο Apache Vhosts στο RHEL/CentOS 7.0.