RHEL/CentOS 7.0'da Vhost'ları Etkinleştirme/Devre Dışı Bırakma Seçenekleri ile Apache Sanal Konakları Oluşturma


Sanal Barındırma, Apache Weberver'ın IP Adresine, ana bilgisayar adına veya kullanılan bağlantı noktası numarasına göre farklı içerik sunmasına olanak tanır. Bu kılavuz, /etc/httpd/ yolunda iki dizin oluşturarak, Red Hat Enterprise Linux/CentOS 7.0'da Sanal Ana Bilgisayarları etkinleştirme ve yönetme konusunda Debian benzeri bir yaklaşım kullanacaktır. tüm etkin ve devre dışı web sitesi dosya yapılandırmalarını (siteler-kullanılabilir ve siteler-etkin) ve komut görevi görecek iki tür komut dosyasını (biri belirtilen sanal ortamı etkinleştiren, diğeri devre dışı bırakan) saklayın ana bilgisayarlar – a2ensite ve a2dissite. Bu yaklaşımın bazı avantajları vardır, çünkü httpd yapılandırma dosyasıyla uğraşmak zorunda kalmazsınız ve her sanal ana bilgisayarın tek bir konumda bulunabilen kendi yapılandırma dosyası vardır - etkinleştirilmiş ana bilgisayarlar yalnızca sembolik bağlantılardır - bu da etkinleştirme, devre dışı bırakma, oluşturma veya oluşturma işlemini gerçekleştirir. onları silmek çok kolay.

Gereksinimler

  1. RHEL/CentOS 7.0'da LAMP Temel Kurulumu

RHEL/CentOS 7'de Apache Sanal Konaklarını Oluşturun ve Yönetin

1. Başlamak için /etc/httpd/ yoluna girerek başlayın, sitelerin kullanabileceği ve sitelerin etkin olduğu dizinler oluşturun ve Apache httpd.conf'u düzenleyin. b> yeni etkinleştirilmiş web sitesi konumunu uygulamak için dosya.

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

2. httpd.conf dosyasında, dosyanın altına aşağıdaki yönerge satırını ekleyin; bu, Apache'nin /etc/ dizininde bulunan tüm dosyaları okumasını ve ayrıştırmasını sağlayacaktır. httpd/sites-enabled/, .conf uzantısıyla sona erdi.

IncludeOptional sites-enabled/*.conf

3. Bir sonraki adımda, açıklayıcı bir ad kullanarak sitelerin bulunduğu konumda yeni bir Sanal Ana Bilgisayar oluşturun - bu durumda rheltest.lan.conf< kullandım – ve aşağıdaki dosyayı şablon olarak kullanın.

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

Bu yapılandırmayı kılavuz olarak kullanın.

<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. Sanal ana makinenizdeki DocumentRoot konumunu varsayılan /var/www/html konumundan başka bir yola değiştirdiyseniz, bu yolu da oluşturduğunuzdan emin olun. .

mkdir -p /var/www/rheltest.lan

NOT: Ayrıca SunucuAdı ana bilgisayarının geçerli bir DNS kaydı olduğundan veya web sitesini ziyaret etmeyi planladığınız yerden yerel makinenizin ana bilgisayar dosyasına eklendiğinden emin olun.

5. Şimdi yürütülebilir bir sistem yolunda a2ensite ve a2dissite bash komut dosyaları oluşturmanın zamanı geldi – bu durumda /usr/local /bin/ – ama
` PATH sistem değişkeninin çıkardığı herhangi bir yürütülebilir yolu kullanabilirsiniz.

a2ensite Komut Dosyası Oluşturun

Seçtiğiniz editörle aşağıdaki dosyayı oluşturun.

nano /usr/local/bin/a2ensite

Aşağıdaki scripti buna ekleyin.

#!/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 Komut Dosyası Oluşturun

Seçtiğiniz editörle aşağıdaki dosyayı oluşturun.

nano /usr/local/bin/a2dissite

Aşağıdaki betiğin tamamını dosyaya ekleyin.

#!/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. Her iki komut dosyası da oluşturulduktan sonra, çalıştırılabilir olduklarından emin olun ve sanal ana bilgisayarları etkinleştirmek veya devre dışı bırakmak için sanal ana bilgisayar adını ekleyerek bunları kullanmaya başlayın. komut parametresi olarak.

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

7. Bunu test etmek için, daha önce oluşturulan sanal ana bilgisayarı etkinleştirin, Apache hizmetini yeniden başlatın ve tarayıcıyı yeni sanal ana bilgisayara (bu durumda http://rheltest.lan) yönlendirin.

a2ensite rheltest.lan
systemctl restart httpd

Bu kadar! Artık RHEL/CentOS 7.0'da Apache Vhosts dosyasını yönetmek için a2eniste ve a2dissite bash komut dosyalarını sistem komutları olarak kullanabilirsiniz.