我在/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扩展名解决了这个问题。
Apache a2ensite的结果:
错误!网站不存在
问题;如果您在尝试使用以下方法启用站点时发现错误:
sudo a2ensite example.com
但它返回:
错误:example.com不存在
a2ensite只是一个Perl脚本,它只适用于以.conf结尾的文件名
因此,我必须将example.com的设置文件重命名为example.com.conf,具体操作如下:
mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf
成功
我刚刚将Ubuntu服务器版本从12.04 LTS升级到14.04 LTS。
事实上,如上所述,.conf扩展到Apache 2.4。需要X的网站vhost文件,驻留在网站可用目录。
在阅读这个问题之前,我不知道服务器上发生了什么。
很好的解决方案。
总结一下,我在Terminal上做了以下步骤:
1)访问启用站点的文件夹
$ cd /etc/apache2/sites-enabled
2)因为a2dissite命令对已弃用的文件(没有.conf)不起作用,请删除已发布的旧网站文件
$ sudo rm <my-old-website-without-.conf>
3)重命名网站vhost文件,更改其扩展名,最后添加.conf
$ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf
4)重新发布新的正确的vhost文件
$ sudo a2ensite mywebsite.conf
5)在浏览器上查看网站,玩得开心!:)
我也遇到了同样的问题。我认为它与apache.conf没有任何关系。
A2ensite必须已经更改-第532行是强制使用.conf后缀的行:
else {
$dir = 'sites';
$sffx = '.conf';
$reload = 'reload';
}
如果你把它改成:
else {
$dir = 'sites';
#$sffx = '.conf';
$sffx = '';
$reload = 'reload';
}
...它将在没有任何后缀的情况下工作。
当然你不会想要改变a2ensite脚本,但是改变conf文件的后缀才是正确的方法。
这可能只是强制使用“.conf”后缀的一种方式。