几个微信公众号开发时的错误代码

开发公众号也有好一段时间了,说起来开发是蛮简单的。很久没看了,最近遇到了一些问题,小小总结一下。

客服接口65400错误

很久没有动过一个微信公众号了,今天发信息的时候发现发不通。看了日志,发现了这个错误——[Wechat][65400] please enable new custom service, or wait for a while if you have enabled hint: [0Lx7ja0168e303]。

想了一下,应该是没有添加客服吧(虽然之前使用没问题,貌似最近公众号升级了导致出现问题)。试着添加了一下客服,稍等5分钟左右,就好了。嗯嗯。

客服接口45015错误

{  
    "errcode":45015,  
    "errmsg":"response out of time limit or subscription is canceled hint: [ZE1Uxa0498age8]"  
}  

原因是当用户微信不活跃时间超过24小时(此时间当前是多少由腾讯定),不会将信息推送到用户微信公众号。

原先我们给用户发送的消息都是使用客服消息发送的,就会导致这种情况。如果是网站的服务通知,可以使用模板进行发送,这个没有时间限制。

当然模板功能也是要申请的,大概需要2天时间。每个账号可以同时使用15个模板。当前每个模板的日调用上限为 10 万次。

参考资料:


使用git@oschina时存储密码

最近使用了oschina的git服务,虽然不那么稳定(一星期抽风一到两次),应该已经是国内最好的git服务了吧。小团队不需要部署自己的git服务器,减少了不少维护成本。

然而,在服务器上每一次拉取代码都要输入密码,比较烦人。

不过为了方便部署,我还是把记住密码的功能打开了。下面是解决办法。

  • 设置基本的git信息:

      $ git config --global user.name "John Doe"
      $ git config --global user.email johndoe@example.com
    
  • 进行一次git操作,pull或者fetch都ok
  • 储存密码

      git config --global credential.helper store # 长期存储密码
      git config --global credential.helper cache # 设置记住密码(默认15分钟)
      git config credential.helper 'cache --timeout=3600' # 自己设置时间
    

参考资料:


军哥的lnmp一键安装包

我自己部署的话,一般用的是debian+openresty+postgres+php。虽然如此,为别人快速安装一键部署环境的时候,lnmp依然是最简便易行的选择。

基本的操作在官网上都有,lnmp一键安装包。今天仅仅记录一些容易忘记的操作,避免每次都上官网去找。

我使用的版本是1.2,发现mysql和pureftp会有些问题,因为网站已经开放使用了,也就懒得换了。

安装

按照官网的提示,安装使用下面的命令,再输入些相关的信息,即可安装完成。

wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp

常用命令

LNMP 1.2输入lnmp命令即可看到常用命令。

LNMP 1.1及之前的版本采用/root/vhost.sh 进行添加虚拟主机。

Usage: lnmp {start|stop|reload|restart|kill|status}
Usage: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
Usage: lnmp vhost {add|list|del}
Usage: lnmp database {add|list|del}
Usage: lnmp ftp {add|list|del}

虚拟主机管理

直接使用lnmp命令即可

lnmp vhost add
lnmp vhost list
lnmp vhost del

虚拟主机配置文件在:

/usr/local/nginx/conf/vhost/域名.conf

执行:/etc/init.d/nginx restart 重启生效

上传网站后执行:chown www:www -R /path/to/dir 对网站目录进行权限设置

链接

插件

FTP服务器: PureFTPd,执行:./pureftpd.sh 安装,http://yourIP/ftp/ 进行管理。

缓存加速: LNMP1.2下统一使用./addons.sh 进行安装和卸载。

使用方法:./addons.sh {install uninstall} {eaccelerator xcache memcached opcache redis imagemagick ioncube}

安装目录

LNMP相关软件安装目录

Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/

LNMP相关配置文件位置

Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
/root/vhost.sh添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.conf

转载自:


使用 apache ab 做网站压力测试【转】

1、先查看一下版本信息 ab -V(注意是大写的V)

2、我们也可以使用小写的v查看下ab命令的一些属性 ab -v

3、现在我们就对51CTO的网站进行一次压力测试吧,使用命令ab -n1000 -c10 http://www.51cto.com/index.php,其中 -n1000 表示总请求数 -c10表示并发用户数为10 http://www.51cto.com/index.php 表示请求的URL,下面是测试的结果,其中我们最关心的三个指标,我已经注释出来了。

[t1@a1 test]$ ab -n1000 -c10 http://www.51cto.com/index.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.51cto.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests

1.     /*WEB服务器用的是Tengine */

Server Software:        Tengine
Server Hostname:        www.51cto.com
Server Port:            80

Document Path:          /index.php
Document Length:        705 bytes

Concurrency Level:      10
Time taken for tests:   11.770 seconds
Complete requests:      1000
Failed requests:        51
   (Connect: 0, Receive: 0, Length: 51, Exceptions: 0)
Write errors:           0
Non-2xx responses:      1000
Total transferred:      1174340 bytes
HTML transferred:       1028289 bytes
2.    /*大家最关心的指标之一,指的是吞吐率
3.    每秒事务数,后面括号中的 mean 表示这是一个平均值*/  

