模拟微信公众平台登录

首先我们来看下微信公众平台官网: http://mp.weixin.qq.com

20141028213413

 

然后手动提交登录数据,查看提交的POST数据:

20141028213633

 

密码应该是加密了,我对应的查看下JS代码,看如何进行加密的?

20141028213815

 

由此得出密码是通过MD5进行了加密。

所以我们就可以通过php的curl来进行模拟登陆。

代码如下:

//用户名
$username = "admin@jhonse.com";
//密码
$password = md5("jhonse");

/******模拟微信登入*******/
//cookie保存路径  
$cookie_path = getcwd()."/cookie.txt"; 
//提交地址
$login_url = 'https://mp.weixin.qq.com/cgi-bin/login';  
//post数据
$data = 'f=json&imgcode=&pwd='.$password.'&username='.$username;  
$ch = curl_init($login_url);  
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);  
curl_setopt($ch,CURLOPT_POST,1);  
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_path);  
/*******ssl认证(因为微信公众平台是采用https来传递的)********/
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);  
/**************/
curl_setopt($ch,CURLOPT_REFERER,'https://mp.weixin.qq.com');  
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);  
$content = curl_exec($ch);  
var_dump($content);
curl_close($ch);

 效果:

20141028214453

 

登录成功,并返回跳转地址.以及对应的生成了cookie.txt文件进行保存.

20141028214756

CentOS 7.0 yum安装Apache + PHP + MySQL

1. 安装Apache, PHP, MySQL以及php连接mysql库组件。

yum -y install httpd php mysql mysql-server php-mysql

 2. 安装apache扩展

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

 3. 安装php的扩展

yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc

 4. 安装MySQL的扩展

yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

 5. 配置开机启动服务

#/sbin/chkconfig httpd on             [设置apache服务器httpd服务开机启动]
#/sbin/service httpd start            [启动httpd服务,与开机启动无关]
#/sbin/service mysqld start           [启动mysqld服务,与开机启动无关]

apache的配置文件是/etc/httpd/conf下
modules放在/usr/lib/httpd下
php的配置文件在/etc/php.d/下 和/etc/php.ini
php的modules放在/usr/lib/php/modules下

6. 绑定域名

在/etc/httpd/conf/httpd.conf配置文件中,提供了范例:

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>

所以绑定域名可以跟着提供的范例来配置即可。

说明:

MySQL默认安装的后,root密码为空.

CenteOS 6.3 安装以及配置Rsync服务

本博客所用的服务器是阿里云的CenteOS 6.3,而之前都是给公司的服务器配置备份同步,今天给自己的服务器配置备份以及备份。

第一步: 安装Rsync服务

查看是否安装Rsync服务

rsync

安装Rsync服务

yum install rsync

20141022180949

第二步: 配置Rsync.conf文件

在/home/jhonse/etc/下创建rsync.conf

20141022181247

 

代码如下:

uid = root
gid = root
use chroot = no
max connections = 2
strict mades = yes
port = 873
pid file = /home/jhonse/var/run/rsyncd.pid
lock file = /home/jhonse/var/run/rsync.lock
log file = /home/jhonse/var/log/rsyncd.log

[jhonseCode]
path = /www
read only = false
transfer logging = yes
list = no
hosts allow = *
auth users = root
secrets file = /home/jhonse/etc/rsyncd.secrets

[jhonseDataBase]
path = /alidata/server/mysql/var
read only = false
transfer logging = yes
list = no
hosts allow = *
auth users = root
secrets file = /home/jhonse/etc/rsyncd.secrets

 第三步: 创建rsyncd.secrets密码文件

格式: 用户:密码

并设置该文件的权限

chmod 600 /home/jhonse/etc/rsyncd.secrets

 第四步: 启动rsync服务端

rsync --daemon --config=/home/jhonse/etc/rsyncd.conf

 第五步: 效果图

20141022182850

windows2008和Centos7.0通过Rsync来实现通过更新(备份)

Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限、时间、软硬链接。第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分。传输数据过程中可以实行压缩及解压缩操作,减少带宽流量。支持scp、ssh及直接socket方式连接,支持匿名传输。支持Linux,Window平台。写本文的时候,window版最新版为4.0.5版

