centos 7.0 安装Memcached以及配置php的Memcache扩展

因项目需求,需要在centos 7.0上安装Memcached以及配置php的Memcache扩展。所以只好通过网上资料一步一步来安装和配置了。 第一步: 准备工具 下载memcached和memcache源码 1.  memcached官网: http://memcached.org/downloads 2. php扩展: http://pecl.php.net/package/memcache 第二步: 安装 1. 安装memcached #下载memcached源码 wget wget http://memcached.org/files/memcached-1.4.25.tar.gz #解压 tar -zxvf memcached-1.4.25.tar.gz #切换到解压后的目录 cd memcached-1.4.25 #配置 ./configure –prefix=/usr/local/memcached If it’s already installed, specify its path using –with-libevent=/dir/ 需要安装libevent,从http://libevent.org/下载libevent-2.0.22-stable.tar.gz,并编译安装。 #下载libevent源码 wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz #解压 tar -zxvf libevent-2.0.22-stable.tar.gz #切换到解压后的目录 cd libevent-2.0.22-stable #配置 ./configure –prefix=/usr/local/libevent #编译安装 make && make install … Continue reading “centos 7.0 安装Memcached以及配置php的Memcache扩展”

(JS-PHP)使用RSA算法进行加密通讯

用户名密码明文直接POST到后端,很容易被别人从监听到。注:包括使用MD5等哈希函数处理后的数据,这里也算做明文(现在MD5爆破网站已经很多了~)。对安全性要求较高的网站,比如银行和大型企业等都会使用HTTPS对其进行加密通讯。但是由于效率原因,使用HTTPS的代价是及其昂贵的,对于访问量稍大的网站就会造成严重的性能瓶颈。解决方法一般只能采用专门的SSL硬件加速设备如F5的BIGIP等。所以很多网站选择了模拟SSL的做法,使用RSA来对密码等安全信息进行公钥加密,服务端用私钥解密。 通常是对密码进行加密,具体如下: 第一步: 加载三个RSA的js库文件,可以到这里下载 http://www.ohdave.com/rsa/。 第二步: 获取秘钥 1. 相关信息 通常情况下网站的SSL证书是由专门的CA机构(如VeriSign)颁发,同时需要交纳一定数额的费用。可是对于平时开发测试或其他情况下,我们自己也可以充当CA来生成自己颁发的证书。当然与前者相比缺点很明显:不能获得各个浏览器的信任,会弹出警告提示。不过,好消息是,对安全性要求稍低的网站现在可以考虑使用免费的CA认证(貌似是其级别最低的证书)。 跟VeriSign一样,StartSSL(网址:http://www.startssl.com,公司名:StartCom)也是一家CA机构,它的根证书很久之前就被一些具有开源背景的浏览器支持(Firefox浏览器、谷歌Chrome浏览器、苹果Safari浏览器等)。在2009年9月份,StartSSL竟然搞定了微软:微软在升级补丁中,更新了通过Windows根证书认证程序(Windows Root Certificate Program)的厂商清单,并首次将StartCom公司列入了该认证清单,这是微软首次将提供免费数字验证技术的厂商加入根证书认证列表中。现在,在Windows 7或安装了升级补丁的Windows Vista或Windows XP操作系统中,系统会完全信任由StartCom这类免费数字认证机构认证的数字证书,从而使StartSSL也得到了IE浏览器的支持。 2. 要生成获得证书所需的密钥等文件 openssl genrsa -des3 -out server.pem 1024 openssl req -new -key server.pem -out server.csr openssl rsa -in server.pem -out server.pem 使用上面的命令就会创建一个证书申请,这里我们会要求输入国家、组织、姓名等信息,但是不会要求输入证书有效天数,因为证书有效天数是CA认证中心给我们的;然后我们会把这个生成好的cert.csr(Certificate Signing Request (CSR):证书签名申请)发给CA认证中心。CA认证中心通过后,会反馈(通常是邮件)回来认证的信息,再导入即可。 把上面生成的文件内容提交给CA,即可换取证书;若自行生成则: openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt 3. 获取十六进制的密钥 数据是用ASN.1编码过的,所以可以用openssl命令从密钥文件(key或pem)提取秘钥 openssl asn1parse -out temp.ans … Continue reading “(JS-PHP)使用RSA算法进行加密通讯”

windows service 2012: 搭建php环境

