我正在尝试实现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之后的所有版本都会出现解析错误的谜团。我已经在我的托管服务提供商以及项目页面上记录了一个问题。
答案 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服务器软件而发生此错误。但是查看完日志后,您可能找不到很多细节。此问题可能由以下原因引起:
在大多数情况下,它是一个无效的.htaccess指令。但是最近我遇到了一个没有/etc/php.ini文件的Web服务器。很久以前我设置这个服务器)Apache chrooted jail)。所以你需要在监狱外维护两个文件,在监狱里维护另一个文件:
=> /etc/php.ini
=> /chroot/etc/php.ini <-- this file was missing
许多脚本在运行时打开此文件以获取正确的配置指令。如果找不到此文件,则会收到错误500.需要一些时间来解决此问题。最后strace帮助我调试了这个问题。