使用mod_macro定义宏在Apache中

在Apache中使用mod_macro定义宏

本指南是关于mod_macro ,它使得Apache Web服务器的管理工作变得更加容易,或者仅仅是针对具有多个测试页面或项目的家庭开发人员。 我将解释如何运行它,并给出一些我如何使用该模块的例子,以帮助您开始使用它。

安装

首先我们需要安装模块,因为它没有安装在默认的Debian / Ubuntu安装中。 我认为你已经安装了Apache2,否则你应该首先安装。 我们可以使用APT安装模块,只需以root身份运行以下命令:

apt-get install libapache2-mod-macro

接下来,我们需要激活模块并重新启动Apache:

a2enmod macro
/etc/init.d/apache2 restart

你准备好使用宏了!

基本用法

在我们准备制作配置文件之前,您应该首先学习如何使用mod_macro。 它基本上添加了一个新的功能和一个新的标签,现在可以在Apache的配置文件中使用。 功能“使用”和标签“<宏>”。 我们开始使用用于创建新宏的标签。 一个简单的静态宏可能如下所示:

<Macro Logfile>
CustomLog /var/log/apache2/access.log combined
ErrorLog /var/log/apache2/error.log
LogLevel warn
</Macro>

宏简单地声明称为Logfile的宏包含标签内的文本。 为了使用宏,您只需将以下行放入您的配置文件中,您通常会从宏中放置行:

Use Logfile

当您重新加载Apache并查看配置文件时,它会自动将Use Logfile转换为您在宏中定义的行。

这很简单,但是如果您不希望所有网站登录到同一个文件,该怎么办? 您可以通过声明在宏中使用的变量来为每个站点创建一个日志文件:

<Macro Logfiles $sitename>
CustomLog /var/log/apache2/$sitename-access.log combined
ErrorLog /var/log/apache2/$sitename-error.log
LogLevel warn
</Macro>

和使用功能一起去:

Use Logfiles example.com

整洁,你不觉得吗 如果您要更改日志文件的路径,则只需在宏中更改它,而不必在每个配置文件中进行更改。 使用的语法如下所示:

Use <Macroname> [Variable 1] [Variable 2] ... [Variable x]

这基本上意味着你必须提供你正在使用的宏的名称,但变量是可选的。

在制作宏时需要记住的一件事是,定义您的宏的文件需要包含在Apache的配置文件中,否则您将无法使用它们。 我建议你在文件夹/etc/apache2/conf.d/中创建一个名为macro.conf的文件,因为该文件夹中的所有文件都被Apache自动包含。

高级用法

宏不仅可用于在Apache配置中打印几行,还可以用于整个<VirtualHost>声明,如下所示:

<Macro VHost $type $hostname>
<VirtualHost *>
   ServerAdmin webmaster@$hostname
 
   Use $type $hostname
 
   ServerSignature On
 
   ServerName $hostname
   ServerAlias www.$hostname
</VirtualHost>
</Macro>

<Macro dir $hostname>
   DocumentRoot /var/www/$hostname

   CustomLog /var/log/apache2/$hostname-access.log combined
   ErrorLog /var/log/apache2/$hostname-error.log
   LogLevel warn
</Macro>

<Macro cfg $hostname>
   Include /var/www/conf.d/$hostname.conf
</Macro>

我应该解释一下,因为看起来似乎很复杂。 宏提供两个变量,第一个称为$ type ,可以设置为dircfg ,第二个变量$ hostname将是站点的主机名,而不是“www”。 在它的前面。

$ hostname变量设置日志文件的名称,并使用域名定义ServerName,甚至添加一个ServerAlias与“www”。 前缀

$ type变量的目的是为您提供为VirtualHost定制配置文件之间的选择,然后将其放置在/var/www/conf.d/$hostname.conf中 ,或者使用预定义的路径DocumentRoot/ var / www / $ hostname / )。

这样可以很方便地了解您在Apache中添加了哪些站点,因为VirtualHosts的列表将如下所示:

Use VHost dir example.com
Use VHost cfg tenzer.dk
etc...

这也使得脚本添加和删除站点到服务器更容易,因为您只需要在Apache配置中查找一行。

请注意,宏模块可用于Apache的所有配置文件,不仅可用于设置VirtualHosts

我希望您发现本指南有帮助,请让我知道您在安装程序中使用mod_macro的方式!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