之前在windows service 2012中搭建了IIS8.0,对于一个php程序员,如果不把php环境搭建好,那就对不住Jhonse哥的php了,所以就开始动手搭建php环境。 第一步: 下载php压缩包 至于如何下载?请到php官网进行下载,我这里的版本为php5.4.37. 第二步: 上传到windows service 2012 第三步: 在C盘或者其它盘创建php目录,将php压缩包解压到此目录下。 第四步: 配置IIS8.0 1. 创建php.ini文件 将php.ini-development复制为php.ini 2. 配置php.ini文件 至于扩展的开启,自己可以选择性开启自己需要的扩展 3. 查看php版本 4. 配置IIS8.0 采用FastCGI来运行PHP 5. 添加php-CGI.exe 6. FastCGI设置 7. 设置默认文档 第五步: 测试php环境 1. 在默认站点创建index.php 2. 打开站点 提示错误:  phpinfo(): It is not safe to rely on the system’s timezone settings. 3. 设置时区 4. 站点效果

Zend Guard 6.0: 解密php文件

一直以来很少接触Zend Guard加密这块,主要是在网上下了一个php源码,本想有空的时间研究下其代码,结果一看用Zend Guard加密了,所以就开始接触Zend Guard加密这块,所以就开始写了几篇关于Zend Guard的博文。而对于Zend Guard加密的php文件进行解密,网上提供的资料以及软件很多,不过只是针对于php5.2之下的,而php5.3,php5.4的版本进行解密就根本找不到,找到也是在线解密需要money。 刚好我下载的php源码是Zend Guard 6.0加密的,并且对于的php版本是5.3。查找了很多网页,最后终于找到了。所以接着来一篇Zend Guard博文记录下。 说明: 非常感谢提供软件的大神们。 第一: php5.2以及php5.2以下的版本 1. 使用如下软件 2. 查看加密文件代码 此文件加密的版本为php 5.2 3. 使用此软件解密 4. 使用命令行进入到此目录 5. 开始解密 6. 解密成功 7. 说明: 这里提供解密的版本如下: 第二: php5.3版本 1. 使用如下软件 2.  查看加密文件代码 此版本为php5.3 3. 使用此软件解密 4. 打开此软件,选择Xcache解密 5. 选择加密文件,开始解密 6. 解密成功! 至于软件上的其它功能,大家可以下载去玩玩!

PHP扩展开发: 简单的HelloWord

最近摸索CentOS7.0系统的操作比较多,而php对应的扩展部署加载也用的比较多,但是一直都没有想去开发一个属于自己的扩展,刚好最近需要用到这个扩展开发,开发一些小功能,所以就开始着手写一个比较简单的HelloWord扩展来记录下。 第一步: 查看服务器上的PHP版本 说明: 开发php扩展前提是服务器上的apache和php都正常。 第二步: 下载php5.4.16源码 1. 下载php5.4.16,自己到php官网下载即可 2. 上传到/home/jhonse目录下 3. 解压 第三步: 开发php扩展 1. 进入解压好的php文件夹下的ext目录 2. 创建一个php扩展 3. 查看创建好的扩展jExt 4. 修改config.m4文件 说明: dnl 注释   5.  编辑扩展头文件php_jExt.h 6. 在头文件中添加HelloWorld方法声明 7. 编辑jExt.c源文件 8. 在jExt.c文件中添加HelloWorld方法。 9. 使用phpize命令把config.m4文件的内容生成configure文件   报错,需要安装php-devel 10. 生成.so扩展文件 ./configure –with-php-config=/usr/bin/php-config make   第四步: 调用扩展 调用开发出来的扩展其实跟调用json.so等等扩展是一样。 1. 修改php.ini文件或者在php.d/目录下添加jExt.ini文件 2. 把生成出来的jExt.so复制到php对应的module目录下。 3. 重启httpd服务,并且查看是否已加载次扩展文件。 通过phpinfo()来查看。 4. … Continue reading “PHP扩展开发: 简单的HelloWord”

模拟微信公众平台登录

首先我们来看下微信公众平台官网: http://mp.weixin.qq.com   然后手动提交登录数据,查看提交的POST数据:   密码应该是加密了,我对应的查看下JS代码,看如何进行加密的?   由此得出密码是通过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);  效果:   登录成功,并返回跳转地址.以及对应的生成了cookie.txt文件进行保存.

实现网络图片生成本地图片

将网络图片生成本地图片,以及需要满足以下几个条件: 1.  必须登录网站 2.  必须需要有referer 一看到这两个条件,就知道需要用CURL模块来实现此功能,其一需要保持登录之后的cookie值,其二需要添加referer. 根据这两点来实现功能: 1. 先实现存放本地图片的目录路径 /*判断目录是否存在,如果存在,不创建,不存在就创建新目录*/ function make_dir($dir, $index = true) { $res = true; if(!is_dir($dir)) { $res = mkdir($dir, 0777); $index && @touch($dir.’/index.html’); } return $res; }  2.  获取网路图片数据 require_once ‘class/transport.php’; $transport = new transport(); $request = $transport->request($picurl, “”, ‘GET’); 这里我采用了ECSHOP自带的transport类,然后需要此类中use_curl方法,来实现cookie值得保存,以及referer的设置 /* 基本设置 */ $cookie_path = getcwd().”/cookie.txt”; curl_setopt($curl_session, CURLOPT_FORBID_REUSE, true); … Continue reading “实现网络图片生成本地图片”

