首页 开发编程 正文

怎么查看php的日志

Nginx概述Nginx是lgorSysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。当访问的服务具有多个实例节点时,Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。...

怎么查看php的日志,nginx如何配置?

Nginx概述

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

常用功能反向代理,代理对象为服务端做代理,使客户端不需要感知服务端的存在,只需要访问代理服务器便可获得想要的结果。实现限流、负载均衡、动静分离等。负载均衡(Load Balance),是分布式系统中一个非常重要的概念。当访问的服务具有多个实例节点时,需要根据某种“均衡”的策略决定请求发往哪个节点,这个过程就是所谓的负载均衡。多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。web缓存,Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理配置示例

修改Nginx目录下nginx.conf配置文件,如下所示:

upstream server {

ip_hash;

server 192.168.200.129:80; #第一台负载的ip及端口

server 192.168.200.131:80; #第二台负载的ip及端口

}

server {

listen 80;

server_name localhost Nginx_ip;

location / {

proxy_pass http://server;

proxy_redirect default;

}

}

参数说明upstream

upstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器。

upstream backend {

server backend1.example.com weight=5;

server backend2.example.com fail_timeout=5s slow_start=30s;

server backend3.example.com resolve;

server backend4.example.com service=http resolve;

server backup1.example.com backup;

server backup2.example.com backup;

}

server

server模块配置是http模块中的一个子模块,用来定义一个虚拟访问主机。

server {

listen 80;

server_name localhost nginx_ip;

root /nginx/www;

index index.php index.html index.html;

charset utf-8;

access_log logs/access.log;

error_log logs/error.log;

}

location

location模块配置在路由访问信息配置中关联到反向代理、负载均衡等等各项功能。

语法规则: location [=|~|~*|^~] /uri/ { … }

多个location优先级:首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

location / {

root /nginx/www;

index index.php index.html index.htm;

}

location ^~ /test {

proxy_pass http://backend;

proxy_redirect off;

proxy_set_header Host $host;

}

location /:表示匹配访问根目录。

root:用于指定访问根目录时,访问虚拟主机的web目录。

index:在不指定访问具体资源时,默认展示的资源文件列表。

如果解决了你的疑惑,请点点关注和评论,谢谢支持。

正春华枝俏,待秋实果茂,与君共勉。

什么是社交电商?

一,社交电商作为电子商务的一种新的模式,通过人与人之间的互动、沟通等社交化元素从而激发交易行为,是一种建立在个人信任上的一种消费行为。

说到社交电商,大家第一反应自然是拼多多,而拼团是典型的一种社交玩法。拼团也是建立在人与人之间的信任关系上,对方发出拼团链接,基本上面对的用户是自己的亲朋好友,信任感较强,很容易刺激其购买意识。

当然,社交电商并不只有拼团这么一种社交玩法,还有其他玩法供商家们发掘,根据电商运营模式拥有不同的玩法。

二、内容社交电商

内容电商是一种“物以类聚”的运营模式,将一些有共同爱好的用户聚合在一起,通过网红、KOL发表一些高质量的内容,例如产品分享、使用反馈等,吸引用户阅读访问,从而积累一波粉丝,引导用户完成裂变,最终达成交易。

三、零售电商

社交零售电商,是以个人为单位,通过社交工具,利用自己的社交圈子进行商品交易、提供服务,一般这种电商模式需要拥有多元化供应链和品牌,并且开发分销商城,招募代理,进行一件代发。

因此这种模式的社交电商分为直销行业分销。

直销一般是自营,搭建线上商城将商品直接推给消费者;而分销是面向个人店主等小B用户,通过他们接触消费者,个人店主和小B负责产品的分销,商品供应链和服务一般是由他们上游的平台进行分担。

四、分享电商

社交分享电商是抓住用户贪小便宜的心理,利用低价来刺激消费,鼓励消费者在好友圈进行商品推广,从而达到裂变拉新促活的效果。

上文中提到的拼团模式,属于分享电商典型玩法,借助社交力量进行用户下沉,过低门槛促销活动来迎合用户心理,以此达成销售裂变的目标。

常见的平台有拼多多、京东拼购等一些团购平台。除此之外,这些平台还拥有砍价、拼团抽奖等活动模式,并且针对的是三四线及以下城市增量人群。这些地区欠发达,消费者对价格更为敏感,但更易受熟人圈子的影响。

但对于这类平台而言,需要借助一个流量洼地,例如微信。例如拼多多,借助小程序和APP在微信群中进行广泛传播。

大家一般用什么工具测试HTTP和json接口?

