2012-02-24 145 views
2

嗯,我發現了很多與ISE 500線程,但沒有解決方案爲我工作。Interal Server Error 500 - session_start()

我爲我們的客戶開發了一個Facebook應用程序,用於呈現一些音頻記錄,當然,還想通過app_data參數嚮應用程序傳遞一些參數。所以我整合了facebook sdk 3.1.1。做了一切正確連接到Facebook。

在我的本地xampp萬物工作正常,我們公司的網絡服務器也運行應用程序沒有任何問題,我的私人網絡空間也是如此。但是,當我將應用程序上傳到客戶端服務器時,出現500:內部服務器錯誤。爲了排除我身邊的任何奇怪的腳本錯誤,我嘗試執行sdk附帶的example.php。同樣的錯誤。即使我只是試圖實例Facebook類是這樣的:

<?php 

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

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

我已經看了看服務器錯誤日誌。它提到的唯一的事情是這樣的:

「腳本頭過早結束:使用example.php」

我還使用了廣泛的建議error_reporting(E_ALL);,以避免對服務器端錯誤ErrorHandling中。沒有。服務器不會告訴我什麼是錯的。

我發現相當多的原因,爲什麼其他人得到這個錯誤,最突出的:

  • 缺少?>標籤在facebook.php/base_facebook.php
  • Facebook的多個實例 - 和FacebookApiException

...沒有提供的解決方案爲我工作。

所以我試圖比較兩者,客戶端和我們公司的服務器的phpinfos。當然有一些分歧,但對我來說並不明顯。我在論壇上尋找人們已經與ISE 500相關的基本知識,例如cURL擴展,php版本(5.3.9)。我不是服務器管理員,我只具備服務器配置的基本知識。所以要確保有一些缺失,我試圖找到facebook sdk的服務器要求...

...但整個網絡不會告訴我的服務器要求Facebook的sdk。即使facebook文檔也沒有提及任何內容。所以我希望這裏可能會有人能幫助我。

是的...我已經問過服務器管理員的幫助,他只是看着我在他眼中的兩個問號...是的...我必須使用客戶端服務器:(嘆息

感謝您的期待...


UPDATE:
我會列出我響應你的建議嘗試過的事情:

服務器:
- 安裝cURL擴展(7.20.1)
- PHP版本5.3.9。
- 試圖包含其他文件,工作正常。似乎不是路徑問題
- 服務器錯誤日誌只顯示「腳本標題提前結束:example.php」
- 啓用了log_errors。 error_log中說,「沒有價值」
- 試圖ini_set("display_errors", true);的bug跟蹤......沒有影響


更新2

所以我能夠通過檢查Facebook的文件一行之後,找出問題行。內部服務器錯誤500正在試圖啓動一個會話後,在一開始就拋出:

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

我轉發此信息給服務器管理員和客戶端...我想現在它從我手中,我將在我得到答案時更新這篇文章。感謝您的反饋傢伙:)


SOLUTION

好的服務器管理員現在發現的問題。該session.save_handler設置爲「用戶」,他把它改爲「檔案」,現在一切正常:

session.save_handler = files 

再次感謝您的幫助!

+0

也許這是愚蠢的問,但還是要。 )你是否嘗試在客戶的服務器上運行最簡單的php腳本,比如臭名昭着的<?php phpinfo(); ?>'一個?順便說一下,檢查PHP版本和加載的模塊會非常有趣。 – raina77ow 2012-02-24 20:35:18

+0

好吧,我認爲沒有愚蠢的問題:D但是當然,就像我寫的,這是我第一次嘗試,PHP版本是適合的(5.3.9) – Acure 2012-02-24 22:44:48

+0

如果有人可以告訴我們什麼,我將不勝感激facebook sdk需要正常運行(例如,cURL的擴展名) – Acure 2012-02-24 22:46:25

回答

0

的phpinfo()函數有了答案。在會議上,save_handler參數必須從設置:

session.save_handler = user

到:

session.save_handler = files

1

這是一個非常糟糕的問題的完美例子。

雖然你唯一的問題是how to get an error message from PHP,但你寫了一本關於人們不需要知道的全部小說。如果你運行Facebook應用程序或其他任何東西並不重要。無論您安裝的是什麼版本的curl都沒有關係。

您需要的唯一東西就是PHP錯誤消息。
你必須追查下來。 在phpinfo()中檢查error_reporting,error_loglog_errors指令。
檢查用戶的主目錄以獲取其他日誌文件。向服務器管理員詢問日誌文件。這必須是您搜索的唯一方向 - 一個PHP錯誤消息。

+0

不能同意更多.. + 1 – 2012-02-25 10:19:25

+0

我很抱歉,並會記住這一點,在未來,我會保持它簡短,並指出:(謝謝你的反饋 – Acure 2012-02-25 16:29:27

6

嘗試,加入這在你的腳本的頂部之前,請包括:

ini_set("display_errors", true); 
+0

可悲的是它不顯示任何東西,只是第e相同「500:內部服務器錯誤」:( – Acure 2012-02-25 17:02:43

+0

嘗試通過站點根目錄中的htaccess文件添加php_value僞指令來設置display_errors值 – 2012-02-25 17:26:16