Requests per second:    84.96 [#/sec] (mean)
4.    /*大家最关心的指标之二,指的是用户平均请求等待时间
5.    平均事务响应时间 ,后面括号中的 mean 表示这是一个平均值*/ 

Time per request:       117.700 [ms] (mean)
6.    /*大家最关心的指标之三,指的是服务器平均请求处理时间

Time per request:       11.770 [ms] (mean, across all concurrent requests)
Transfer rate:          97.44 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       38   71 174.0     39    1046
Processing:    39   42  17.5     40     395
Waiting:       38   41  10.9     40     283
Total:         77  113 175.0     79    1090

Percentage of the requests served within a certain time (ms)
  50%     79
  66%     82
  75%     83
  80%     83
  90%     86
  95%     89
  98%   1084
  99%   1086
 100%   1090 (longest request)


4、为了使结果更有对比性,我们将并发用户更改为100个进行压力测试,我这里只将三个指标贴出来。 4、为了使结果更有对比性,我们将并发用户更改为100个进行压力测试,我这里只将三个指标贴出来。

Requests per second:    190.95 [#/sec] (mean)  
Time per request:       523.694 [ms] (mean)  
Time per request:       5.237 [ms] (mean, across all concurrent requests) 

5、将并发用户改为200个进行测试

Requests per second:    186.00 [#/sec] (mean)  
Time per request:       1149.433 [ms] (mean)  
Time per request:       5.747 [ms] (mean, across all concurrent requests)  

6、500个并发用户时的情况

Requests per second:    180.99 [#/sec] (mean)  
Time per request:       2631.662 [ms] (mean)  
Time per request:       5.263 [ms] (mean, across all concurrent requests)  

我们来分析下测试的结果,先对比下吞吐率,当并发用户的时候吞吐率最高为190 reqs/s,当并发用户数为200,500 吞吐率下降了,随之用户的等待时间更是明显增加了,已经有2s的等待时间了。这说明性能明显下降了。当然分析这个测试结果并不是说明51CTO的网站的并发用户只能在500左右,因为这个测试还不是在他们的服务器上面去测试,经过了网络带宽会对这个测试的结果有很大的影响。另外我们在生产环境下测试的时候,最好能将测试结果做成报表,这样可以非常清晰地对比出问题来。


转载自:


BeagleBone Black焕发第二春

BeagleBone Black吃灰已久。留着实在可惜。最近又拿出来捣弄了一番。已废旧利用为主要目的。这次总共做了几件事:

  1. 烧录系统到micro SD卡并写入eMMC;
  2. 使用usb连接电脑后联网。

烧录系统到micro SD卡并写入eMMC。

我是在windows下。

  • 第一步:下载官方 Debian 镜像

  • 第二步:解压缩xz文件里的img镜像。

  • 第三步:打开 Win32DiskImager ,选择镜像和目标SD卡,烧录到SD卡中。

Win32DiskImager烧写

烧写完成之后将SD卡插入到树莓派的卡槽中,上电启动,我们可以通过串口或者通过ip来登陆。

  • 第四步:把烧写好镜像的SD卡插入BBB,按住SD卡槽旁边的按键(在卡槽另一面)(15s左右),BBB会从SD卡启动。然后用 ssh工具putty,或者使用HDMI接口直接连接显示器。

使用cd命令进入boot目录下,可以看到有一个叫uEnv.txt的文件,,使用nano或者vim打开,,将其中的

##enable BBB: eMMC Flasher:
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

改成

##enable BBB: eMMC Flasher:
cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

重启BBB。

  • 第五步:重启之后,你会看到BBB的四个LED会像流水灯一样闪烁,,接下来等很久很久,,你的BBB就烧写好了,,烧写好,,四个LED会全亮的。。

使用usb连接电脑后联网

(1)打开网络连接,找到主机外网的网络连接(如下图中,我的就是本地连接),以及BBB的usb0在主机上的的网络连接(如下图,本地连接2)

(2)这时需要修改上图中的本地连接2(这里依据自己机器的实际显示)TCP/IPv4属性,BBB连接主机后,它会默认手动配置ip地址和子网掩码,所以需要把这里改成“自动获取IP地址”和“自动获取DNS服务器地址”,修改后,确定保存,如下图所示:

(3)修改本地连接的共享属性,将网络共享给本地连接2,确定保存,如下图:

(4)使用putty远程连接BBB上的系统,配置BB-Black的路由和DNS等,输入指令:

route add default gw 192.168.7.1:

(5)需要配置域名解析,编辑文件 /etc/resolv.conf,使用vim打开之后,增加以下内容: (5)需要配置域名解析,编辑文件 /etc/resolv.conf,使用vim打开之后,增加以下内容:

nameserver 8.8.8.8

(6)测试一下是否网络共享了,输入命令:ping www.baidu.com,就OK了 (6)测试一下是否网络共享了,输入命令:ping www.baidu.com,就OK了


参考资料: