Apache 设置多个站点的公共文件

Apache 设置多个站点的公共文件

刚刚意识到我错误地在 stack overflow 上发布了这个,所以这里是正确的地方!

我有大约 50 个网站,除了 CSS 和 IMAGES 之外,所有网站都使用完全相同的文件,目前,每次创建新网站并上传不同的 css 和图像时,我都会复制这些文件。

我想要做的是设置每个虚拟主机具有相同的文档根目录然后加别名匹配对于 css 和 images 文件夹,例如:

#Common Files VHOST
<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerName commonfiles.com
    ServerAlias www.commonfiles.com
    DocumentRoot /home/commonfiles/public_html
</VirtualHost>

#Sample vhost for 1 of the 50 sites.
<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerName mytest.com
    ServerAlias www.mytest.com
    DocumentRoot /home/commonfiles/public_html
    ......
    AliasMatch /css/(.*) /home/ftpuser/public_html/mycss/$1
</VirtualHost>

别名对于定制文件来说非常有效,但由于权限错误,无法访问公共文件:

[Mon Nov 16 09:31:01 2009] [crit] [client xxx.xxx.xxx.xxx] (13)Permission denied: /home/commonfiles/public_html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

这是当前的服务器设置,我认为它可能是问题的一部分(以前的服务器管理员设置了它):

  • Apache(Apache/2.2.14(Unix)
  • PHP 5.2.11
  • CentOS 4.8 i686 标准
  • PHP 5 处理程序是 dso
  • Apache suEXEC 已开启

有什么建议么?

答案1

看来默认情况下 public_html 文件夹的权限为 750,我将其更改为 755 并更新了 open_basedir 限制,一切开始正常工作。

我只需确保每个站点仍然可以拥有一个 .htaccess。

答案2

您的某个 htaccess 文件出现了问题。

如果您的所有配置都在 /etc/apache2 中,那么您甚至不需要启用 htaccess 文件支持,并且可以通过禁用它来获得稍微加速。

您还可以使用类似 mod_vhost_alias 的工具来简化您的配置。

http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html

相关内容