我在/etc/apache2/sites下有cmsplus.dev -可用以下代码,

<VirtualHost *:80>
    ServerAdmin master@server.com
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

现在当我使用sudo /usr/sbin/a2ensite cmsplus.dev时,我得到了错误,

ERROR: Site cmsplus.dev does not exist!

我的web服务器Apache/2.4.6 (Ubuntu)

如何解决这个问题?


当前回答

所以. . 最快的方法是重命名以“。conf”结尾的站点配置名称

mv /etc/apache2/sites-available/mysite /etc/apache2/sites-available/mysite.conf

a2ensite mysite.conf

关于以前意见的其他说明:

IncludeOptional直到apache 2.36才被引入——在2.2重新启动之前做以上改变会让你的服务器瘫痪! 此外,版本2.2 a2ensite不能被黑客攻击

同样,因为你的sites-available文件实际上是一个配置文件,所以无论如何都应该这样命名。


一般不重启服务(web服务器是一种类型的服务):

如果他们不跑,人们就找不到他们!想想linux,而不是微软Windows..

服务器可以运行多年——实时更新、重新加载配置等等。

云并不意味着必须重新启动才能加载配置文件。

当更改服务配置时,使用“reload”而不是“restart”。 重启将停止服务,然后启动服务-如果您对配置的更改有任何问题,服务将不会重新启动。 重新加载会给出一个错误,但服务永远不会关闭,让你有机会修复配置错误,这可能只是糟糕的语法。

Debian或ubunto[此线程的服务名是apache2]

service {service-name} {start} {stop} {reload} ..

其他的os留给读者作为节选。

其他回答

在我使用Ubuntu 14.04.3和Apache 2.4.7的情况下,问题是我复制了site1.conf以使site2.conf可用,通过复制,发生了一些事情,我无法用线程中描述的错误来a2ensite site2.conf。

对我来说,解决方案是将site2.conf重命名为site2,然后再次将site2重命名为site2.conf。在那之后,我能够a2ensite site2.conf。

我也遇到了同样的问题。我认为它与apache.conf没有任何关系。

A2ensite必须已经更改-第532行是强制使用.conf后缀的行:

else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}

如果你把它改成:

else {
    $dir    = 'sites';
    #$sffx   = '.conf';
    $sffx   = '';
    $reload = 'reload';
}

...它将在没有任何后缀的情况下工作。

当然你不会想要改变a2ensite脚本,但是改变conf文件的后缀才是正确的方法。

这可能只是强制使用“.conf”后缀的一种方式。

我知道这里不是这样,但这可能会帮助到一些人。

再次检查您是否在/etc/apache2/sites-enabled中错误地创建了conf文件。你会得到同样的错误。

我在配置文件中加入了。conf之后就工作了

所以. . 最快的方法是重命名以“。conf”结尾的站点配置名称

mv /etc/apache2/sites-available/mysite /etc/apache2/sites-available/mysite.conf

a2ensite mysite.conf

关于以前意见的其他说明:

IncludeOptional直到apache 2.36才被引入——在2.2重新启动之前做以上改变会让你的服务器瘫痪! 此外,版本2.2 a2ensite不能被黑客攻击

同样,因为你的sites-available文件实际上是一个配置文件,所以无论如何都应该这样命名。


一般不重启服务(web服务器是一种类型的服务):

如果他们不跑,人们就找不到他们!想想linux,而不是微软Windows..

服务器可以运行多年——实时更新、重新加载配置等等。

云并不意味着必须重新启动才能加载配置文件。

当更改服务配置时,使用“reload”而不是“restart”。 重启将停止服务,然后启动服务-如果您对配置的更改有任何问题,服务将不会重新启动。 重新加载会给出一个错误,但服务永远不会关闭,让你有机会修复配置错误,这可能只是糟糕的语法。

Debian或ubunto[此线程的服务名是apache2]

service {service-name} {start} {stop} {reload} ..

其他的os留给读者作为节选。