Yeni bir kullanıcı ekleyen ve kullanıcıların etki alanı adı için sanal bir ana bilgisayar oluşturan bir komut dosyası var. Komut dosyası, / etc / apache2 / sites-available / içindeki bir istisna dışında harika çalışıyor. Tüm sanal ana bilgisayar dosyalarımın biri e ve diğeri olmadan iki kopyası var.
Sorunumun SED komutunu kullandığımda yattığına inanıyorum. İkinci bir görüş alabilir miyim?
İşte senaryo:
# set the working directory
dir=$(pwd)
# request the new domain name
printf "Enter the new domain name, without the www (i.e newdomain.com):\n"
read newdomain
# request the new username
printf "Enter the new username (i.e newusername):\n"
read username
# create the new user
sudo adduser $username
# copy the virtual host to sites-available
sudo cp /templates/domain-vhost /etc/apache2/sites-available/$newdomain
# echo results
echo "Successfully created the virtual host file at: /etc/apache2/sites-available/$newdomain.."
# change the domain name in the virtual host file
sudo sed -ie "s/NEWDOMAINNAME/$newdomain/" /etc/apache2/sites-available/$newdomain
# echo results
echo "Modified the virtual host to reflect the new domain: $newdomain.."
# change the directory path in the virtual host
sudo sed -ie "s/NEWUSERNAME/$username/" /etc/apache2/sites-available/$newdomain
# echo results
echo "Successfully modified the new virtual host file.."
# enable the site with apache
cd /etc/apache2/sites-available/
sudo a2ensite $newdomain
# echo results
echo "Successfully enabled the $newdomain.."
# change to previous working directory
cd $dir
# reload apache
sudo /etc/init.d/apache2 reload
# notify user of action
echo "Finished creating the new domain, $newdomain, and restarted Apache.."
3
Maalesef, hatamı fark ettiğimi yazdıktan sonra, SED komutunu kullanırken "inline" dosyasını kopya oluşturmadan düzenlemek için -i seçeneğim vardı. Bazı nedenlerden dolayı betiği de eklemesi gereken e komutunu da ekledim. -İe'yi -i olarak değiştirdim ve komut dosyası gerektiği gibi çalışıyor. Henüz kendi sorumu cevaplayamıyorum, bu yüzden bir yorum ekledim.
—
jason.dot.h