Apache-2.2

具有公共文件的多個站點的 Apache 設置

  • November 16, 2009

剛剛意識到我錯誤地將這個發佈在堆棧溢出上,所以它在正確的位置!

我有大約 50 個站點,它們都使用除 CSS 和 IMAGES 之外的完全相同的文件,我目前每次創建新站點並上傳不同的 css 和圖像時都會複製這些文件。

我想要這樣做將每個虛擬主機設置為具有相同的DocumentRoot,然後為 css 和 images 文件夾添加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

這是我認為可能是問題的一部分的目前伺服器設置(以前的伺服器管理員設置):

  • 阿帕奇(Apache/2.2.14 (Unix)
  • PHP 5.2.11
  • CentOS 4.8 i686 標準
  • PHP 5 處理程序是 dso
  • Apache suEXEC 開啟

有什麼建議?

似乎預設情況下 public_html 文件夾的權限為 750,我更改為 755 並更新了 open_basedir 限制,一切都開始正常工作。

我只需要確保每個站點仍然可以擁有一個 .htaccess。

您在某處遇到了 htaccess 文件的問題。

如果您的所有配置都在 /etc/apache2 內,您甚至不需要啟用 htaccess 文件支持,並且可以通過禁用它來獲得小幅加速。

你也可以使用類似 mod_vhost_alias 的東西來簡化你的配置。

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

引用自:https://serverfault.com/questions/85123