Ħolqien ta' Apache Hosts Virtwali b'Għażliet ta' Attiva/Iżżid Vhosts f'RHEL/CentOS 7.0


Virtwali Hosting jippermetti lil Apache Weberver iservi kontenut differenti bbażat fuq l-Indirizz IP, l-isem tal-host jew in-numru tal-port użat. Din il-gwida se tuża approċċ bħal Debian dwar l-attivazzjoni u l-ġestjoni tal-Hosts Virtwali fuq Red Hat Enterprise Linux/CentOS 7.0 billi toħloq żewġ direttorji fuq il-passaġġ /etc/httpd/, li se żomm il-konfigurazzjonijiet kollha tal-fajls tal-websajt attivati u diżabilitati – siti-disponibbli u siti-enabled, u żewġ tipi ta’ skripts biex jaġixxu bħala kmandi, waħda li tippermetti u oħra li tiddiżattiva virtwali speċifikata hosts – a2ensite u a2dissite. Dan l-approċċ għandu xi vantaġġi għaliex inti għandek tħawwad mal-fajl ta 'konfigurazzjoni httpd u kull host virtwali għandu l-fajl ta' konfigurazzjoni tiegħu stess li jista 'jinstab f'post wieħed - hosts attivati huma biss symlinks - li jagħmlu l-proċess ta' abilitazzjoni, diżattivazzjoni, ħolqien jew tħassirhom maniġġabbli ħafna.

  1. LAMP Installazzjoni Bażika fuq RHEL/CentOS 7.0

Oħloq u Immaniġġja Apache Hosts Virtwali f'RHEL/CentOS 7

1. Biex tibda, ibda billi ddaħħal fit-triq /etc/httpd/, oħloq direttorji disponibbli għal siti u ppermettiet għal siti u editja l-fajl Apache httpd.conf biex tapplika l-ġdida lokalità tal-websajts ppermettiet.

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

2. Fuq il-fajl httpd.conf żid il-linja tad-direttiva li ġejja fil-qiegħ tal-fajl, li tagħmel Apache jaqra u jparsa l-fajls kollha li jinsabu fuq /etc/httpd/sites-enabled/ ntemmet fl-estensjoni .conf.

IncludeOptional sites-enabled/*.conf

3. Fil-pass li jmiss oħloq Ospitanti Virtwali ġdid f'lokazzjoni siti-disponibbli billi tuża isem deskrittiv – f'dan il-każ użajt rheltest.lan.conf – u uża l- fajl li ġej bħala mudell.

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

Uża din il-konfigurazzjoni bħala gwida.

<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. Jekk bdilt il-post DocumentRoot fuq il-host virtwali tiegħek minn default /var/www/html għal mogħdija oħra kun żgur li toħloq ukoll din it-triq.

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

NOTA: Żgura wkoll li l-host ServerName huwa rekord DNS validu jew huwa miżjud mal-fajl tal-hosts tal-magni lokali tiegħek, minn fejn qed tippjana li żżur il-websajt.

5. Issa wasal iż-żmien li toħloq skripts bash a2ensite u a2dissite fuq mogħdija tas-sistema eżekutibbli – f'dan il-każ hija /usr/local/bin/ – imma
inti tista 'tuża kwalunkwe mogħdija eżekutibbli li PATH outputs varjabbli tas-sistema.

Oħloq fajl li ġej bl-għażla tiegħek tal-editur.

# nano /usr/local/bin/a2ensite

Żid l-iskrittura li ġejja magħha.

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

Oħloq fajl li ġej bl-għażla tiegħek tal-editur.

# nano /usr/local/bin/a2dissite

Żid l-iskrittura kollha li ġejja mal-fajl.

#!/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. Wara li nħolqu ż-żewġ fajls tal-iskript, kun żgur li huma eżekutibbli u ibda tużahom biex ippermetti jew jiskonnettja hosts virtwali billi tehmeż l-isem tal-vhost bħala parametru tal-kmand.

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

7. Biex tittestjah, ppermetti l-host virtwali maħluq qabel, erġa ibda s-servizz Apache u dirett browser għall-host virtwali l-ġdid - f'dan il-każ http://rheltest.lan.

# a2ensite rheltest.lan
# systemctl restart httpd

Dak hu! Issa tista 'tuża skripts bash a2eniste u a2dissite bħala kmandi tas-sistema biex timmaniġġja l-fajl Apache Vhosts fuq RHEL/CentOS 7.0.