Að búa til Apache sýndargestgjafa með virkja/slökkva á Vhosts valkostum í RHEL/CentOS 7.0


Virtual Hosting gerir Apache Weberver kleift að þjóna mismunandi efni byggt á IP tölu, hýsingarheiti eða notaðu gáttarnúmeri. Þessi handbók mun nota Debian svipaða nálgun við að virkja og stjórna sýndarhýsingum á Red Hat Enterprise Linux/CentOS 7.0 með því að búa til tvær möppur á /etc/httpd/ slóðinni, sem mun Haltu öllum virkum og óvirkum vefsíðuskráastillingum – sites-available og sites-enabled, og tvenns konar forskriftum til að virka sem skipanir, ein sem virkjar og önnur sem slekkur á tilgreindum sýndarforritum vélar – a2ensite og a2dissite. Þessi nálgun hefur nokkra kosti vegna þess að þú hefur þurft að skipta þér af httpd stillingarskránni og sérhver sýndargestgjafi hefur sína eigin stillingarskrá sem er að finna á einum stað - virkir gestgjafar eru bara samtengingar - sem gera ferlið við að virkja, slökkva, búa til eða eyða þeim mjög viðráðanlegt.

  1. LAMP Basic Uppsetning á RHEL/CentOS 7.0

Búðu til og stjórnaðu Apache sýndarhýsingum í RHEL/CentOS 7

1. Til að byrja, byrjaðu á því að slá inn /etc/httpd/ slóð, búðu til möppur sem eru tiltækar og virkar fyrir vefsvæði og breyttu Apache httpd.conf skránni til að nota nýju staðsetning vefsvæða virkt.

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

2. Á httpd.conf skrá bætið við eftirfarandi leiðbeiningarlínu neðst í skránni, sem mun láta Apache lesa og flokka allar skrár sem staðsettar eru á /etc/httpd/sites-enabled/ endaði á .conf endingunni.

IncludeOptional sites-enabled/*.conf

3. Í næsta skrefi skaltu búa til nýjan sýndargestgjafa á aðgengilegum síðum staðsetningu með því að nota lýsandi nafn – í þessu tilfelli hef ég notað rheltest.lan.conf – og notaðu eftirfarandi skrá sem sniðmát.

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

Notaðu þessa stillingu sem leiðbeiningar.

<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. Ef þú breyttir DocumentRoot staðsetningu á sýndarhýslinum þínum úr sjálfgefna /var/www/html í aðra slóð, vertu viss um að þú býrð líka til þessa slóð.

# mkdir -p /var/www/rheltest.lan

ATHUGIÐ: Gakktu úr skugga um að ServerName gestgjafi sé gild DNS skrá eða sé bætt við vélarskrána þína á staðnum, þaðan sem þú ætlar að heimsækja vefsíðuna.

5. Nú er kominn tími til að búa til a2ensite og a2dissite bash forskriftir á keyranlega kerfisslóð – í þessu tilfelli er /usr/local/bin/ – en
þú getur notað hvaða keyrsluslóð sem er sem PATH kerfisbreytu gefur út.

Búðu til eftirfarandi skrá með vali ritstjóra.

# nano /usr/local/bin/a2ensite

Bættu eftirfarandi handriti við það.

#!/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

Búðu til eftirfarandi skrá með vali ritstjóra.

# nano /usr/local/bin/a2dissite

Bættu öllu eftirfarandi handriti við skrána.

#!/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. Eftir að báðar skriftuskrárnar hafa verið búnar til skaltu ganga úr skugga um að þær séu keyranlegar og byrja að nota þær til að virkja eða slökkva á sýndarhýslum með því að bæta vhost nafni við sem skipunarfæribreytu.

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

7. Til að prófa það, virkjaðu sýndarhýsilinn sem var búinn til áður, endurræstu Apache þjónustuna og beindu vafrann að nýja sýndarhýslinum – í þessu tilviki http://rheltest.lan.

# a2ensite rheltest.lan
# systemctl restart httpd

Það er það! Nú geturðu notað a2eniste og a2dissite bash forskriftir sem kerfisskipanir til að stjórna Apache Vhosts skrá á RHEL/CentOS 7.0.