错误#2032:在Fedora上发生流错误,但在Ubuntu上没有

时间:2011-12-04 09:58:02

标签: flex ubuntu flex4 flash fedora

许多人都面临这个错误,正如互联网所见,但没有一个解决方案适合我。

问题:
我有一个flex应用程序,我试图在Linux机器上运行。在Ubuntu上,它工作正常但在Fedora上单击登录按钮时出现错误。

text="Error #2032: Stream Error. URL: http://192.168.1.115/flexApp/utils/db_mgmt.php"]. 

详细信息:
登录按钮实际上将用户输入的用户名和密码通过HTTPService发送到部署在同一台机器上的服务器。 HTTPService实际上将数据发送到服务器上的db_mgmt.php,该服务器通过查询部署在同一台机器上的mysql数据库来处理用户的授权。我在我的代码中访问db_mgmt.php:

_httpS.url= "utils/" + db_mgmt.php;

点这里是我通过localhost访问它。所以我想,我不需要crossdomain.xml。

机器信息:

  • 应用无效的机器:

    Linux发行版:Fedora
    IP:192.168.1.115
    应用路径: / var / www / html / flexApp
    所有者:大卫:大卫
    权限: 755
    (我已尝试将权限设置为777,并将所有者设置为apache:apache仅用于测试,但也可以使用.Btw'apache'是在Fedora上运行Apache / httpd的用户名。)

  • 应用正常运行的机器:

    Linux Distro:Ubuntu
    IP:192.168.1.113
    应用路径: / var / www / flexApp
    所有者:标记:标记
    权限: 755

问题似乎与Flash Player版本无关:
我通过firefox浏览器从第三台机器访问这两台机器。 Ubuntu一个正常。 Fedora one返回提到的错误。这里的问题是这个问题与我在第三台机器的firefox浏览器中的FlashPlayer版本无关。如果是这样的话,同样的问题应该出现在Ubuntu机器上。 (注意:Chrome和Internet Explorer中也会出现同样的问题)

问题不在于路径错误:
我可以访问以下路径。没问题。我从两台机器上的db_mgmt.php文件中获得输出:

  

Fedora:http://192.168.1.115/flexApp/utils/db_mgmt.php
  Ubuntu:http://192.168.1.113/flexApp/utils/db_mgmt.php

我认为问题在哪里?
好吧,经过很多关于这个问题的论坛并尝试给出的解决方案(结果不成功)之后,我唯一能想到的是我的文件在Fedora服务器上的权限有些问题。 Fedora机器上的HTTPService无法访问db_mgmt.php。但我不知道我怎么能确定它或它的解决方案是什么。我是否需要对Fedora机器上的apache设置进行一些更改?

由于其他一些原因,我必须在Fedora上运行这个应用程序。希望在这里找到解决方案。 :)

感谢。

更新
以下是错误消息的整个转储:

(mx.messaging.messages::ErrorMessage)#0
body=""
cliendId = "DirectHTTPChannel0"
correlationId= "CD7D67A8-1AD1-5C89-331B-
07B7E51BC3A0"
  destination = ""
  extendedData = (null)
  faultCode = "Server.Error.Request"
  faultDetail = "Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: http://192.168.1.115/flexApp/utils/db_mgmt.php"]. URL: http://192.168.1.115/flexApp/utils/db_mgmt.php"
  faultString = "HTTP request error"
  headers = (Object)#1
    DSStatusCode = 500
  messageId = "5D10EE4D-BFA5-201E-EABE-07B7E550F727"
  rootCause = (flash.events::IOErrorEvent)#2
    bubbles = false
    cancelable = false
    currentTarget = (flash.net::URLLoader)#3
      bytesLoaded = 0
      bytesTotal = 0
      data = ""
      dataFormat = "text"
    errorID = 0
    eventPhase = 2
    target = (flash.net::URLLoader)#3
    text = "Error #2032: Stream Error. URL: http://192.168.1.115/flexApp/utils/db_mgmt.php"
    type = "ioError"
  timestamp = 0

1 个答案:

答案 0 :(得分:1)

首先猜测:您的SELinux mandatory access control配置未正确设置。 Fedora附带SELinux和Ubuntu附带AppArmor,因此您使用的MAC框架在不同系统上有很大差异。

检查/var/log/audit/audit.log/var/log/messages是否有avc:denied条消息。有关如何真正正确使用SELinux的建议,请参阅Fedora SELinux FAQ。只是猜测您db_mgmt.php的安全上下文可能未正确设置。检查ls -Z文件上的db_mgmt.php输出,并将其与其他工作 PHP脚本进行比较 - 可能您只需要将安全上下文更新为PHP解释器域可以访问的内容。

第二个猜测:您的服务器未配置为侦听Fedora计算机上可公开访问的IP地址192.168.1.115。检查netstat -anp输出,确保为您的应用投放的网络服务器正在收听0.0.0.0:80,而不是127.0.0.1:80

第三个猜测:查看任何应用程序是否允许您通过硬件接口的地址“本地”进行通信。 (针对ssh 192.168.1.115检查ssh 127.0.0.1并确保两者都有效。请参阅Linux内核源/proc/sys/net/ipv4/conf/*/accept_local中的Documentation/networking/ip-sysctl.txt文档。)