我想模仿Linux上启用网站的行为,但是在Windows上使用Xampp,我遇到了一些问题。我希望有人可以提供帮助。
在Linux上,可以将PHPINIDIR指令放在特定的虚拟主机定义中,并将该值仅用于虚拟主机。这似乎有效,因为虚拟主机是一个不同的配置树"因此每个虚拟主机都有自己的PHPINIDIR。
在默认的Xampp安装中有一个conf / extra / httpd-vhosts.conf,我可以在其中添加自己的虚拟主机定义,但这些都是一起加载的。因此,它是一个配置树",当我尝试在每个不同的vhost定义中放置不同的PHPINIDIR指令时,它会出错(因为该变量被定义为多次定义)。
我一直在阅读mod_vhost_alias以了解我是否可以执行条件包含。
e.g。根据主机名检查文件是否存在,如果是,则加载配置文件。如果没有,请加载默认值。
<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。
答案 0 :(得分:0)
没有类似的东西可行。
配置文件名无关紧要,如果N个文件中有1个vhost或1个文件中有N个vhost,则无关紧要。可以在虚拟主机中指定指令。
至于为什么你的计划不起作用:
mod_vhost_alias'es%n个变量不可用于任何Apache其他指令,只是mod_vhost_alias提供的指令。
此外,&lt; If 并且在请求处理时解释与mod_vhost_alias相关的任何内容,而在读取配置文件时会处理包含。
答案 1 :(得分:0)
Invalid Include path
对我而言,它看起来像寡妇下的错误路径:
不应该是......比如C:\\dev\\bin\\...
或C:\dev\bin\...
,具体取决于软件如何处理反斜杠?