很高兴回答你的问题,我常用到的api接口文档有三款,下面我来分别进行举例说明。

1、apizza

apizza 是一个极客专属的api协作管理工具,你可以在这里进行api测试,方便快捷的编写api文档,智能识别参数,自动生成代码,流程测试,让你的团队协作更高效。

第一步用邮箱注册账号,注册成功之后就可以创建项目了。

第二步注册账号是个人版的,下面是个人版的权限,可以创建8个项目,每个项目可以有两个开发者,每个项目可以创建200个接口,对于大部分的项目来说都是可以满足要求的。

第三步就可以根据自己的项目需要去创建接口了,无论是从界面设计还是功能使用上我都非常喜欢这款软件,这里我也推荐大家去尝试尝试。

2、showdoc

ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。你可以使用Showdoc来编写在线API文档、技术文档、数据字典、在线手册

showdoc区别于其他项目的优势是可以下载源代码,并且部署在自己的服务器,这是我目前知道的最好的开源接口api管理工具。

当然除此之外就是直接在线上使用,它不仅可以记录api接口文档,还可以记录数据库的字典,更加方便与后期的开发。

这款软件也值得大家去使用,好的软件工具总是不由让开发者恋恋不舍。

3、postman

postman是我最早接触的一款接口测试工具,由于是英文的所以对于刚开始接触的小白来说是有一定的难度,并且需要下载安装,因为我喜欢比较用在线的工具,所以再有其他选择的时候我就没有继续在使用,但是因人而异,确实是一款不错的测试工具。

以上就是我给大家推荐的三款api测试接口文档,当然在市场上也不仅限于此,大家可以在评论区进行留言讨论。

欢迎大家点赞关注转发,谢谢。

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户端尤其是手机端,应用在访问网络的时候需要申请一定的权限。

希望对你有所帮助!

如何才能写出高质量的代码?

作为一名java开发工程师,对于这个问题我算是比较有感触的,所以想说说我对java开发的一些看法,纯属个人意见,不喜轻喷!

什么样的代码算是高质量代码,或者说是高质量代码的特征?

在我看来,主要就是在于可读性、易扩展两方面。

首先,我觉得最重要是要可读性高。为什么这么说呢?相信做过开发的朋友都知道,互联网公司的人员流动率还是比较高的,可能出现的情况是领导突然跟你说,你去交接一下某某某同事的工作,而交接的时候一般情况主要是业务流程、功能模块来交接,大概率不会一行一行的代码去读。如果项目正常运转,不出问题、也没有需求变更(大概率需求会变更),那就是你好我好大家好,如果出了问题或者需求变更,还是之前同事的那些模块,那就必须得去啃代码了。这个时候代码的易读性就显得非常重要了。你可以试想一下,通篇没有一句注释、一个方法几百行、if/else满天飞、方法之间参数传递全是map、sql语句各种嵌套子查询、关联查询7-8个表,当你看到这样的代码,估计心里顿时万马奔腾,怒火蹭蹭蹭的往头上涌去。所以我觉得可读性是第一要素。

其次,扩展性要好。这个也很好理解,现在是信息时代,流量为王,为了提高市场占有率,普遍需求变更频繁,2周一次发布都是正常频率。在这种频繁需求变更的情况下,如果代码的扩展性不高,每一次需求都需要大量改动代码,即耗费时间还容易出错,比如漏改某处地方而引起其他功能异常。所以开发过程中要注意代码扩展性,当然也不要去过分设计,让代码晦涩难懂。

高质量代码在开发中的意义?《计算机程序的构造和解释》一书提到代码是写给人看的,不是写给机器看的,只是顺便计算机可以执行而已。如果代码是写给机器看的,那完全可以使用汇编语言或者机器语言(二进制),直接让机器执行。

所以代码一定要让人容易理解。高质量代码的好处:

好的代码读起来令人赏心悦目,比如java里的spring、mybatis等框架,读源码时常常不自觉发出惊叹,代码原来还可以这么写!

质量高意味着维护成本低,运行稳定

质量高意味着扩展性强,方便业务开发

如何去写高质量代码?

对于做java的来说,我建议去看一下《阿里巴巴Java开发手册》。

手册以 Java 开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干二级子目录。根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。对于规约条目的延伸信息中,“说明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要提防的雷区,以及真实的错误案例。 摘自《阿里巴巴 Java 开发手册》

最后推荐一下阿里巴巴代码规范扫描插件,以IDEA为例,安装如下

使用如下:

本文转载自互联网,如有侵权,联系删除