官网:http://rsync.samba.org/

Linux版下载:http://rsync.samba.org/download.html

Windows版下载:https://www.itefix.no/i2/cwrsync-get 选(Free Edition 免费版)

客户端:cwRsync_4.0.5_Installer

服务端:cwRsyncServer_4.0.5_Installer

第一步: 环境说明

Windows Service 2008 作为服务器端

Centos 7.0 作为客户端

第二步: 安装Rsync服务器软件

运行cwRsyncServer_4.0.5_Installer.exe进行安装

默认安装路径为  C:\Program Files\ICW\

不要修改路径,之前估计是修改了路径,导致安装不成功,默认安装就行,安装过程中有一步比较重要的地方

会要求输入用户名 两次密码, 这里不是创建密码 而是输入rsync登陆windows系统的账号密码

20141017221757

 

在这里输入你要设置的用户名和密码,这个在两台机器使用rsync相互通信时会使用到的用户名和密码的。

创建过程中若出现安全软件拦截时,要让安全软件允许这样操作,这样才能正常创建成功。

第三步: 配置Rsync

配置C:\Program Files\ICW\rsyncd.conf文件

use chroot = false

strict modes = false

hosts allow = *

log file = rsyncd.log

port = 873

uid=0  # uid和gid要添加,否则会报:@ERROR: invalid uid nobody

gid=0  # rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.2]  的错误信息

# Module definitions

# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work

#

[backup] #这个模块名可以随意命名

path = /cygdrive/d/work  #要同步的文件路径,代表d:\work目录

read only = false

transfer logging = yes

list  = no

hosts allow = *

auth users = rsync      #rsync用户 仅这个账户可以同步该配置下文件

secrets file = etc/rsyncd.secrets  #rsync登陆用户文件 记录rsync时需要输入的账号密码

 说明: 

path 路径并不是文件路径,而是用/cygdrive/(文件路径),否则会报错,提示找不到对应的文件或者文件夹

例如: (已备份网站源码以及备份网站数据库为例)

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
port = 873
uid = 0
gid = 0

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[515aaa]
path = /cygdrive/d/websoft/www/xingyishu
read only = false
transfer logging = yes
list = no
hosts allow = *
auth users = 515aaa
secrets file = etc/rsyncd.secrets

[515aaaDataBase]
path = /cygdrive/c/ProgramData/MySQL/MySQL Server 5.1/data/xingyishu
read only = false
transfer logging = yes
list = no
hosts allow = *
auth users = 515aaa
secrets file = etc/rsyncd.secrets

然后再创建密码文件(etc/rsyncd.secrets)

格式: 用户名:密码

20141017222657

 

说明:

这个用户名和密码就是一开始安装时所建立的用户名和密码的。

第四步: 启用Rsync服务

服务器管理器-工具-服务 其他版本的windows可以用控制面板-管理工具-服务

找到服务rsyncserver (如果没有这个服务 应该是你用户名密码那你输入有问题 卸载了重新装一次)

将rsyncserver设置为自动启动 并启动服务

20141017223044

 

说明:

若使用过程中有配置文件的修改也要对这个服务进行重启。

第五步: 配置Rsync客户端(centos 7.0)

正常的话linux机器都会自带rsync。如何查询centos 7.0是否安装了rsync软件?

20141017223607

 

如果木有安装,请自行安装。

首先在/etc/目录下给客户端添加密码文件

20141017223927

 

说明:

名称以及后缀自定义,内容为对应的密码

然后把这个文件设置为600的权限

chmod 600 rsyncd_515aaa.scrt

配置客户端后,就可以进行rsync同步测试。

第六步: 让rsync 客户端自动与服务器同步数据

自动执行命令,需要用到crontab命令来定时执行任务。

crontab [-u username] [-l|-e|-r]
选项与参数:
-u  :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e  :编辑 crontab 的工作内容
-l  :查阅 crontab 的工作内容
-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑

08090352-4e0aa3fe4f404b3491df384758229be1

 

创建2个shell文件来执行备份(515aaaCode.sh:源码备份;515aaaBaseData.sh:数据库备份)

代码: 515aaaCode.sh

#!/bin/sh
#515aaa Code BackCode - Jhonse
rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd_515aaa.scrt 515aaa@服务器地址::515aaa(模块名称)  /data/code/$(date +'%Y-%m-%d')

代码: 515aaaBaseData.sh

#!/bin/sh
#515aaa DataBase Backup
rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd_515aaa.scrt 515aaa@服务器地址::515aaaDataBase(模块名称)  /data/database/$(date +'%Y-%d-%m')

代码: crontab命令

20 22 * * * . /data/command/515aaaCode.sh
20 22 * * * . /data/command/515aaaDataBase.sh

可以采用 crontab -e 来编辑

查看的话直接用crontab -l

20141017225531

 

第七步: 效果图

20141017225753

 

 

centos 7.0 忘记root密码,如何解决?

这段时间都在开发手机网站以及手机客户端(phoegap+html5),而公司的本地服务器(centos7)自从安装好系统之后,就木有去管理了。今天特意用SSH工具链接本地服务器, 提示请输入root密码,输入很多次,都提示密码错误。没办法了,只能百度资料来解决这个问题了。

解决方法如下:(来自网络)

1. 启动画面出来时,选择第二项,并按下e字母键。如下图

20141017215553

2、移动光标键,找到linux16这一行。如下图

20141017215745

3、如图,将ro改成成为rw init=sysroot/bin/sh 

20141017215847

4、按ctrl+X后,进入提示符。

20141017220047

5、下命令改成root密码即可。最后重起,第一次启动会有点慢,系统会再重开一次,这时就可以正常使用了。

20141017220205

2014年10月编程语言排行榜:Dart首次进入前20

国庆假期过去一半,TIOBE发布了10月份编程语言排行榜,一起来看下排名情况:前三甲无明显变化,依然为C、Java、Objective-C。上个月,笔者曾提到 Java、C++跌至历史最低点,从图表上可以看出,这两门语言份额依然在下降。

本月最值得关注的是,Google Dart首次进入Top 20,排名第17位, 是迄今为止表现最好的一次。2011年10月,Google正式推出了Dart,旨在于取代JavaScript。有趣的是,随着Dart的份额上升,JavaScript的份额却在下降。

2012年,Dart进入 Tiobe排行榜前50名,此后,它的表现不尽如意,笔者一度在Tiobe上看不到它的身影。2013年, Ecma专门为 Dart成立了一个新的委员会——Technical Committee 52,以监督该语言的标准化进程。随后一年,Google发布了Dart1.4版本,新增Observatory工具,方便开发者实时掌握Dart虚拟机在运行时的需求及查看数据的实时报告。

Dart未来发展态势如何?我们继续观望中。

编程语言排行榜TOP 20榜单:

543096d50ed49

 

前10名编程语言长期走势图: 

54309736c80da

 

以下是21-50编程语言排名:

543097ad15ae3

 

543097b67e6ce

 

后50名编程语言如下:

(Visual) FoxPro, 4th Dimension/4D, Alice, APL, Awk, Bash, bc, BlitzMax, Bourne shell, cg, CL (OS/400), Clean, Clojure, Emacs Lisp, Factor, Forth, Icon, Inform, Io, Ioke, J, JScript.NET, LabVIEW, Ladder Logic, M4, Magic, Max/MSP, Modula-2, Modula-3, Moto, NATURAL, NXT-G, OCaml, OpenCL, Oz, PILOT, Programming Without Coding Technology, Prolog, Pure Data, Q, RPG (OS/400), S, Smalltalk, SPARK, Standard ML, TOM, VBScript, VHDL, X10, Z shell

必须声明,这个榜单本身采集的是英文世界的数据,虽然在反映趋势上有一些参考意义,但与中国的实际情况不完全符合,而且,这张采样本身也有相当大的局限性。

【说明】

TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、MSN、Yahoo!、Wikipedia、YouTube以及Baidu等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

来源于: csdn