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
- 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.