2011-12-04 13 views
2

このエラーは、インターネットから見ても多くの人が直面していましたが、エラー#2032:Fedoraでストリームエラーが発生しましたが、Ubuntuではありません

問題:
私はLinuxマシン上で実行しようとしていますフレックスアプリケーションを持っています。 Ubuntuではうまくいきますが、Fedoraでは、ログインボタンをクリックするとエラーが発生します。

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

詳細:
ログインボタンは、実際のHTTPServiceを経由して同じマシン上に配置されたサーバにユーザーが入力したユーザー名とパスワードを送信します。そのHTTPServiceは、実際に同じマシンに配備されたmysqlデータベースを照会することによって、ユーザーの認証を担当するサーバー上のdb_mgmt.phpにデータを送信します。私は自分のコードにアクセスしていますがdb_mgmt.php:私はローカルホスト経由でアクセスしていますことをここ

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

ポイントです。ですから、crossdomain.xmlは必要ありません。

マシン情報:

のLinuxディストリビューション:アプリケーションが動作していないされている

  • マシンにFedora
    IP:192.168.1.115
    アプリケーションパス:は/ var/www /のhtml/flexApp
    所有者:デビッド:デビッド
    権限:
    (Iは、Apacheに777と所有者に権限を設定しようとしている:ちょうどテストのためのapacheが、その喧騒の作業のいずれかところで「Apacheが」ユーザー名実行されています。 ApacheのFedoraのオン/ httpd)がアプリケーションが正常に動作している

  • マシン:。

    のLinuxディストリビューション:Ubuntuの
    IP:192.168.1.113
    アプリケーションパス:/var/www/flexApp
    所有者:マーク:マーク
    権限:。

問題は、Flash Playerのバージョンに関連していないようです:
私はFirefoxブラウザを介して第3のマシンから両方のマシンにアクセスしています。 Ubuntuはうまく動作します。 Fedora oneは上記のエラーを返します。ここでのポイントは、この問題は私の第3マシンの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

あなたは_httpS.urlへの絶対ハードコーディングされたパスを渡して試してみましたか? – AsTheWormTurns

+0

はい。ハードコーディングされた絶対パスを使用する場合も同じエラーが発生します。 : -/ – baltoro

+0

私は間違っていた。 db_mgmt.phpはデータベースからの情報を表示していませんでした。私は間違いなく出力が表示されているとDBから考えました。 php-mysqlをインストールすると問題が解決しました。おとこ!私はこれで多くの時間を無駄にした。とにかく、ありがとう。 :) – baltoro

答えて

1

最初の推測:あなたのSELinuxmandatory access control設定が正しくアプリケーションに設定されていません。 FedoraにはSELinuxとUbuntuが同梱されています(AppArmor)ので、使用しているMACフレームワークはさまざまなシステムで大きく異なります。

または/var/log/messagesavc:deniedメッセージを確認してください。 本当にがSELinuxで正しく動作する方法については、Fedora SELinux FAQを参照してください。 db_mgmt.phpのセキュリティコンテキストが正しく設定されていない可能性があります。 db_mgmt.phpファイルのls -Zの出力をチェックし、それ以外のと比較してください。 PHPスクリプト - セキュリティコンテキストをPHPインタプリタドメインがアクセスできるものに更新するだけでよい場合があります。

第2の推測:あなたのサーバーは、Fedoraマシン上の公開アクセス可能なIPアドレス192.168.1.115でリッスンするように設定されていません。 netstat -anpの出力をチェックして、アプリケーションに対応しているWebサーバーがではなく、127.0.0.1:80であることを確認してください。

第3の推測:のアプリケーションでは、ハードウェアインターフェイスのアドレスから「ローカル」で通信できるかどうかを確認してください。 (ssh 127.0.0.1に対するssh 192.168.1.115をチェックしてください両方作業を行います。LinuxカーネルのソースDocumentation/networking/ip-sysctl.txt/proc/sys/net/ipv4/conf/*/accept_localドキュメントを参照してください。)

+0

私のSELinuxは無効になっています。 ls -Zは、すべてのPHPファイル(-rw-rw-r-- david:david unlabeled db_mgmt.php)に対して同じ出力を返します。 Ubuntuでは、しかしそれは返す: '? db_mgmt.php 'はすべてのPHPファイルです。 'netstat -anp | grep httpd'は "tcp 0 0 ::: 80 ::: * LISTEN 5107/httpd"を返します。これはあまりにも良いようです。両方のIPを持つSSHも機能しています。:) – baltoro

+0

私は間違っていた。 db_mgmt.phpはデータベースからの情報を表示していませんでした。私は間違いなく出力が表示されているとDBから考えました。 php-mysqlをインストールすると問題が解決しました。おとこ!私はこれで多くの時間を無駄にした。とにかく、ありがとう。 :) – baltoro

+1

今後のトラブルを他の誰かに救うために、答えとして実際の解決策を投稿するのを忘れないでください! – sarnold

関連する問題