许多人都面临这个错误,正如互联网所见,但没有一个解决方案适合我。
问题:
我有一个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
答案 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
文档。)