Apache flex 错误#2032:Fedora上出现流错误,但Ubuntu上没有

Apache flex 错误#2032:Fedora上出现流错误,但Ubuntu上没有,apache-flex,ubuntu,flex4,flash,fedora,Apache 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发送到部署在同一台机

正如通过互联网看到的那样,许多人都面临着这个错误,但给出的解决方案都不适合我

问题:
我有一个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
    所有者:david:david
    权限:755
    (我试着将权限设置为777,所有者设置为apache:apache只是为了测试,但din也可以。顺便说一句,“apache”是在Fedora上运行apache/httpd的用户名。)

  • 应用程序正常运行的机器:

    Linux发行版:Ubuntu
    IP:192.168.1.113
    应用程序路径:/var/www/flexApp
    所有者:标记:标记 权限:755

问题似乎与Flash Player版本无关:
我通过firefox浏览器从第三台机器访问这两台机器。Ubuntu 1运行良好。Fedora one返回上面提到的错误。这里的要点是,这个问题与我在第三台机器的firefox浏览器中使用的FlashPlayer版本无关。如果是这样的话,Ubuntu机器也会出现同样的问题。(注意:Chrome和Internet Explorer中也存在相同的问题)

问题不是因为路径不正确:
我可以很好地访问下面的路径。没有问题发生。我从两台机器上的db_mgmt.php文件中获得输出:

软呢帽:
Ubuntu:

我认为问题出在哪里?
嗯,在浏览了很多关于这个问题的论坛并尝试了给出的解决方案(结果不成功)之后,我唯一能想到的是,我在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
第一个猜测:您的配置没有为应用程序正确设置。Fedora随SELinux提供,Ubuntu随附,因此您在不同系统上使用的MAC框架大不相同

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

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


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

是否尝试将绝对硬编码路径传递到_httpS.url?是的。使用绝对硬编码路径时出现相同错误:-/我错了。db_mgmt.php并没有显示来自数据库的正确信息,而是并没有显示来自数据库的任何内容。我错误地认为显示的输出来自DB。安装php mysql解决了这个问题。伙计!我在这上面浪费了太多时间。无论如何,谢谢你。:)我的SELinux已禁用。ls-Z为所有php文件返回相同的输出,即(-rw-rw-r--david:davidunlabeled db_mgmt.php)。但在Ubuntu上,它返回:'?所有php文件的“db_mgmt.php”
netstat-anp | grep httpd
返回“tcp 0:::80:::*LISTEN 5107/httpd”。这看起来也不错。使用两个IP的SSH也正常工作。:)我错了。db_mgmt.php并没有显示来自数据库的正确信息,而是并没有显示来自数据库的任何内容。我错误地认为显示的输出来自DB。安装php mysql解决了这个问题。伙计!我在这上面浪费了太多时间。无论如何,谢谢你。:)别忘了把实际的解决方案作为一个答案贴出来,以免将来给别人带来麻烦!