网站不存在a2ensite错误

我在/etc/apache2/sites-available下有cmsplus.dev/etc/apache2/sites-available下面的代码,

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

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

如何解决这个问题?

通过向站点configuration文件添加.conf扩展来解决此问题。

Apache a2ensite导致:

错误! 网站不存在

问题; 如果在尝试启用站点时发现错误,请使用以下命令:

 sudo a2ensite mysite.com 

但是它返回:

错误:mysite.com不存在

a2ensite只是一个perl脚本,只能用于以.conf结尾的文件名

因此,我必须将我的mysite.com设置文件重命名为mysite.com ,如下所示:

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

成功

你可能更新了你的Ubuntu安装,其中一个更新包括Apache版本2.4.x的升级

在Apache 2.4.x中,位于/ etc / apache2 / sites-available目录中的vhostconfiguration文件必须具有.conf扩展名。

使用terminal(mv命令),重命名所有现有的configuration文件,并将.conf扩展名全部添加。

 mv /etc/apache2/sites-available/cmsplus.dev /etc/apache2/sites-available/cmsplus.dev.conf 

如果您收到“Permission denied”错误,请在terminal命令前加上“sudo”。

您不需要对configuration文件进行任何其他更改。

启用虚拟主机:

 a2ensite cmsplus.dev.conf 

然后重新加载Apache:

 service apache2 reload 

您的网站现在应该正常运行。


更新:如上所述,您安装的Linux发行版仅将configuration更改为仅包含* .conf。 因此它与Apache 2.2或2.4无关

还有一个好方法,就是在最后编辑apache2.conf文件

IncludeOptional sites-enabled / *。conf

最后删除.conf ,像这样

IncludeOptional sites-enabled / *

并重新启动服务器。

(我只在Ubuntu 13.10上试过,当我更新它。)

我只是有同样的问题。 我会说这与apache.conf没有任何关系。

a2ensite必须已经改变 – 第532行是执行.conf后缀的行:

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

如果您将其更改为:

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

…它将工作没有任何后缀。

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

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

所以..最快的方法是重命名以“.conf”结尾的网站configuration名称

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

关于以前评论的其他说明:

  • IncludeOptional直到apache 2.36之前没有被引入 – 在上面进行更改然后在2.2上重新启动会使服务器停机!

  • 另外,版本2.2 a2ensite不能像描述的那样被黑客入侵

同样,因为你的站点可用文件实际上是一个configuration文件,所以应该这样命名。


一般不要重新启动服务(web服务器是一种服务):

  • 如果他们没有运行,人们不能find他们! 认为Linux不是MS Windows ..

服务器可以运行多年 – 实时更新,重新载入configuration等

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

  • 在更改服务的configuration时,请使用“重新加载”而不是“重新启动”。

  • 重新启动会停止服务,然后启动服务 – 如果在更改configuration时出现任何问题,服务将不会重新启动。

  • 重新加载会给出一个错误,但服务永远不会closures给你一个机会来解决configuration错误,这可能只是坏的语法。

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

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

其他操作系统的左边,作为读者的excersize。

在将.conf添加到configuration文件后工作

在我的情况下,Ubuntu 14.04.3和Apache 2.4.7,问题是我复制site1.conf使site2.conf可用,并通过复制,发生的事情,我不能a2ensite site2.conf与线程中描述的错误。

对我来说,解决scheme是将site2.conf重命名为site2,然后将site2重命名为site2.conf。 之后,我能够访问site2.conf。

我刚刚将Ubuntu Server版本从12.04 LTS升级到了14.04 LTS。

事实上,如上所述,驻留在站点可用目录中的网站虚拟主机文件需要Apache 2.4.x的.conf扩展名。

在阅读这个问题之前,我并不知道服务器正在发生什么。

漂亮的解决scheme。

总结一下,我在terminal上做了以下步骤:

1)访问站点启用的文件夹

 $ cd /etc/apache2/sites-enabled 

2)因为命令a2dissite不适用于不build议使用的文件(不带.conf),请删除已发布的旧网站文件

 $ sudo rm <my-old-website-without-.conf> 

3)重命名网站虚拟主机文件,将其扩展名为.conf的文件添加到最后

 $ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf 

4)重新发布新的正确的虚拟主机文件

 $ sudo a2ensite mywebsite.conf 

5)在浏览器上检查网站,玩得开心! 🙂

像这样试试

 NameVirtualHost *:80 <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> 

并在/ etc / hosts中添加条目

 127.0.0.1 www.cmsplus.dev 

重启apache ..