Apache 2.2 包含通用数据

Apache 2.2 包含通用数据

我在我们的一台开发服务器上共同托管了一组网站。

我需要为所有这些网站配置

Allow from 

指令。由于这是关于动态 IP 的,这些 IP 变化得相对频繁,因此我需要设置一种方法来轻松修改它们。

例子:

<VirtualHost *:443>
    ServerName dbhost.domain
    ServerAdmin webmaster@domain
    DocumentRoot /srv/www/dbhost
    DirectoryIndex index.php index.php3 index.php4

    SSLEngine On

    <Directory /srv/www/dbhost>
            order deny,allow
            allow from 192.168.0.0/16 <subnet1> <subnet2> <subnet3> <etc...>
            deny from all
            AllowOverride None

            AuthType Digest
            AuthDigestAlgorithm MD5
            AuthName "devs"
            AuthDigestDomain /
            AuthDigestDomain /
            AuthDigestProvider file
            AuthUserFile <pwdfile>
            Require valid-user
    <Directory>

所以,我想将“order/allow”包含在外部文件中,这样我就可以轻松地将它用于所有配置文件并只需更改一次即可。

因此,我创建了一个包含以下行的新文件:

 order deny,allow
 allow from 192.168.0.0/16 <subnet1> <subnet2> <subnet3> <etc...>
 deny from all

然后,我修改了该指令如下:

    <Directory /srv/www/dbhost>
            Include /fullpath/to/acl.conf
            AllowOverride None

但是apachectl -t报错:

apache2ctl -t
Syntax error on line 1 of /fullpath/to/acl.conf:
order not allowed here

那么,还有其他方法可以做到这一点吗?

答案1

这种方法没问题。它会像那样工作。问题可能是因为您的 Apache 按原样解释此文件 (acl.conf)(而不仅仅是作为包含文件),因为它具有 .conf 扩展名 - 您可能在或Include *.conf中的某个地方有。httpd.confapache.conf

将文件的名称更改为例如 acl.include 就可以了。

相关内容