近期发现服务器上MySQL又经常宕机了,平均每周一次,应该和最近新挂上去的几个WordPress网站有关,毕竟一台配置不算豪华的主机上挂了10个WP网站,压力太大难免会内存不够造成宕机。每次宕机都需要自己重启MySQL也比较麻烦,如果是客户自己发现的,感觉更不好,所以网上找了个无人值守的脚本先用起来。 查看详细
解决阿里云用LNMP在某些时候FTP无法使用的问题
今天在咖啡厅办公,发现一台在家里和公司都能正常使用的阿里云主机无法用FTP列目录了,当然上传文件也是不能了,其症状是可以正常登录,但到了列目录的时候就卡住:

碰到这种服务器问题还是只能采用搜索大法,先去LNMP论坛兜了一圈,大致可以确认的是防火墙问题,建议开放端口20000-30000,然后换成被动模式登录。
开放端口命令:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT
照做后发现能列出根目录,但要进入任何子目录后FTP又卡住了,感觉是不是还有另外一道无形的墙把我阻隔了?突然灵光一现,记得阿里云后台有个安全组和iptables有着差不多的作用,那边还没有开放这个端口段,可以一试 查看详细
正则表达式学习笔记
做项目的时候,正则表达式其实用得很少,而且大部分用得到的正则表达式都可以通过搜索引擎找到。因此这么多年来虽然已经多次研读正则表达式的文档,但偶尔要自己写的时候还是会脑子卡壳,求助谷歌…
好吧,再好好的理解一下,做个笔记,争取减少求助搜索引擎的次数。本文并非系统整理正则表达式的概念,而是加强巩固自己淡忘的一些概念和知识点。
正则表达式通过构造函数使用方法
var str = "He is a boy. She is not a boy." var reg = new RegExp("\\bis\\b"); str.replace(reg, "IS"); //"He IS a boy. She is not a boy." var reg = new RegExp("\\bis\\b" , 'g'); str.replace(reg, "IS"); //"He IS a boy. She IS not a boy." //另一种写法:正则表达式前后用/包含,g参数加在最后 str.replace(/\bis\b/g, "IS"); |
微信小程序中使用地图和定位的一些坑和经验
首先,经过测试,使用GCJ02(火星坐标)比WGS84(GPS)的坐标在计算距离的时候更为精确。在微信小程序中使用内置接口获取用户坐标,代码放在app.js里:
App({ getLocation: function () { var that = this wx.getLocation({ //type: 'wgs84', type: 'gcj02', success: function (res) { that.globalData.latitude = res.latitude that.globalData.longitude = res.longitude //var speed = res.speed //var accuracy = res.accuracy } }) } }) |
一次解决LNMP主机反复宕机问题的记录
新购的一台阿里云主机,几乎每天都会发生MySQL自动停止服务。主机其他部分看来运行都正常,怀疑是哪里设置的不对,但我装完这台LNMP改的默认设置不多,之前也并没有碰到过类似的问题。既然是MySQL停止服务,那么就从MySQL这里找问题,搜索了一个多小时,发现MySQL宕机有很多可能性,一时无法确定。但解决此类问题的关键都是查看错误日志开始。
命令行进入本地MySQL,之后输入密码
mysql -hlocalhost -uroot -p
之后进入提示符mysql>
查看错误日志的位置
mysql> show variables like '%log_error%';
此时获取到了文件位置。查看日志后,发现大部分重复片段是这样的:
2017-07-26 04:34:03 7617 [Note] Plugin 'FEDERATED' is disabled. 2017-07-26 04:34:03 7617 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-07-26 04:34:03 7617 [Note] InnoDB: The InnoDB memory heap is disabled 2017-07-26 04:34:03 7617 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-07-26 04:34:03 7617 [Note] InnoDB: Memory barrier is not used 2017-07-26 04:34:03 7617 [Note] InnoDB: Compressed tables use zlib 1.2.3 2017-07-26 04:34:03 7617 [Note] InnoDB: Using CPU crc32 instructions 2017-07-26 04:34:03 7617 [Note] InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 2017-07-26 04:34:03 7617 [ERROR] InnoDB: Cannot allocate memory for the buffer pool 2017-07-26 04:34:03 7617 [ERROR] Plugin 'InnoDB' init function returned error. 2017-07-26 04:34:03 7617 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2017-07-26 04:34:03 7617 [ERROR] Unknown/unsupported storage engine: InnoDB 2017-07-26 04:34:03 7617 [ERROR] Aborting
WooCommerce的虚拟物品订单付款后自动处理订单状态
这应该是一个比较常见的功能需求了,虚拟物品由于不需要进行送货,用户付款后即可算作订单完成,以便网站统计订单后进行更多操作,用户也可能籍此获得一些其他的优惠或者权益。这一切都需要前一个订单在没有人工干预的状态下自动完成。
首先,官方文档中给出了直接完成订单的代码:
1 2 3 4 5 6 7 8 | add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order'); function custom_woocommerce_auto_complete_order( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); $order->update_status( 'completed' ); } |
七牛CDN防盗链开启后,微信小程序无法加载其资源问题解决
最近在学习开发微信小程序的时候碰到了形形色色的问题,待我有空多整理一些笔记,这次先记录一个简单的。我习惯用七牛CDN作为自己开发的网站静态资源存储分发,并且为每个资源库设置防盗链白名单。在开发小程序之初,我就已经把这两个域名加入到了白名单中:
*.qq.com
*.wechat.com
因此就想当然的以为这样设置,微信小程序读取CND资源就不会有问题。当然,我在开发过程中为了避免碰到这样那样的问题,是先关闭了防盗链的。小程序完成后提交审核,同时我顺手打开了防盗链,刷一下小程序,结果发现所有云上的图片都打不开,开发工具报403错误:

查看详细
LNMP环境下MySQL日志蚕食磁盘空间的解决方法
安装了LNMP的云主机,如果不解决这个问题,每隔几个月就会因为磁盘空间不足而宕机。这个问题发现的比较慢,间隔也比较长,运营新手很容易忽视。
如果发现MySQL日志已经占据了大量磁盘空间,先登录主机,到/usr/local/mysql/var/目录下,找到mysql-bin.*** 后面跟一串数字的文件,直接删除即可恢复磁盘空间。
如果存在mysql-bin.index文件,需要一并删除。
删除日志的命令操作:
/usr/local/mysql/bin/mysql -u root -p
输入密码登录后再执行:reset master;
看到以下显示即告完成:

再输入:quit 退出mysql命令模式
查看详细
创业公司预算不高,要做网站,找什么样的人最好?
经常听到有人会讨论这类问题 – 作为一家创业公司,没有专人做网站,应该找什么样的人外包网站建设?
一家公司决定要建网站时,他们一般会有这3种选择:
- 找建站平台生成网站,自己维护或者购买平台的维护服务
- 找广告公司/建站公司服务
- 找自由职业的个人或小团队建站

下面我来分析以上各选项的利弊 查看详细

