2012-02-13 98 views
0

我想實現簡單linkedinphp庫500內部服務器錯誤(它在http://code.google.com/p/simple-linkedinphp/找到)PHP腳本在本地主機,但對服務器

它運行在本地主機上很好,但是當我把它上傳到服務器我得到500內部服務器錯誤。這裏的錯誤日誌中這樣說:

[12-Feb-2012 20:35:09] PHP Parse error: syntax error, unexpected T_STRING in /home1/bangaban/public_html/LIAPIwrappertest/linkedin_3.1.1.class.php on line 1

這並沒有幫助,因爲1號線是剛剛開幕<?php標籤,然後一些意見。

該庫需要PHP 5+和服務器上的cURL擴展,並且phpinfo()顯示要安裝。我不認爲腳本中有任何語法錯誤,因爲它在本地主機上運行良好,而且它是一個被許多人使用的庫。

我搜索了一下,發現了一些資源,講述了由寫訪問引起的500錯誤; this question談到了這一點,但它是一個不同的錯誤信息,所以我不知道它將如何適用於這種情況。

它似乎是在服務器端的東西,也許在php.ini文件中的東西?或者,也許.htaccess文件?我以前從來沒有遇到過這個問題,因爲我曾經讓它們在本地主機上工作,所以這對我來說真的很奇怪。

編輯/ UPDATE:

我改變了文件的權限從644到755,但沒有做任何事情。

我改變了demo.php加載測試文件,而不是linkedin_3.1.1.class.php,並且工作正常,所以它絕對不會解析一些文件。然後我決定嘗試一些相同庫的早期版本。版本3.1.0解析並運行時沒有錯誤。版本3.2.0不解析,儘管解析錯誤與版本3.1.1不同。這很奇怪,因爲v3.2.0的下載次數是752,所以如果它爲數百其他人工作,它怎麼會不適合我?

無論如何,我現在要使用v3.1.0,看看是否有人能夠解決爲什麼v3.0.0之後的所有版本都會得到解析錯誤的奧祕。我在我的託管服務提供商以及項目頁面上記錄了一個問題。

+0

你有沒有試過在命令行上運行該服務器上的腳本?在某些情況下,PHP的錯誤消息/行號可能對你有用。 – 2012-02-13 04:49:12

+0

最糟糕的問題之一可能是:P可能是任何語法錯誤(如缺少一個分號)使用短標籤,當你不應該。由於它在本地工作,極不可能發生某種語法錯誤。確保你的php配置在你的本地主機和服務器上是一樣的。在我的情況下,它使用短標籤而不啓用它。 – 2012-02-13 05:07:46

+0

@MarcB我正在使用一個共享主機提供商,所以我不認爲有一種方法可以通過命令行訪問PHP。 – edpeciulis 2012-02-13 15:58:27

回答

2

HTTP錯誤的PHP頁面和解決方案500內部服務器

一般情況下,要解決這個問題,你需要採取的位於日誌文件幫助以下位置:

=> /var/log/message 
=> /var/log/httpd/error_logs (/var/log/lighttpd/error_log or /var/log/httpd/error_log) 

該錯誤只發生是因爲網絡服務器軟件。然而,在查看日誌之後,您可能找不到許多細節。

  1. 格式不正確PHP的CGI腳本
  2. 在一個.htaccess或其他配置文件
  3. 限制由文件系統和服務器軟件強加一個無效的指令(例如PHP的日誌文件大小:此問題可能是由以下原因造成設置爲10MB), 4.Missing php.ini中(或無法讀取php.ini文件)

在大多數情況下,它是一個無效的.htaccess指令。但是最近我遇到了一個沒有/etc/php.ini文件的web服務器。很久以前,我設置了這個服務器)Apache chrooted jail)。所以,你需要保持兩個文件一個監獄外,另一個裏面監獄:

=> /etc/php.ini 
=> /chroot/etc/php.ini <-- this file was missing 

許多腳本打開飛這個文件,以獲得正確的配置指令。如果這個文件沒有找到,你會得到錯誤500.花了一些時間來找出這個問題。最後strace幫我調試了這個問題。

+0

我最終切換到另一個庫,但這些都是有用的疑難解答提示。我還補充說,在查看日誌文件時,使用grep -v過濾掉你不想要的內容並grep只顯示包含要匹配的字符串的行是很有用的。 – edpeciulis 2012-11-20 16:23:49

相關問題