ການສ້າງ Apache Hosts ທີ່ມີຕົວເລືອກເປີດ/ປິດການໃຊ້ງານ Vhosts ໃນ RHEL/CentOS 7.0
ໂຮດຕິ້ງ Virtual ຊ່ວຍໃຫ້ Apache Weberver ສາມາດຮັບໃຊ້ເນື້ອຫາທີ່ແຕກຕ່າງກັນໂດຍອີງໃສ່ IP Address, hostname ຫຼືເບີ port ທີ່ໃຊ້ແລ້ວ. ຄູ່ມືນີ້ຈະໃຊ້ Debian ຄືກັບວິທີການໃນການເປີດໃຊ້ແລະຈັດການ Virtual Hosts ໃນ Red Hat Enterprise Linux/CentOS 7.0 ໂດຍສ້າງສອງລາຍຊື່ໃນເສັ້ນທາງ /etc/httpd/ ເຊິ່ງຈະ ຮັກສາການຕັ້ງຄ່າເອກະສານເວບໄຊທ໌ທີ່ຖືກເປີດໃຊ້ງານແລະປິດການໃຊ້ງານທັງ ໝົດ - ສະຖານທີ່ສາມາດໃຊ້ໄດ້ ແລະ ເປີດໃຊ້ເວັບໄຊ , ແລະສະຄຣິບສອງປະເພດເພື່ອເຮັດ ໜ້າ ທີ່ເປັນ ຄຳ ສັ່ງ, ເຊິ່ງສາມາດເຮັດໄດ້ແລະແບບອື່ນທີ່ປິດການໃຊ້ງານເສມືນ ເຈົ້າພາບ - a2ensite ແລະ a2dissite . ວິທີການນີ້ມີຂໍ້ໄດ້ປຽບບາງຢ່າງເພາະວ່າທ່ານໄດ້ເຮັດຕ້ອງໄດ້ລັງເລໃຈກັບເອກະສານການຕັ້ງຄ່າ httpd ແລະທຸກໆໂຮດຕິ້ງ virtual ມີເອກະສານການຕັ້ງຄ່າຂອງມັນເອງເຊິ່ງສາມາດພົບໄດ້ໃນສະຖານທີ່ດຽວ - ເຈົ້າພາບທີ່ເປີດໃຊ້ງານແມ່ນພຽງແຕ່ symlinks - ເຊິ່ງເຮັດໃຫ້ຂະບວນການເປີດໃຊ້ງານ, ປິດການໃຊ້ງານ, ການສ້າງຫລື ການລຶບພວກມັນສາມາດຄວບຄຸມໄດ້.
<
ສ້າງແລະຈັດການ Apache Virtual Hosts ໃນ RHEL/CentOS 7
1. ເພື່ອເລີ່ມຕົ້ນ, ເລີ່ມຕົ້ນໂດຍເຂົ້າໄປໃນເສັ້ນທາງ /etc/httpd/, ສ້າງເວັບໄຊທ໌ທີ່ສາມາດໃຊ້ໄດ້ແລະເວັບໄຊທ໌້ແລະສາມາດດັດແກ້ເອກະສານ Apache httpd.conf ເພື່ອ ນຳ ໃຊ້ແບບ ໃໝ່ ສະຖານທີ່ເວັບໄຊທ໌ທີ່ເປີດໃຊ້ງານ.
# cd /etc/httpd/ # mkdir sites-available sites-enabled # nano conf/httpd.conf
2. ໃນເອກະສານ httpd.conf ເພີ່ມເສັ້ນ ຄຳ ສັ່ງຕໍ່ໄປນີ້ຢູ່ທາງລຸ່ມຂອງເອກະສານ, ເຊິ່ງຈະເຮັດໃຫ້ Apache ອ່ານແລະແຍກໄຟລ໌ທັງ ໝົດ ທີ່ຕັ້ງຢູ່ໃນ /etc/httpd/sites-enabled/ ສິ້ນສຸດລົງໃນການຂະຫຍາຍ .conf .
IncludeOptional sites-enabled/*.conf
3. ໃນບາດກ້າວຕໍ່ໄປສ້າງ Virtual Host ໃໝ່ ໃນ ເວັບໄຊທ໌ ທີ່ຢູ່ ໃຊ້ຊື່ທີ່ພັນລະນາ - ໃນກໍລະນີນີ້ຂ້ອຍໄດ້ໃຊ້ rheltest.lan.conf - ແລະໃຊ້ file ດັ່ງຕໍ່ໄປນີ້ເປັນແມ່ແບບ.
# nano /etc/httpd/sites-available/rheltest.lan.conf
ໃຊ້ການຕັ້ງຄ່ານີ້ເປັນຄູ່ມື.
<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. ຖ້າທ່ານໄດ້ປ່ຽນສະຖານທີ່ DocumentRoot ທີ່ຢູ່ virtual host ຂອງທ່ານຕັ້ງແຕ່ເລີ່ມຕົ້ນ /var/www/html ໄປສູ່ເສັ້ນທາງອື່ນໃຫ້ແນ່ໃຈວ່າທ່ານຍັງສ້າງເສັ້ນທາງນີ້ເຊັ່ນກັນ.
# mkdir -p /var/www/rheltest.lan
ຫມາຍເຫດ: ຍັງຮັບປະກັນວ່າໂຮດ ServerName ແມ່ນບັນທຶກ DNS ທີ່ຖືກຕ້ອງຫຼືຖືກເພີ່ມເຂົ້າໃນເອກະສານເຈົ້າພາບຂອງເຄື່ອງຈັກໃນທ້ອງຖິ່ນຂອງທ່ານ, ຈາກບ່ອນທີ່ທ່ານວາງແຜນທີ່ຈະເຂົ້າເບິ່ງເວັບໄຊທ໌້.
5. ດຽວນີ້ເຖິງເວລາແລ້ວທີ່ຈະຕ້ອງສ້າງ script
ທ່ານສາມາດ ນຳ ໃຊ້ເສັ້ນທາງທີ່ສາມາດປະຕິບັດໄດ້ທີ່ຜົນໄດ້ຮັບຂອງຕົວປ່ຽນແປງລະບົບ.
ສ້າງແຟ້ມເອກະສານຕໍ່ໄປນີ້ກັບຕົວເລືອກບັນນາທິການຂອງທ່ານ.
# nano /usr/local/bin/a2ensite
ຕື່ມສະຄິບຕໍ່ໄປນີ້ໃສ່ມັນ.
#!/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
ສ້າງແຟ້ມເອກະສານຕໍ່ໄປນີ້ກັບຕົວເລືອກບັນນາທິການຂອງທ່ານ.
# nano /usr/local/bin/a2dissite
ເພີ່ມສະຄິບຕໍ່ໄປທັງ ໝົດ ໃສ່ແຟ້ມ.
#!/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. ຫຼັງຈາກທີ່ທັງສອງໄຟລ໌ script ໄດ້ຖືກສ້າງຂື້ນມາ, ໃຫ້ແນ່ໃຈວ່າມັນສາມາດປະຕິບັດໄດ້ແລະເລີ່ມຕົ້ນໃຊ້ພວກມັນເພື່ອ ເປີດໃຊ້ ຫຼື ປິດ ເຈົ້າພາບ virtual ໂດຍເພີ່ມຊື່ vhost ເປັນພາລາມິເຕີ ຄຳ ສັ່ງ.
# chmod +x /usr/local/bin/a2* # a2ensite vhost_name # a2disite vhost_name
7. ເພື່ອທົດສອບມັນ, ໃຫ້ເຈົ້າພາບເສມືນທີ່ຖືກສ້າງຂື້ນກ່ອນ ໜ້າ ນີ້, ເລີ່ມການບໍລິການ Apache ແລະເປີດ browser ໂດຍກົງໃຫ້ກັບ virtual host ໃໝ່ - ໃນກໍລະນີນີ້ http://rheltest.lan .
# a2ensite rheltest.lan # systemctl restart httpd
ນັ້ນແມ່ນມັນ! ຕອນນີ້ທ່ານສາມາດໃຊ້ a2eniste ແລະ a2dissite bash scripts ເປັນ ຄຳ ສັ່ງຂອງລະບົບເພື່ອຈັດການເອກະສານ Apache Vhosts ໃນ RHEL/CentOS 7.0.