Apache使用公共文件设置多个站点

刚刚意识到我发布了这个错误堆栈溢出,所以这里是在正确的地方!

我有大约50个网站,所有使用CSS和IMAGES以外完全相同的文件,我目前每次创build一个新的网站和上传不同的CSS和图像复制文件。

我想要做什么,所以设置每个虚拟主机有相同的DocumentRoot然后添加的CSS和图像文件夹的AliasMatch例如:

#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 

这是目前的服务器设置,我认为这可能是问题的一部分(上一次服务器pipe理设置):

  • Apache(Apache / 2.2.14(Unix)
  • PHP 5.2.11
  • CentOS 4.8 i686标准
  • PHP 5 Handler是dso
  • Apache suEXEC已启动

有什么build议么?

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

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

你有一个htaccess文件的问题。

如果你所有的configuration都在/ etc / apache2中,你甚至不需要启用htaccess文件支持,并且可以通过禁用它来获得小的加速。

你也可以使用类似mod_vhost_alias来简化你的configuration。

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