php判断文件夹(目录)是否存在,以及创建文件夹(目录)

上传文件的时候,需要对文件进行分组,也就是说创建文件夹(目录),这就需要用到mkdir函数以及is_dir函数。 代码如下: function make_dir($dir, $index = true) { $res = true; if(!is_dir($dir)) { $res = mkdir($dir, 0777); $index && @touch($dir.’/index.html’); } return $res; }  

[php] 汉字转换为拼音方法

在项目中需要将中文转换为拼音的功能,在网上一查找到如下方法,经自己测试,能实现此功能! /** * 中文转拼音 * @param type $_String * @param type $_Code * @return type */ function Pinyin($_String, $_Code = ‘UTF8’) { //GBK页面可改为gb2312,其他随意填写为UTF8 $_DataKey = “a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha” . “|chai|chan|chang|chao|che|chen|cheng|chi|chong|chou|chu|chuai|chuan|chuang|chui|chun|chuo|ci|cong|cou|cu|” . “cuan|cui|cun|cuo|da|dai|dan|dang|dao|de|deng|di|dian|diao|die|ding|diu|dong|dou|du|duan|dui|dun|duo|e|en|er” . “|fa|fan|fang|fei|fen|feng|fo|fou|fu|ga|gai|gan|gang|gao|ge|gei|gen|geng|gong|gou|gu|gua|guai|guan|guang|gui” . “|gun|guo|ha|hai|han|hang|hao|he|hei|hen|heng|hong|hou|hu|hua|huai|huan|huang|hui|hun|huo|ji|jia|jian|jiang” . “|jiao|jie|jin|jing|jiong|jiu|ju|juan|jue|jun|ka|kai|kan|kang|kao|ke|ken|keng|kong|kou|ku|kua|kuai|kuan|kuang” . “|kui|kun|kuo|la|lai|lan|lang|lao|le|lei|leng|li|lia|lian|liang|liao|lie|lin|ling|liu|long|lou|lu|lv|luan|lue” . “|lun|luo|ma|mai|man|mang|mao|me|mei|men|meng|mi|mian|miao|mie|min|ming|miu|mo|mou|mu|na|nai|nan|nang|nao|ne” . “|nei|nen|neng|ni|nian|niang|niao|nie|nin|ning|niu|nong|nu|nv|nuan|nue|nuo|o|ou|pa|pai|pan|pang|pao|pei|pen” . “|peng|pi|pian|piao|pie|pin|ping|po|pu|qi|qia|qian|qiang|qiao|qie|qin|qing|qiong|qiu|qu|quan|que|qun|ran|rang” . “|rao|re|ren|reng|ri|rong|rou|ru|ruan|rui|run|ruo|sa|sai|san|sang|sao|se|sen|seng|sha|shai|shan|shang|shao|” . “she|shen|sheng|shi|shou|shu|shua|shuai|shuan|shuang|shui|shun|shuo|si|song|sou|su|suan|sui|sun|suo|ta|tai|” . “tan|tang|tao|te|teng|ti|tian|tiao|tie|ting|tong|tou|tu|tuan|tui|tun|tuo|wa|wai|wan|wang|wei|wen|weng|wo|wu” . “|xi|xia|xian|xiang|xiao|xie|xin|xing|xiong|xiu|xu|xuan|xue|xun|ya|yan|yang|yao|ye|yi|yin|ying|yo|yong|you” . “|yu|yuan|yue|yun|za|zai|zan|zang|zao|ze|zei|zen|zeng|zha|zhai|zhan|zhang|zhao|zhe|zhen|zheng|zhi|zhong|” . … Continue reading “[php] 汉字转换为拼音方法”

[php]配置以及实现mail()函数

之前总是喜欢用phpmailer插件来实现邮件发送,而从来没有真正的在某个项目中采用php自带的mail()函数来实现发送邮件的功能。今天刚好有项目需要,所以通过php自带的mail()函数来实现项目中需要的发送邮件功能! 说明: 在windows环境(windows service 2008)下,需要安装sendmail 第一步: 下载sendmail 下载地址: sendmail 第二步:  解压安装包(最好和php同一个目录下C:\websoft\)   第三步: 配置php.ini文件 [mail function] ; For Win32 only. SMTP = smtp.jhonse.com smtp_port = 25 ; For Win32 only. sendmail_from = service@jhonse.com ; For Unix only. You may supply arguments as well (default: “sendmail -t -i”). sendmail_path = “C:\websoft\sendmail\sendmail.exe -t”  第四步:配置sendmail.ini文件 error_logfile=error.log ; create … Continue reading “[php]配置以及实现mail()函数”