a2ensite通过shell脚本

我创build了一个小脚本在我的服务器上添加网站,它看起来像这样:

#!/bin/bash echo "<VirtualHost *:80> ServerAdmin [email protected] ServerName $1 ServerAlias www.$1 DocumentRoot /var/www/$1/public_html ErrorLog ${APACHE_LOG_DIR}/error-$1.log CustomLog ${APACHE_LOG_DIR}/access-$1.log combined </VirtualHost>" > /etc/apache2/sites-available/$1.conf mkdir /var/www/$1 mkdir /var/www/$1/public_html/ a2ensite /etc/apache2/sites-available/$1.conf 

这工作正常。

我可以运行这个脚本作为./newsite example.com ,我得到我的文件example.com.confsites-available和一切。 但是当我运行a2ensite ,我有以下错误:

 ERROR: Site /etc/apache2/sites-available/example.com does not exist! 

这很奇怪,因为即使在我仍然得到这个错误之前,我创build了一个名为example.com.conf的文件。

有任何想法吗? 这是一个错误?

PS:只要sudoers就可以运行这个脚本。

你得到这个错误,因为你a2ensite通过你的网站configuration的完整path。 a2ensite期望只有一个网站名称被传递:

 a2ensite example.com