Создаем генератор настроек по шаблону gen-xampp-hosts.sh в /home/username
содержимое файла
read -p "Enter your host [new.local]: " hosthost=${host:-new}echo "make keys $host"sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout "$host.key" -out "$host.crt"
echo "Install certs ..."
sudo cp *.key /opt/lampp/etc/ssl.key/
sudo cp *.crt /opt/lampp/etc/ssl.crt/
echo "Append to vhosts..."sed -e "s/host/${host}/g" <vhosts.template > temp.confcat temp.conf | sudo tee -a /opt/lampp/etc/extra/httpd-vhosts.confecho "127.0.0.1 $host.local" | sudo tee -a /etc/hostsecho "127.0.0.1 www.$host.local" | sudo tee -a /etc/hosts
Даем исполняемые права и запускаем
chmod +x gen-xampp-hosts.sh sudo ./gen-xampp-hosts.sh
Примечание - конфигурация будет дописана в конец файла
/opt/lampp/etc/extra/httpd-vhosts.conf
Ключи ssh будут размещены в соответствующих каталогах
/opt/lampp/etc/ssl.crt и /opt/lampp/etc/ssl.key
Используя возможности dialog, можно переделать сценарий для псевдографического стиля
clearhost=$(dialog --title "Add new virtual host" --backtitle "Host name: " --inputbox "" 8 180 2>&1 >/dev/tty)if [ -n "$host" ]; thendialog --title "1/3" --msgbox "Install certs for $host.local" 6 44clearsudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout "$host.key" -out "$host.crt"cp *.key /opt/lampp/etc/ssl.key/cp *.crt /opt/lampp/etc/ssl.crt/dialog --title "2/3" --msgbox "Write Apache conf for $host.local" 6 44clearsed -e "s/host/${host}/g" <vhosts.template > temp.confcat temp.conf | sudo tee -a /opt/lampp/etc/extra/httpd-vhosts.confdialog --title "3/3" --msgbox "Changes /etc/hosts for $host.local" 6 44clearecho "127.0.0.1 $host.local" | sudo tee -a /etc/hostsecho "127.0.0.1 www.$host.local" | sudo tee -a /etc/hostsdialog --title "All done" --msgbox "Restart Apache using /opt/lampp/xampp" 6 44clearelsedialog --title "Cancel operation" --msgbox "No changes was made" 6 44clearfi
5. В рабочей среде gnome или kde можно использовать gdialog и kdialog соответственно, что потребует незначительной переделки сценария, например,host=$(kdialog --title "Ввод информации" --inputbox "Адрес хоста" "new");if [ -n "$host" ]; thenkdialog --title "1/3" --msgbox "Install certs for $host.local" 6 44sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout "$host.key" -out "$host.crt"sudo cp *.key /opt/lampp/etc/ssl.key/sudo cp *.crt /opt/lampp/etc/ssl.crt/kdialog --title "2/3" --msgbox "Write Apache conf for $host.local" 6 44sed -e "s/host/${host}/g" <vhosts.template > temp.confcat temp.conf | sudo tee -a /opt/lampp/etc/extra/httpd-vhosts.confkdialog --title "3/3" --msgbox "Changes /etc/hosts for $host.local" 6 44echo "127.0.0.1 $host.local" | sudo tee -a /etc/hostsecho "127.0.0.1 www.$host.local" | sudo tee -a /etc/hostskdialog --title "All done" --msgbox "Restart Apache using /opt/lampp/xampp" 6 44elsekdialog --title "Cancel operation" --msgbox "No changes was made" 6 44fi