Apache virtuālo saimnieku izveide, izmantojot iespējot/atspējot Vhosts opcijas RHEL/CentOS 7.0


Virtuālais mitināšana ļauj Apache Weberver apkalpot atšķirīgu saturu, pamatojoties uz IP adresi, resursdatora nosaukumu vai izmantoto porta numuru. Šajā rokasgrāmatā tiks izmantota Debian veida pieeja virtuālo saimnieku iespējošanai un pārvaldībai Red Hat Enterprise Linux/CentOS 7.0, izveidojot divus direktorijus ceļā /etc/httpd/, saglabāt visas iespējotās un atspējotās vietņu failu konfigurācijas - vietnes ir pieejamas un vietnēm iespējotas , kā arī divu veidu skripti, kas darbojas kā komandas - viens, kas iespējo un cits, kas atspējo norādīto virtuālo resursdatori - a2ensite un a2dissite . Šai pieejai ir dažas priekšrocības, jo jums patiešām ir jājaucas ar httpd konfigurācijas failu, un katram virtuālajam resursdatoram ir savs konfigurācijas fails, kuru var atrast vienā vietā - iespējotie resursdatori ir tikai saites - kas ļauj iespējot, atspējot, izveidot vai izveidot procesu. izdzēšot tos ļoti viegli.

  1. LAMP pamata instalēšana RHEL/CentOS 7.0 versijā

Izveidojiet un pārvaldiet Apache virtuālos resursdatorus RHEL/CentOS 7

1. Vispirms sāciet ievadot ceļu /etc/httpd/, izveidojiet vietnēs pieejamus un vietnēm iespējotus direktorijus un rediģējiet Apache httpd.conf failu, lai lietotu jauno iespējota vietņu atrašanās vieta.

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

2. Failā httpd.conf pievienojiet šādu direktīvas rindiņu faila apakšdaļā, kas liks Apache lasīt un parsēt visus failus, kas atrodas /etc/httpd/sites-enabled/ beidzās ar paplašinājumu .conf .

IncludeOptional sites-enabled/*.conf

3. Nākamajā solī izveidojiet jaunu virtuālo resursdatoru vietnē pieejamās vietnes , izmantojot aprakstošu nosaukumu - šajā gadījumā es izmantoju vietni rheltest.lan.conf un izmantojiet sekojošais fails kā veidne.

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

Izmantojiet šo konfigurāciju kā ceļvedi.

<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. Ja mainījāt DocumentRoot atrašanās vietu virtuālajā resursdatorā no noklusējuma /var/www/html uz citu ceļu, noteikti izveidojiet arī šo ceļu.

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

PIEZĪME. Pārliecinieties arī, ka ServerName resursdators ir derīgs DNS ieraksts vai ir pievienots vietējo mašīnu resursdatora failam, no kura jūs plānojat apmeklēt vietni.

5. Tagad ir laiks izveidot izpildāmās sistēmas ceļā a2ensite un a2dissite bash skriptus - šajā gadījumā tas ir /usr/local/bin/- bet
varat izmantot jebkuru izpildāmo ceļu, kuru izvada $PATH sistēmas mainīgais.

Izveidojiet šādu failu ar redaktora izvēli.

# nano /usr/local/bin/a2ensite

Pievienojiet tam šādu skriptu.

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

Izveidojiet šādu failu ar redaktora izvēli.

# nano /usr/local/bin/a2dissite

Pievienojiet failam visu šo skriptu.

#!/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. Kad abi skripta faili ir izveidoti, pārliecinieties, vai tie ir izpildāmi, un sāciet tos izmantot, lai iespējotu vai atspējotu virtuālos resursdatorus, pievienojot vhost nosaukumu kā komandas parametru.

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

7. Lai to pārbaudītu, iespējojiet iepriekš izveidoto virtuālo resursdatoru, restartējiet Apache pakalpojumu un novirziet pārlūku uz jauno virtuālo resursdatoru - šajā gadījumā http://rheltest.lan .

# a2ensite rheltest.lan
# systemctl restart httpd

Tieši tā! Tagad jūs varat izmantot a2eniste un a2dissite bash skriptus kā sistēmas komandas, lai pārvaldītu Apache Vhosts failu RHEL/CentOS 7.0.