我经常使用a2ensite
和a2dissite
来启用和禁用Apache中的网站。据我所知,它只是简单地创建从/etc/apache2/sites-enabled
到/etc/apache2/sites-available
的符号链接。我也可以手动完成,但因为它可以节省我输入几个字符,所以我使用这些快捷方式。
我刚做了一个cat /usr/sbin/a2ensite
,令我惊讶的是它是一个非常复杂的程序。根据{{3}},它只是启用网站。我简要地查看了(Perl)源代码,但即使它是很多代码,我也不太了解它的作用,而不仅仅是创建一个符号链接。
为什么只需创建一个符号链接就需要这么多代码?我在这里缺少什么?
答案 0 :(得分:4)
实际上
a2enconf
a2disconf
a2dismod
a2ensite
a2dissite
只是a2enmod
的符号链接:
$ /usr/sbin$ ll -d a2*
lrwxrwxrwx 1 root root 7 Jul 15 17:33 a2disconf -> a2enmod
lrwxrwxrwx 1 root root 7 Jul 15 17:33 a2dismod -> a2enmod
lrwxrwxrwx 1 root root 7 Jul 15 17:33 a2dissite -> a2enmod
lrwxrwxrwx 1 root root 7 Jul 15 17:33 a2enconf -> a2enmod
-rwxr-xr-x 1 root root 15424 Apr 5 2016 a2enmod
lrwxrwxrwx 1 root root 7 Jul 15 17:33 a2ensite -> a2enmod
-rwxr-xr-x 1 root root 9870 Jul 15 17:33 a2query
和a2enmod
在一个脚本中实现所有六个功能。
它根据$0
决定要做什么(即调用脚本的名称)。
这可能是它比简单ln -s
更复杂的原因。