我在/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)
如何解决这个问题?
你可能更新了你的Ubuntu安装,其中一个更新包括将Apache升级到2.4.x版本
在Apache 2.4中。在/etc/apache2/sites-available目录下,vhost配置文件必须扩展名为.conf。
使用终端(mv命令),重命名所有现有配置文件,并将.conf扩展名添加到所有这些文件中。
mv /etc/apache2/sites-available/cmsplus.dev /etc/apache2/sites-available/cmsplus.dev.conf
如果你得到一个“Permission denied”错误,那么在你的终端命令前添加“sudo”。
您不需要对配置文件进行任何其他更改。
启用vhost:
a2ensite cmsplus.dev.conf
然后重新加载Apache:
service apache2 reload
您的网站现在应该已经启动并运行了。
更新:正如这里提到的,您安装的Linux发行版将配置更改为仅包含*.conf。因此,它与Apache 2.2或2.4无关
通过在站点配置文件中添加.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
成功
所以. .
最快的方法是重命名以“。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留给读者作为节选。