2

ええと、 ISE 500で非常に多くのスレッドを見つけましたが、解決策はどれもうまくいきませんでした。

クライアントがいくつかのオーディオトラックを表示するための Facebook アプリを開発しました。もちろん、app_data パラメーターごとにいくつかのパラメーターをアプリケーションに渡したいと思います。そこで、facebook SDK 3.1.1 を統合しました。Facebookに正しく​​接続するためにすべてを行いました。

私のローカル xampp ではすべて正常に動作し、当社の Web サーバーも問題なくアプリケーションを実行し、私のプライベート Web スペースも問題なく実行されます。しかし、アプリケーションをクライアント サーバーにアップロードすると、500: 内部サーバー エラーが発生します。私の側で奇妙なスクリプトエラーを除外するために、sdk に付属の example.php を実行しようとしました。同じエラー。次のようにFacebookクラスをインスタンス化しようとしたときでも:

<?php

require '../src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '???',
  'secret' => '??????',
));
?>

私はすでにサーバーのエラーログを見ました。それが言及しているのはこれだけです:

「スクリプトヘッダーの途中終了: example.php」

error_reporting(E_ALL);また、サーバー側での誤ったエラー処理を避けるために、広く提案されている方法も使用しました。何もない。サーバーは何が悪いのか教えてくれません。

他の人がこのエラーを受け取った理由はたくさんありますが、最も顕著な理由は次のとおりです。

  • ?>facebook.php / base_facebook.php にタグがありません
  • Facebook- との複数のインスタンスFacebookApiException

...提供された解決策はどれもうまくいきませんでした。

そこで、クライアントと自社サーバーのphpinfoを比較してみました。もちろん、いくつかの違いはありましたが、私には明らかなものではありませんでした。私は、フォーラムの人々がすでに ISE 500 に関連付けている基本的なもの、たとえば cURL 拡張機能php バージョン (5.3.9)などを探しました。私はサーバー管理者ではありません。サーバー構成に関する非常に基本的な知識しかありません。何かが欠けていることを確認するために、facebook SDK のサーバー要件を見つけようとしました...

...しかし、ウェブ全体では、facebook SDK のサーバー要件がわかりません。Facebookのドキュメントでさえ、何も言及していません。だから私はこれで私を助けることができる誰かがここにいるかもしれないことを願っています.

はい...私はすでにサーバー管理者に助けを求めました.彼は2つの疑問符を目にして私を見ました...そしてはい.

楽しみにありがとう…


更新:
あなたの提案に応えて私が試したことをリストします:

サーバー:
- cURL 拡張機能がインストールされています (7.20.1)
- PHP バージョンは 5.3.9 です。
-他のファイルを含めようとしましたが、正常に動作します。
パスの問題ではないようです-サーバーエラーログには「スクリプトヘッダーの途中で終了: example.php」と表示されるだけです-log_errors
が有効になっています。error_log には「値なし」と表示されます -バグ追跡を
試みました...効果なしini_set("display_errors", true);


更新 2

そのため、Facebookファイルを1行ずつチェックした後、問題を特定できました。内部サーバー エラー 500 は、セッションを開始しようとした直後にスローされます。

if(!session_id())
{
    session_start();
}

この情報をサーバー管理者とクライアントに転送しました...今は私の手に負えないと思います。回答が得られたら、この投稿を更新します。フィードバックをお寄せいただきありがとうございます:)


解決

サーバー管理者が問題を特定しました。session.save_handler は 'user' に設定されていましたが、彼はそれを 'files' に変更しました。これですべてが機能します。:

session.save_handler = files

助けてくれてありがとう!

4

3 に答える 3

6

インクルードする前に、スクリプトの先頭にこれを追加してみてください。

ini_set("display_errors", true);
于 2012-02-25T10:23:25.393 に答える
0

これは非常に悪い質問の完璧な例です。

あなたの唯一の問題はhow to get an error message from PHP. Facebook アプリを実行している場合でも、その他のアプリを実行している場合でも問題ありません。インストールした curl のバージョンは関係ありません。

必要なのは、PHP エラー メッセージだけです。
あなたはそれを追跡する必要があります。error_reportingerror_logおよびlog_errorsphpinfo() のディレクティブを確認してください。
追加のログ ファイルについては、ユーザーのホーム ディレクトリを確認してください。ログ ファイルについては、サーバー管理者に問い合わせてください。これは、検索の唯一の方向である必要があります-PHPエラーメッセージ。

于 2012-02-25T10:15:57.717 に答える
0

phpinfo() に答えがありました。セッションでは、save_handler パラメータを次のように設定する必要がありました。

session.save_handler = user

に:

session.save_handler = files

于 2012-02-27T10:47:53.980 に答える