【问题标题】:Google API Client Library giving PHP errorGoogle API 客户端库给出 PHP 错误
【发布时间】:2017-07-28 18:12:37
【问题描述】:

我使用 Composer 在我的 Ubuntu Server 16.04 上安装了 Google API 客户端库,我正在他们的网页上遵循他们的指导。

每当我需要验证 G Suite 帐户时,我都会包含以下代码:

require_once vendor/autoload.php;但它正在抛出一个500 internal error

错误的详细信息是

<br /><b>Fatal error</b>: require_once(): Failed opening required '../../../../vendor/autoload.php' (include_path='.:/usr/share/php') in <b>/var/www/html/php/insert.php</b> on line <b>6</b><br />

我运行了find . -name autoload.php 命令,发现文件位于./vendor/autoload.php,因此我使用require_once('../../../../vendor/autoload.php');,因为它映射到正确的路径。不过,我得到了上面的错误。

我尝试使用require_once __DIR__ . '/vendor/autoload.php',正如下面 Alex 的回答中所建议的那样,但我现在收到以下错误。

<br /><b>Fatal error</b>: require_once(): Failed opening required '/var/www/html/php/vendor/autoload.php' (include_path='.:/usr/share/php') in <b>/var/www/html/php/insert.php</b> on line <b>6</b><br />

我需要该文件才能运行库。

【问题讨论】:

  • 请使用您正在使用的库的名称改进您的问题,因为它是在 composer.json 中编写的,并从日志中添加实际错误。 500 是一个通用的服务器端错误,它没有说明错误的性质。
  • 如果删除线可以解决问题 - 删除线。
  • 但是这个库还能用吗?
  • 您说“代码工作正常”,我明白了,正如您所期望的那样。
  • 服务器日志。或者在脚本顶部添加ini_set('display_errors', 1),让它将错误消息发送给客户端。你肯定知道图书馆的规范名称。

标签: php android composer-php google-signin googlesigninapi


【解决方案1】:

假设composer.jsoninsert.php位于同一目录,require行应该是这样的:

require_once __DIR__ . '/vendor/autoload.php'

__DIR__被翻译成当前脚本所在目录的绝对路径,'/vendor/autoload.php'是从目录到autoload.php的相对路径。

【讨论】:

  • 如果你的find 结果是./vendor/autoload.php,你为什么要使用../../../../vendor/autoload.php?对我来说完全是无稽之谈。请使用答案中的代码,我已经更新了一些解释。
  • 那么find 中的. 指的是什么?我假设你是从你的 php 文件所在的/var/www/html/php/ 运行它的,但显然它不是真的。
  • 文件autoload.php位于/root/vendor/autoload.php
  • 好的,我不会评论供应商的位置选择。检查您的 httpd/php 用户是否有权访问该文件,然后将其包含在绝对路径中:require_once "/root/vendor/autoload.php";
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 2013-01-19
  • 2020-08-05
  • 2016-06-07
  • 1970-01-01
相关资源
最近更新 更多