PHP脚本适用于localhost,但服务器上有500个内部服务器错误

时间:2012-02-13 04:46:21

标签: php oauth linkedin

我正在尝试实现simple-linkedinphp库(它位于http://code.google.com/p/simple-linkedinphp/

它在localhost上运行正常,但当我将其上传到服务器时,我收到500内部服务器错误。这是错误日志所说的内容:

  

[12-Feb-2012 20:35:09] PHP解析错误:语法错误,第1行/home1/bangaban/public_html/LIAPIwrappertest/linkedin_3.1.1.class.php中的意外T_STRING

这没有用,因为第1行只是开始<?php标记,然后是一些评论。

该库需要PHP 5+并且服务器上的cURL扩展名和phpinfo()显示要安装的。我不认为脚本中有任何语法错误,因为它在localhost上工作正常,而且它是一个被很多人使用的库。

我用谷歌搜索并找到一些资源,讨论由写访问引起的500个错误; this question讨论了一下,但这是一个不同的错误信息,所以我不确定它将如何应用于这种情况。

好像它是服务器端的东西,也许是php.ini文件中的东西?或者.htaccess文件?在使用库或php脚本之前,我从未遇到过这个问题 一旦我让他们在localhost上工作,所以这对我来说真的很奇怪。

EDIT / UPDATE:

我将文件权限从644更改为755,但是没有做任何事情。

我更改了demo.php以加载测试文件而不是linkedin_3.1.1.class.php,并且工作正常,因此它绝对不能解析某些文件。然后我决定尝试相同库的一些早期版本。版本3.1.0解析并运行没有错误。虽然解析错误与版本3.1.1不同,但版本3.2.0不解析。这很奇怪,因为v3.2.0的下载次数是752,所以如果它适用于其他数百人,它怎么能对我不起作用呢?

无论如何,我现在要使用v3.1.0,看看是否有人能解开为什么v3.0.0之后的所有版本都会出现解析错误的谜团。我已经在我的托管服务提供商以及项目页面上记录了一个问题。

1 个答案:

答案 0 :(得分:2)

HTTP错误500用于php页面和解决方案的内部服务器

通常,要解决此问题,您需要获取位于以下位置的日志文件的帮助:

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

仅因Web服务器软件而发生此错误。但是查看完日志后,您可能找不到很多细节。此问题可能由以下原因引起:

  1. 格式错误的php cgi脚本
  2. .htaccess或其他配置文件中的无效指令
  3. 文件系统和服务器软件施加的限制(例如,php日志文件大小设置为10Mb) 4.Missing php.ini(或无法读取php.ini文件)
  4. 在大多数情况下,它是一个无效的.htaccess指令。但是最近我遇到了一个没有/etc/php.ini文件的Web服务器。很久以前我设置这个服务器)Apache chrooted jail)。所以你需要在监狱外维护两个文件,在监狱里维护另一个文件:

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

    许多脚本在运行时打开此文件以获取正确的配置指令。如果找不到此文件,则会收到错误500.需要一些时间来解决此问题。最后strace帮助我调试了这个问题。