我想模仿在Linux上啓用站點的行爲,但在Windows上使用Xampp,並且出現了一些問題。我希望有人能幫忙。Apache2:基於條件的包含單獨的「配置樹」
在Linux上,可以將PHPINIDIR指令放入特定的虛擬主機定義中,並且該值僅用於虛擬主機。這似乎工作,因爲虛擬主機是一個不同的「配置樹」,因此每個虛擬主機可以有自己的PHPINIDIR。
在默認的Xampp安裝中,有一個conf/extra/httpd-vhosts.conf,我可以在其中添加自己的虛擬主機定義,但這些全部加載在一起。因此它是「一個配置樹」,當我嘗試在每個不同的虛擬主機定義中放置不同的PHPINIDIR指令時(因爲該變量被定義爲不止一次),它會出錯。
我一直在閱讀關於mod_vhost_alias來看看我是否可以做一個條件包含。
例如根據主機名檢查文件是否存在,如果是的話加載配置文件。如果沒有,加載一個默認的。
<IfModule vhost_alias_module>
<If "-f 'C:/dev/bin/xampp/apache/conf/vhosts/' . %0 . '/vhost.conf'">
Include "'C:/dev/bin/xampp/apache/conf/vhosts/' . %0 . '/vhost.conf'"
</If>
<Else>
Include "C:/dev/bin/apache/conf/vhosts/default.conf"
</Else>
</IfModule>
我不知道如果我的語法是錯誤的,或者如果vhost_alias_module僅適用於虛擬主機的指令來設置變量,但在任何情況下,上述錯誤了:
httpd: Syntax error on line 503 of C:/dev/bin/xampp/apache/conf/httpd.conf: Syntax error on line 43 of C:/dev/bin/xampp/apache/conf/extra/httpd-vhosts.conf: Invalid Include path 'C:/dev/bin/xampp/apache/conf/vhosts/' . %0 . '/vhost.conf'
我沒有出售這個特定的解決方案,我願意提供建議。然而,我希望每個主機都有一個完全獨特的vhost.conf文件,因爲我希望能夠自定義更多的PHPINIDIR。
這有幫助嗎? [更改每個虛擬主機的php值](http://serverfault.com/questions/461702/custom-phpinidir-setting-in-virtualhost-affecting-other-virtualhosts) – Aditya
其實,是的,這絕對可以幫助解決我的問題。 – Doug