0

我将 Apache 2.2 配置为与 Coldfusion 9.2 一起运行,两者都在同一个 Centos 6.2 上。Apache 中 DocumentRoot 的一般配置是

DocumentRoot "/var/www/html"

到目前为止,Apache 将所有对 cfcs 和 cfms 的调用都交给了 Coldfusion。然后我创建了一个虚拟主机

<VirtualHost 192.168.123.207:80>
    ServerName myserver.server.private
    ServerAlias www.myserver.server.private
    ServerAlias webmail.myserver.server.private
    ServerAlias admin.myserver.server.private
    DocumentRoot /home/myserver/public_html
    ErrorLog /var/log/virtualmin/myserver.server.private_error_log
    CustomLog /var/log/virtualmin/myserver.server.private_access_log combined
    ScriptAlias /cgi-bin/ /home/myserver/cgi-bin/
    DirectoryIndex index.html index.htm index.php index.php4 index.php5
    <Directory /home/myserver/public_html>
        Options +Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch
        allow from all
        AllowOverride All                     
        Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
    </Directory>
    <Directory /home/myserver/cgi-bin>
        allow from all
        AllowOverride All     
        Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
    </Directory>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} =webmail.myserver.server.private
    RewriteRule ^(.*) http://myserver.server.private:20000/ [R]
    RewriteCond %{HTTP_HOST} =admin.myserver.server.private
    RewriteRule ^(.*) http://myserver.server.private:10000/ [R]
</VirtualHost>

当我在http://myserver.server.private/hello.html上打开一个 html 文件时,会提供虚拟主机文档根 (/home/myserver/public_html) 中的正确文件。

但是调用 cfm 失败。Apache 正确传递请求,但随后出现 Coldfusion 错误消息:

File not found: /hello.cfm

似乎 Coldfusion 正在获取文件名,为其添加了错误的目录路径前缀,并且无法从磁盘加载它。

我扫描了所有 Coldfusion 文件以查找错误的文档根目录,但找不到任何东西。

编辑

事实证明,Coldfusion 在它自己的 webroot 目录中查找

/opt/coldfusion/wwwroot

我在那里放置了一个名称相同但内容不同的文件,并且该文件得到了服务,尽管有 a) 虚拟主机 b) 通用 DocumentRoot 设置为 /var/www/html。

4

1 回答 1

0

事实证明,coldfusion 用户(在我的例子中是 cfusion)需要在虚拟主机用户的组中。

usermod -a -G newuser cfusion

重新启动冷融合后,一切正常。

于 2013-07-03T14:24:16.827 回答