php错误怎么调试,php引入第三方的SDK抛出异常了?
获取 SDK 有多种方式,较为推荐的方式是通过包依赖管理工具下载最新版本。
包依赖管理工具安装
composer
composer 是推荐的 PHP 包管理工具。安装 leancloud-sdk 只需执行以下命令:
composer require leancloud/leancloud-sdk
注意:
leancloud-sdk 依赖 PHP 的 curl 扩展(常见 Linux 系统下一般需要安装 php-curl 这个包)。
如果 composer 访问 packagist 仓库有问题,需要 设置镜像 或者通过代理(设置 http_proxy 环境变量)访问。
手动安装
下载 SDK 初始化
首先进入 控制台 > 设置 > 应用 Key 来获取 App ID,App Key 以及服务器地址。
然后导入 Client,并调用 initialize 方法进行初始化:
use \LeanCloud\Client;
// 参数依次为 App ID、App Key、Master Key
Client::initialize("{{appid}}", "{{appkey}}", "{{masterkey}}");
开启调试日志
在应用开发阶段,你可以选择开启 SDK 的调试日志(debug log)来方便追踪问题。调试日志开启后,SDK 会把网络请求、错误消息等信息输出到 IDE 的日志窗口,或是浏览器 Console 或是 LeanCloud 控制台的云引擎日志中。
// 放在 SDK 初始化语句 Client::initialize() 后面,只需要调用一次即可
Client::setDebug(true);
在应用发布之前,请关闭调试日志,以免暴露敏感数据。
验证
首先,确认本地网络环境是可以访问 LeanCloud 服务器的,可以执行以下命令:ping "API_BASE_URL"
API_BASE_URL 为绑定的 API 自定义域名。
如果当前网路正常将会得到如下响应:
PING api-ucloud.leancloud.cn (123.59.41.31): 56 data bytes
64 bytes from 123.59.41.31: icmp_seq=0 ttl=51 time=9.032 ms
64 bytes from 123.59.41.31: icmp_seq=1 ttl=51 time=7.290 ms
64 bytes from 123.59.41.31: icmp_seq=2 ttl=51 time=8.131 ms
64 bytes from 123.59.41.31: icmp_seq=3 ttl=51 time=9.689 ms
64 bytes from 123.59.41.31: icmp_seq=4 ttl=51 time=6.559 ms
64 bytes from 123.59.41.31: icmp_seq=5 ttl=51 time=8.665 ms
64 bytes from 123.59.41.31: icmp_seq=6 ttl=51 time=8.041 ms
64 bytes from 123.59.41.31: icmp_seq=7 ttl=51 time=8.203 ms
64 bytes from 123.59.41.31: icmp_seq=8 ttl=51 time=6.288 ms
64 bytes from 123.59.41.31: icmp_seq=9 ttl=51 time=7.938 ms
--api-ucloud.leancloud.cn ping statistics ---
10 packets transmitted, 10 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 6.288/7.984/9.689/0.997 ms
然后在项目中编写如下测试代码:
$testObject = new LeanObject("TestObject");
$testObject->set("words", "Hello world!");
try {$testObject->save();echo "保存成功。";} catch (Exception $ex) {echo "保存失败。";}
保存后运行程序。
然后打开 控制台 > 存储 > 数据 > TestObject,如果看到如下内容,说明 SDK 已经正确地执行了上述代码,安装完毕。
如果控制台没有发现对应的数据,请参考 问题排查。
问题排查
SDK 安装指南基于当前最新版本的 SDK 编写,所以排查问题前,请先检查下安装的 SDK 是不是最新版本。
401 Unauthorized
如果 SDK 抛出 401 异常或者查看本地网络访问日志存在:
{"code": 401,"error": "Unauthorized."}
则可认定为 App ID 或者 App Key 输入有误,或者是不匹配,很多开发者同时注册了多个应用,导致拷贝粘贴的时候,用 A 应用的 App ID 匹配 B 应用的 App Key,这样就会出现服务端鉴权失败的错误。
客户端无法访问网络
客3w户端尤其是手机端,应用在访问网络的时候需要申请一定的权限。
希望对你有所帮助!
为什么运行PHP就会出现404错误?
404是未找到相关资源,请检查的你访问地址是否正确或者代码中相关资源是否存在 另外相关资源的访问是否有权限和跨域的问题,都要仔细检查下
头顶为什么会莫名其妙出现这个?
通过 include() 或 require() 函数,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。除了它们处理错误的方式不同之外,这两个函数在其他方面都是相同的。include() 函数会生成一个警告(但是脚本会继续执行),而 require() 函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)。这两个函数用于创建可在多个页面重复使用的函数、页眉、页脚或元素。这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。include() 函数include() 函数可获得指定文件中的所有文本,并把文本拷贝到使用 include 函数的文件中。例子 1假设您拥有一个标准的页眉文件,名为 "header.php"。如需在页面中引用这个页眉文件,请使用 include() 函数,就像这样:
Welcome to my home pageSome text
例子 2现在,假设我们有一个在所有页面上使用的标准菜单文件。请看下面这个 "menu.php":Home
|About Us
|Contact Us
三个文件,"default.php"、"about.php" 以及 "contact.php" 都引用了 "menu.php" 文件。这是 "default.php" 中的代码:Welcome to my home pageSome text
如果您在浏览器中查看 "default.php" 的源代码,应该类似这样:Home
|About Us
|Contact Us
Welcome to my home pageSome text
同时,当然,我们也将用相同的方法处理 "about.php" 和 "contact.php"。通过使用引用文件,在您需要重命名链接、更改链接顺序或向站点添加另一张网页时,只要简单地更新 "menu.php" 文件中的文本即可。require() 函数require() 函数与 include() 相同,不同的是它对错误的处理方式。include() 函数会生成一个警告(但是脚本会继续执行),而 require() 函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)。如果在您通过 include() 引用文件时发生了错误,会得到类似下面这样的错误消息:PHP 代码:错误消息:Warning: include(wrongFile.php) [function.include]:failed to open stream:No such file or directory in C:\home\website\test.php on line 5Warning: include() [function.include]:Failed opening 'wrongFile.php' for inclusion(include_path='.;C:\php5\pear')in C:\home\website\test.php on line 5Hello World!请注意,echo 语句依然被执行了!这是因为警告不会中止脚本的执行。现在,让我们使用 require() 函数运行相同的例子。PHP 代码:错误消息:Warning: require(wrongFile.php) [function.require]:failed to open stream:No such file or directory in C:\home\website\test.php on line 5Fatal error: require() [function.require]:Failed opening required 'wrongFile.php'(include_path='.;C:\php5\pear')in C:\home\website\test.php on line 5由于在致命错误发生后终止了脚本的执行,因此 echo 语句不会执行。正因为在文件不存在或被重命名后脚本不会继续执行,因此我们推荐使用 require() 而不是 include()。error500怎么修复?
500错误解决办法
必现500错误解决办法:这种情况下500错误提示其实浏览器只是给了一个提示,并没有给出具体错误信息,所以我们需要做的就是修改服务器的一些东西让浏览器给出具体错误提示,以php脚本错误信息提示为例,简单分为三步:
一、修改本地浏览器设置,在IE属性里面需要取消勾选“显示有好的http错误信息”,注意是你本地电脑打开网页的浏览器,不是服务器的。
二、修改服务器IIS里面的“错误页”属性,如果iis里面有多个站点可以设置全局也可以设置单个网站配置,看具体情况而定,双击模块“错误页”,进入功能配置,右边,进入“编辑功能”,选择“详细错误”,这里选择的是“本地请求的详细错误和远程请求的自定义错误页”,我们需要的是通过远程访问也能看到详细错误信息。
三、修改PHP.ini里面的配置,打开PHPinfo()信息查看页,找到“LoadedConfigurationFile”项,此项为正在被使用的PHP.ini用记事本打开编辑PHP.ini将display_errors=Off改为display_errors=On,然后重启IIS之后再次访问之前出错的页面就可以看到详细错误帮助你
本地php环境下php打开显示404错误怎么办呢?
本地php环境下.php打开显示404错误解决方法如下: 一、404filenotfound. 二、如果是下在情况: 1、如果确定有这个文件,访问路径也是正确的。 2、没有做过配置,安装版需要配置 三、解决办法如下: 404错误:“找不到资源”。 是没有配置好。建议你使用XAMPP。集成环境。无需配置。APACHE/MYSQL/PHP/PERL 的集成环境,稳定。