开发时经常需要配置多个站点,并经常进行切换。
以前的做法经常是在httpd.conf里include所有的配置文件,不需要的时候进行注释,例如
include conf/translate.conf
#include conf/addons.conf
include conf/spider.conf
这样需要先定位到httpd.conf的目录,然后使用编辑器打开,修改,然后保存,比较麻烦。
另外一种办法是在httpd.conf里include所有的配置文件。
include conf/*.conf
然后将不需要的配置文件改名,这种方式也比较麻烦。
其实Apache提供了方便的工具,就是a2ensite和a2dissite,它们都在apache2-common包里。
a2ensite可以激活apache文件夹下sites-available里包含配置文件的站点,a2dissite的作用正好相反。
1.进入sites-available文件夹,新建一个文件,例如ci。
文件内容同上述spider.conf里的内容,例如
<VirtualHost *:80>
ServerName ci.hfahe.cn
DocumentRoot /data/html/ci.hfahe.cn
DirectoryIndex index.php
</VirtualHost>
运行a2ensite,可以看到它给出了选择,这些选择就是sites-available下所有的文件,输入需要的文件名即可激活站点 .

运行完毕后,看到它给出了提示,需要reload apache来使配置生效。也可以使用apache2ctl graceful/restart命令。
到sites-enables目录下,可以看到此文件夹下新增了刚才激活的站点配置文件的符号链接,这就是a2ensite、a2dissite控制站点的原理

a2dissite的原理和运行方式与a2ensite类似,此处就不做详细介绍了。
通过a2dissite和a2ensite,我们可以快速激活/屏蔽站点,加快开发和部署效率。