Kuunda Vipangishi vya Apache Virtual na Washa/Zima Chaguzi za Vhosts katika RHEL/CentOS 7.0


Upangishaji Mtandaoni huruhusu Apache Weberver kutoa maudhui tofauti kulingana na Anwani ya IP, jina la mpangishaji au nambari ya mlango iliyotumika. Mwongozo huu utatumia mbinu ya Debian kama kuwezesha na kudhibiti Mapangishi Mtandaoni kwenye Red Hat Enterprise Linux/CentOS 7.0 kwa kuunda saraka mbili kwenye /etc/httpd/ njia, ambayo weka usanidi wote wa faili za tovuti uliowezeshwa na kuzimwa - tovuti zinazopatikana na tovuti zinazowezeshwa, na aina mbili za hati kufanya kazi kama amri, moja inayowasha na nyingine ambayo inalemaza mtandao uliobainishwa. wapangishi - a2ensite na a2dissite. Mbinu hii ina faida kadhaa kwa sababu lazima uvuruge na faili ya usanidi ya httpd na kila seva pangishi pepe ina faili yake ya usanidi ambayo inaweza kupatikana kwenye eneo moja - wapaji waliowezeshwa ni ulinganifu tu - ambao hufanya mchakato wa kuwezesha, kulemaza, kuunda au kuzifuta zinaweza kudhibitiwa sana.

  1. Usakinishaji Msingi wa LAMP kwenye RHEL/CentOS 7.0

Unda na Udhibiti Wapangishi wa Apache Virtual katika RHEL/CentOS 7

1. Kuanza, anza kwa kuingia kwenye /etc/httpd/ njia, unda saraka zinazopatikana na tovuti zinazowezeshwa na uhariri faili ya Apache httpd.conf ili kutumia mpya. eneo la tovuti lililowezeshwa.

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

2. Kwenye faili ya httpd.conf ongeza mstari wa maelekezo ufuatao chini ya faili, ambayo itafanya Apache kusoma na kuchanganua faili zote zilizo kwenye /etc/httpd/sites-enabled/ iliishia kwa .conf kiendelezi.

IncludeOptional sites-enabled/*.conf

3. Katika hatua inayofuata unda Seva mpya ya Virtual kwenye tovuti zinazopatikana mahali ukitumia jina la maelezo - katika kesi hii nimetumia rheltest.lan.conf - na kutumia kufuata faili kama kiolezo.

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

Tumia usanidi huu kama mwongozo.

<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. Ikiwa ulibadilisha DocumentRoot eneo kwenye seva pangishi pepe kutoka chaguomsingi /var/www/html hadi njia nyingine hakikisha pia umeunda njia hii.

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

KUMBUKA: Pia hakikisha kuwa seva pangishi ya ServerName ni rekodi halali ya DNS au imeongezwa kwenye faili ya wapangishi wa mashine za karibu nawe, kutoka ambapo unapanga kutembelea tovuti.

5. Sasa ni wakati wa kuunda a2ensite na a2dissite hati za bash kwenye njia ya mfumo inayoweza kutekelezwa - katika kesi hii ni /usr/local/bin/ – lakini
unaweza kutumia njia yoyote inayoweza kutekelezwa ambayo PATH matokeo ya kutofautisha ya mfumo.

Unda faili ifuatayo na chaguo lako la kihariri.

# nano /usr/local/bin/a2ensite

Ongeza maandishi yafuatayo kwake.

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

Unda faili ifuatayo na chaguo lako la kihariri.

# nano /usr/local/bin/a2dissite

Ongeza maandishi yote yafuatayo kwenye faili.

#!/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. Baada ya faili zote mbili za hati kuundwa, hakikisha kuwa zinatekelezeka na uanze kuzitumia kuwasha au kuzima wapangishi pepe kwa kuambatisha jina la vhost kama kigezo cha amri.

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

7. Ili kuijaribu, washa seva pangishi pepe iliyoundwa mapema, anzisha upya huduma ya Apache na uelekeze kivinjari kwa seva pangishi pepe mpya - katika kesi hii http://rheltest.lan.

# a2ensite rheltest.lan
# systemctl restart httpd

Ni hayo tu! Sasa unaweza kutumia a2eniste na a2dissite hati za bash kama maagizo ya mfumo ili kudhibiti faili ya Apache Vhosts kwenye RHEL/CentOS 7.0.