网站不存在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 ..