通过 shell 脚本进行 a2ensite

通过 shell 脚本进行 a2ensite

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

#!/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!

这很奇怪,因为即使我创建了一个名为的文件example.com.conf,但仍然收到此错误。

有什么想法吗?这是一个错误吗?

PS:只有 sudoers 才被允许运行该脚本。

答案1

您收到该错误是因为a2ensite您将完整路径传递给了您的站点配置。a2ensite只需要传递一个站点名称:

a2ensite example.com

相关内容