内部サーバー エラー 500 - session_start()
-
12-11-2019 - |
質問
さて、かなり多くのスレッドを見つけました イセ500, 、しかし、どの解決策も私にとってはうまくいきませんでした。
私はクライアントがいくつかのオーディオトラックを提示するための Facebook アプリを開発しました。そしてもちろん、app_data パラメーターごとにいくつかのパラメーターをアプリケーションに渡したいと考えています。そこで私は、 フェイスブックSDK3.1.1。 Facebookに正しく接続するためにあらゆることを行いました。
私のローカルの xampp ではすべてが正常に動作し、会社の Web サーバーも問題なくアプリケーションを実行します。私のプライベート Web スペースも同様です。しかし、アプリケーションをクライアントサーバーにアップロードすると、500 が表示されます。内部サーバーエラー。私の側で奇妙なスクリプトエラーを排除するために、SDK に付属している example.php を実行しようとしました。同じエラーです。次のように Facebook クラスをインスタンス化しようとしたときでも:
<?php
require '../src/facebook.php';
$facebook = new Facebook(array(
'appId' => '???',
'secret' => '??????',
));
?>
すでにサーバーのエラーログを確認しました。言及されているのは次のことだけです。
「スクリプトヘッダーの終了が早すぎます:例.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です。
- 他のファイルを含めてみましたが、正常に動作しました。パスの問題ではないようです
- サーバー エラー ログには、「スクリプト ヘッダーの早期終了:例.php」
- log_errors が有効になっています。error_log に「値がありません」と表示される
- 試してみた ini_set("display_errors", true);
バグ追跡のため...無効
更新 2
そこで、Facebook ファイルを一行ずつ確認した結果、問題を特定することができました。セッションを開始しようとした直後に、内部サーバー エラー 500 がスローされます。
if(!session_id())
{
session_start();
}
この情報をサーバー管理者とクライアントに転送しました...今は私の手に負えないと思います。答えが得られたらこの投稿を更新します。フィードバックをありがとうございます:)
解決
OK、サーバー管理者が問題を特定しました。session.save_handler は「user」に設定されていましたが、彼はそれを「files」に変更しました。今ではすべてが機能します。
session.save_handler = files
もう一度助けていただきありがとうございます!
解決 3
phpinfo() に答えがありました。セッションでは、save_handler パラメーターを次から設定する必要がありました。
session.save_handler = user
に:
session.save_handler = files
他のヒント
インクルードの前に、スクリプトの先頭にこれを追加してみてください。
ini_set("display_errors", true);
これは非常に悪い質問の好例です。
あなたの問題はただ一つだけですが、 how to get an error message from PHP
, 、あなたは誰も知る必要のないことについて小説全体を書きました。Facebook アプリやその他のものを実行しているかどうかは関係ありません。インストールしたcurlのバージョンは関係ありません。
必要なのは、PHP エラー メッセージだけです。
それを追跡しなければなりません。チェック error_reporting
, error_log
そして log_errors
phpinfo() のディレクティブ。
ユーザーのホーム ディレクトリに追加のログ ファイルがないか確認してください。サーバー管理者にログ ファイルを問い合わせてください。これが検索の唯一の方向である必要があります - PHP エラー メッセージ。