我创建了一个小脚本来在我的服务器上添加网站,它看起来像这样:
#!/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.conf
和sites-available
所有内容。但是当我运行时a2ensite
,出现以下错误:
ERROR: Site /etc/apache2/sites-available/example.com does not exist!
这很奇怪,因为即使我创建了一个名为的文件example.com.conf
,但仍然收到此错误。
有什么想法吗?这是一个错误吗?
PS:只有 sudoers 才被允许运行该脚本。
答案1
您收到该错误是因为a2ensite
您将完整路径传递给了您的站点配置。a2ensite
只需要传递一个站点名称:
a2ensite example.com