最近公司做一个客户导入会员的功能,以前导入都是使用csv格式导入的,但是客户反应问题挺多的,普遍是乱码(由于各种系统各种环境可能引起编码问题)。最近想着就把这个导入完全改成excel导入,就研究了下phpexcel,发现读取excel还是挺方便的,这样也方便客户了,比较excel 无论用office 还是 wps 打开都是没有问题的示例读取代码如下/*  * $path excel文件路径  * $header_mapping 文字和数据库字段的对应关系  * excel第一行 是 字段标准(通常是汉字),  * example  * $header_mapping = [ '姓名' => 'uid' ];  *  */ privat
  服务器经常会产生各种各样的日志文件,我们需要定期清理日志的分类系统日志应用日志系统日志例如系统的history 历史信息   crontab的运行日志  一般系统日志系统都帮我们运维好了,不需要额外配置应用日志例如nginx  的access 和 error 日志 ,php框架的运行日志,这些日志是我们排查问题的有力证据工具logrotatelogrotate是什么logrotate是大多数linux系统自带的日志切割工具logrotate的适用场景logrotate常用来切割仍在被写的“动态”文件,它支持 按时间间隔或文件大小 来触发文件的自动切分(automatic rotation)实战按天保存一周的Nginx日志压缩文件,保留30天,配置文件为「/etc/logrotate.d/nginx」最后代码如下(本人ubuntu系统)/data/logs/nginx/*.log {      &nb
常用浏览器google chrome 有很多优秀的插件,寂寞的时候想看看人家是怎么实现的,说是快那就动手吧插件代码位置本人mac笔记本,chrome 插件位置如下$ cd  /Users/vincent/Library/Application\ Support/Google/Chrome/Default/Extensions $ ls -al drwxrwxr-x   3 vincent  staff   102 Jun 24 13:33 bnoamnljhdaigfhafpomkflkebegjfci drwx------   3 vincent  staff   102 Jul 25&n
最近在做项目的过程中,发现很多JS报错没有引起重视,我就想想把JS错误捕获了,然后展示在我们一个平台上具体实现代码:window.onerror = function(message, url, lineNumber,columnNo,error) {     var data = {         'message':message,         'url':url,         'error':error.stack     }; &
所见所得编辑器网址:http://wangeditor.github.io/ datepicker datetimepicker网址:https://github.com/xdan/datetimepicker google-code-prettify 网址:https://github.com/google/code-prettify Google Code Prettify是一个JavaScript库,用来对各种页面上的源码进行语法着色高亮显示。Google Code Prettify很小巧,解压后也只有85K的大小。支持大部分常用的语言。不需要指定语言syntaxhighlighter网址:https://github.com/syntaxhighlighter/syntaxhighlighter JavaScript语法着色库
接着上一篇博文继续 【No.1】监控Linux性能25个命令行工具10:mpstat -- 显示每个CPU的占用情况该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的mpstat -P ALL 1 Linux 3.13.0-75-generic (lnmp)  06/25/2016  _x86_64_ (2 CPU) 02:28:59 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest&nb
如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?通过以下命令或者工具可以快速定位topvmstatlsoftcpdumpnetstathtopiotopiostatuptimedmesg | tailmpstat -P ALL 1pidstat 1free -msar -n DEV 1sar -n TCP,ETCP 1IPTrafpsacct 或者 acctMonitNetHogsiftopMonitorixArpwatchSuricataVnStat PHPNagios Zabbix1:Top-Linux进程监控Linux下的Top命令是一个性能监控程序,许多系统管理员常常用它来监控Linux性能,在许多Linux或者类Unix操作系统里都有这个命令。Top命令用于按一定的顺序显示所有正在运行而且处于活动状态的实时进程,而且会定期更新显示结果。这条命令显示了CPU的使用率、内存使用率、交换内存使用大小、高速缓存使用大小
以前注册很多网站密码都使用简单密码,但是由于今年频繁曝出密码不安全问题,所以要使用更加复杂的密码。但是好多个账号,密码也不能设置成一样的,防止一个被盗全部不安全了,记密码就成了意见很头疼的事情。在手机上有个1password软件,非常好,不过收费的。本着节约和利用自己的技能,自己就想到开发一个加密的账号功能在php中有个ssl 加密功能,本文就是用此功能。步骤如下前提:什么样的秘密才安全密码没有绝对安全的说数字,字符,特殊字符结合,长度大于10位定期更换密码一:生成私钥和公钥$config = array(    "digest_alg" => "sha512",    "private_key_bits" => 4096,    "private_key_t
为什么要使用HTTPS主要是为了安全,虽然没有100%的安全,但是我们可以尽量提高安全级别,目前大型网站都已经使用HTTPS了注册StartSSL注册页面  选择国家 和 输入 邮箱  他们会通过邮箱地址给你个验证码,在这期间不要关闭选项卡或浏览器 , 所以你只要保持打开状态,知道获得验证码并贴上它点击注册,设置证书密码下载证书到本地,点击证书文件,提示输入密码就输入上一步设置的密码,然后点击下图第三个框的here进行登录生成证书准备工作现在,我们需要使得StartSSL相信我们拥有自己的域名,我们想要为他生成一个新的证书。从控制面板中,点击“Validations Wizard”到此域名认证就通过了生成证书下载证书到本地,然后根据自己webserver使用不同的文件Nginx 配置server {     listen       80; &nbs
最近在看  HTTP权威指南   看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下HTTPS简介什么是HTTPS?百科是这样解释的。HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。现在它被广泛用于互联网上安全敏感的通讯,例如交易支付等。使用openssl生成证书安装openssl本人ubuntu14.04已经安装了生成ca证书创建证书目录  mkdir ~/ssl/拷贝 CA.sh到证书目录 cp /usr/lib/ssl/CA.sh ~/ssl/生成证书cd ~/ssl/ && sh CA.sh -newca根据提示填写信息完成后,在demoCA下会生成证书文件,其中demoCA/private/cakey.pe
  1. 修改root密码     passwd   root2.新建用户    useradd  vinentguo3.配置免密码登陆 。使用新建用户登陆vps。mkdir ~/.ssh/chmod -R ~/.ssh/touch ~/.ssh/authorized_keys  && chmod 644 ~/.ssh/authorized_keys将公钥 放入 新建的 authorized_keys 文件中4.禁止root登陆sudo vim /etc/ssh/sshd_config 将 PermitRootLogin 改成no5. 挂载磁盘(切换到root账号)哥的数据已经没有了,注意注意fdisk /dev/sdb 输入n 新建分区 输入p 输
Ngrok是什么Ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。Ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放为什么要使用Ngrok可以让任何PC成为服务器,提供互联网应用服务。例如使用微信开发者模式,调试太麻烦了,每次代码都要同步到服务器上才能使用,有了Ngrok可以直接在开发者的url中填写ngrok分配的网站,直接本地调试代码下载Ngrok 我下载的是linux版本,如需其他版本点击 这里下载其他版本$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip $ unzip ngrok-stable-linux-amd64.zip实战将本地网络开放给外网,就是说可以通过某种映射,可以让互利网上的用户访问个人电脑的网页$ ./ngrok http&n
今天给我们自己的发布系统增加一个新建分支的功能,操作比较简单,但是使用php执行shell命令的时候总是无法push分支到远程,但是登陆服务器执行却是可以的新建分支命令如下git fetch --all git checkout -b pmt_20160624_v10.7.4 origin/master  git push origin pmt_20160624_v10.7.4:pmt_20160624_v10.7.4php大概代码如下,执行这个php文件是定时执行的<?php $cmd = [     "cd /data/xxx",     "git fetch --all",    
  关于Discuz的加密解密函数,相信大家都有所了解,该authcode函数可以说是对PHP界作出了重大的贡献,真的发觉discuz这个函数写的太精彩啦。研究了一下这个算法,总的来说可以归纳为以下三点:1,动态性,同一字符串使用相同的key,每次加密的密文都不一样,而解密方法只有一个,其实就是把解密的信息放到了密文上面。2,时效性,可以自己加一个限期参数,以秒为单位,这个其实就是在密文里加入了有效时间。3,统一性,加密和解密都用同一个函数,而且用了比较简单的异或算法。由于该函数具有以上功能,所以适用的环境也很多,一般用于用户登陆和开发API时防刷接口等。 代码如下<?php /**  * $string: 明文 或 密文  * $operation:DECODE表示解密,其它表示加密  * $key: 密匙  * $expiry:密文有效期  *
     查看软件xxx安装内容:dpkg -L xxx 查找软件库中的软件:apt-cache search 正则表达式 查找软件库中的软件:aptitude search 软件包 查找文件属于哪个包:dpkg -S filename 查找文件属于哪个包:apt-file search filename 查询软件xxx依赖哪些包:apt-cache depends xxx 查询软件xxx被哪些包依赖:apt-cache rdepends xxx 增加一个光盘源:sudo apt-cdrom add 系统升级:sudo apt-get update;sudo apt-get dist-upgrade 清除已删除包的残馀配置文件:dpkg -l |grep&
  最近公司网站被竞争对手用爬虫频繁访问,所以我们这边要禁止这些爬虫访问,我们通过nginx 指令就可以实现了方法一:直接在LB机器上封IP1.在 blocksip.conf 文件中加入要屏蔽的ip或者ip端$ sudo vim /etc/nginx/blocksip.conf deny 180.168.74.26; deny 91.212.45.0/24;2. 在nginx.conf中包含这个文件$ sudo vim /etc/nginx/nginx.conf http { ....... ....... include /etc/nginx/blocksip.conf; }3.重启服务$ sudo /etc/init.d/nginx reload方法二:直接在APP业务机器上操作(有时候LB并不能直接操作)这个时候我们不能通过$remote_addr获取ip
我们开发就是喜欢各种酷炫的东西,对于有洁癖的我,连命令行都不放过了先上图看效果,命令行显示高亮部分实现过程:第一步:.bash_prompt脚本  # ~/.bash_prompt # This prompt inspired by gf3, sindresorhus, alrra, and mathiasbynens. # but customized to me. <3 default_username='paulirish' #eval "$(thefuck --alias)" if [[ -n "$ZSH_VERSION" ]]; then  # qui
  在技术开发中,捕获程序框架错误,是非常必要的一件事情,我们公司使用Yii2框架,简单说下Yii2的错误捕获处理Yii2 web应用1 配置如下  其中errorHandler就是错误处理配置,执行ErrorController的actionError'components' => [     "urlManager" => require (__DIR__ . '/router.php'),     'errorHandler' => [         'errorAction' => 'erro
  我们都知道  浮点型 不是很精确的,所以在进行类型转化的时候就会出现很多意向不到的问题我使用php给大家用代码说说这事$a = 2.01; var_dump(sprintf('%.20F', $a * 100));//string(24) "200.99999999999997157829" var_dump( intval( $a * 100) );//int(200)上面的结果很出人意料吧,2.01 * 100 应该是201吧,居然是200.99999999....  这样就可以解释 为什么 后面的转化成整形变成200了如何解决这种问题了?   float => int  之前先使用round$a = 2.01; var_dump(sprintf('%.20F'
最近七牛CDN不知道咋啦的,一下子就不行了,提示错误信息如下 ”upload image source key fail: unexpected EOF“找客服提交工单都没有解决,反正就是无头公案了,不了了之了,自己分析日志大概原因知道了: 超时并且返回Content-length长度有问题,以前都很快的,不知道七牛spider做了什么,反正就不行了工单系统的回答我是十分无语的,服务方式和态度就不说了,想起来了一句话:一颗老鼠屎,坏了整锅汤虽然我是免费用户,但是切换到其他cdn还是有点麻烦的,为了省事,我通过对比发现百度的云加速不错,可以作为我的cdn代理中转站(百度云加速从我的网站请求文件非常快),流程图如下( 看来要练习流程图 :(   )中心思想就是使用  百度云加速作为 代理中转站 百度云加速配置 ,本人使用cname的方式总结一句:七牛的CDN伤透了我的心,我以后如果想购买服务也不会购买此家的参考资料:百度云加速:http://su.baidu.c
  Vagrant 默认的 VirtualBox 共享目录方式读写性能表现并不好,好在 Vagrant 支持 NFS 文件系统方式的共享,我们可以启用 NFS 提升性能开启方法首先要把虚拟机的网络设置成 :private_network 模式。然后确认宿主机系统是否安装了 nfsd,Mac OS X 默认是集成了的,部分 Linux 需要安装对应 package 才能支持(以 Ubuntu 为例):$ sudo apt-get install nfs-kernel-server nfs-common同时,虚拟机里的系统也要安装对应的 package:$ sudo apt-get install nfs-common接下来编辑配置文件 Vagrantfile,将共享的目录 nfs 设置为 true,如下:Vagrant.configure(&qu
  公司说年假不用要过期的,所以今天我继续休息一天,总要在这天留点什么作为回忆,所以今天做年度总结吧2013年和我告别了,同时迎来了新的一年2014。2013年的离去给我生命上画下了岁月的痕迹,但是同时给我工作和生活上的添加了不少色彩,所以我想分四部分来总结我的2013—感恩篇,生活篇,工作篇,2014年计划感恩篇首先我要感谢的是我在家乡的父母,这几年父母为了我非常劳累,每年过年回家看到父母头上的白头发我内心其实都是很伤感的,老爸老妈我想对你们说:爸爸妈妈辛苦了,感谢你们这么多年的无私付出。其次我要感谢的是我的女朋友,感谢你这一年的陪伴,感谢你这一年的包容和体谅,你为我俩背后付出的我都知道,感谢有你,不能后面遇到什么困难,我都会站在你的身旁,一切有我。我想对你说:老婆,I love you forever再者我要感谢我工作上的导师,这三个人我一定要提出来—吴志山,卢现升,杨勇。你们三位是我人生和工作中的三位启蒙导师,你们的每一句话对我来说都是我2013年的收获。你们对我的帮助只有我自己知道,
  好像明白为什么元旦要放3天假了第一天是聚会的第二天是静下来思考的第三天是总结并预备再次启程2015年是我印象很深刻的一年,这一年过的真快,快到还没有反应过来就结束了。今年的总结是:一半欢乐一半忧。主要有下面几件事情:咻的一下单身了换了一份工作业余时间跟着大姐头做了点小慈善看书计划没有完成NO.1:咻的一下单身了    这个应该是今年最意想不到却咻的一下就发生了,一句话:缘分未到!!NO.2 :换了一份工作    15年4月份离开了老东家安居客,来到了一家创业公司。安居客3年遇到的上级都是我的贵人,在初期为我指明方向,在后期教会我去寻找方向。在这三年里打好了技术基础,我遇到的同事都是包容的,乐于帮助他人的,用行动做事的人。在这三年里,培养了我的自信心,我不知道自信心别人怎么看待,我觉得对我很重要。“天下无不散之筵席” 我离开了安居客,开始了新的工作,感谢3年里一起合作,撕逼过得朋友们。在新公司主要经历了两个阶段
  不知道什么时候开始喜欢刘德华的,一路听他的歌,特别是听了“17岁” 的演唱会之后发现真的被感动了,这里记录下华仔的演唱会《96红磡演唱会》《刘德华99红磡演唱会》《刘德华2001夏日Fiesta演唱会》《刘德华2002你是我的骄傲 香港演唱会》《刘德华2004Vision Tour 香港演唱会》《刘德华2004-2005幻影中国巡回演唱会》《刘德华2007Wonderful World 香港演唱会》《刘德华2008上海演唱会》刘德华充分诠释了知乎金句——以大多数人的努力程度之低,根本轮不到拼天赋。梁朝伟充分诠释了——只有真正努力过,才明白天赋的重要。参考链接:刘德华演唱会列表
  1.查看文件的二进制xxd -b test.wav2.所有占用的端口sudo lsof -i -P | grep -i "listen"
  Jquery在处理事件的时候有时候会遇到预想不到的结果如下<a id="link_foo">Foo</a> <script type="text/javascript">     function bindFooClick(){       $("#link_foo").click(function(){         console.log("www.54php.cn");       });     }     bindFo
  ubuntu使用ntpdate更新时间的时候提示错误如下root@lnmp:/etc/squid3# sudo ntpdate cn.pool.ntp.org 5 Jan 07:22:59 ntpdate[4129]: the NTP socket is in use, exiting解决方法$ ps aux | grep ntpd #将进程号记录下来 $ sudo kill 2378 # 杀死刚才记录的进程号 $ sudo ntpdate cn.pool.ntp.org  # 再次更新
导读:本文是于宙在TEDx大会上的演讲,这篇文章有点长,不过非常值得你花20分钟把它看完。本周如果只能推荐一篇文章,那么强烈建议你读读这一篇,“一个有故事的大叔说的实在话”。以下是演讲全文:大家下午好,很荣幸能够参加本次TEDx大会,非常感谢东北财经大学TED团队和华臣影城为我们提供这样一个交流的机会。自我介绍我是大连人,高中就读于大连市二十四中。因为当时学习十分不努力,所以高中毕业之后选择了出国留学,这其实是很多本科出国留学的人不能说的秘密,辗转了几个学校,最终毕业于美国印第安纳大学凯利商学院,主修投资和金融衍生品。上学的时候迷恋炒股,学习依旧散漫,没能成为一个“放弃了华尔街的高薪工作毅然回国”海归精英,真的颇为遗憾,因为实在没有什么华尔街的公司愿意要我。碰巧的是,毕业前两年股市和外汇的行情比较好,赚到了一点点资本,于是我决定回国做点生意。现在在大连从事餐饮行业,目前拥有万达广场的不出二品,大都会,福佳新天地,奥林匹克广场的莉蒂娅城堡4家芝士蛋糕店,青泥洼桥2路车站,长春路百盛,和即将
  AppArmor 是一款与SeLinux类似的安全框架/工具,其主要作用是控制应用程序的各种权限,例如对某个目录/文件的读/写,对网络端口的打开/读/写等等。 来之Novell网站的引用:AppArmor is designed to provide easy-to-use application security for both servers and workstations. Novell AppArmor is an access control system that lets you specify per program which files the program may read, write, and execute. AppArmor secures applications by enforcing good application behavior without relying on attack signatures, so it can pr
  今天手贱,看到mysql 的日志在/var/log/mysql下面。总是觉得别扭,于是就想改变日志的位置,本人开发环境 vagrant  + ubuntu12.04 ,在/etc/mysql/mysql中修改了general_log的位置,放在/data/logs/mysql下面然后重启服务,service mysql restart查看错误日志发现说 /usr/sbin/mysqld: File '/data/logs/mysql/mysql.log' not found (Errcode: 13)150830  0:02:44 [ERROR] Could not use /data/logs/mysql/mysql.log for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981