PHP: 创建shopify webhook, shopify webhook实例, create shopify webhook, php shopify webhook example

大概有两种方式创建 shopify webhook   第一种是后台创建: Settings -> Notifications -> Webhooks -> create webhook       创建之后有个 signed code 黄色背景部分   第二种是通过 API 或者 APP 创建: 如果你是开发者或者测试者,那么一定有 https://partners.shopify.com/ 账户,创建一个APP后,在 APP ->  App credentials ->  API secret key 。API secret key 就相当于第一种方法的 signed code。 创建后… Read More

Linux: chattr 、lsattr 命令详解, 防止文件被删除, 添加修改文件属性, 禁止删除或只能追加内容

有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,不过现在生产绝大部分跑的linux系统都是2.6以上内核了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。 什么?文件还有隐藏属性?光是那九个权限就快要疯掉了,竟然还有隐藏属性,真是要命~ 但是没办法,就是有文件的隐藏属性存在啊!不过,这些隐藏的属性确实对於系统有很大的帮助的~ 尤其是在系统安… Read More

WordPress: 一键更新所有(WordPress版本,插件,主题,翻译)

首先必须安装WP-CLI sudo curl -L https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar > wp-cli.phar # or #sudo curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar # php wp-cli.phar --info chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp 创建 update.sh 文件 wp core update wp plugin update --… Read More

PHP: 修改post 数组容量, 修改post变量容量, max_input_vars默认值为1000导致多表单提交失败

今天接到客服部工作人员反馈的一个客户的问题,产品是允许用户添加一个产品属性的,而每个属性是由多个表单域组成 ,这样当每添加一个属性就等于添加了n个表单域,这个客户添加的非常的多,发现在提交保存的时候总是失败,提示其中一个表单元素的索引值不存在,经测试是发现服务端接收的一些表单域丢失了一部分。 起初分析的是服务器接收的数据超出了php设置的max_post_size(其实当时已经设置了8M,足够使用了),修改了测试发现此问题仍然存在。后来将用户原来的一些添加的表单元素进行删除,再重新添加同样数据库表单域可以成功,但一旦超出一定数量的表单域就会发生丢失的情况,这个时候首先怀疑的是apache是否有类似… Read More

MySQL:多表查询, 连表操作和GROUP_CONCAT函数的使用, GROUP BY结合GROUP_CONCAT, GROUP_CONCAT DISTINCT multiple columns

在开发网站的时候,数据库操作是必须,复杂的网站有时要涉及到几张表的同时操作。以下简单讲解一下多表查询和GROUP_CONCAT函数的使用。例如有三张表 jd_role:角色表,jd_role_privilege:角色权限id关联表,jd_privilege:权限表,三张表的结构如下: 1、要求查询每个角色拥有的权限: 使用left join左外连进行连表操作: 此时,就可以查询出每个角色拥有哪些权限,但是这样查询不是很符合实际开发,比如说在修改角色权限的时候,如何把一个角色的权限放入下拉选择框中,这需要把一个角色拥有的所有的权限转换成字符串或者数组,这时候可以使用GROUP_CONCAT函数: 2、以id… Read More

Mysql: 外键约束, CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用, Cannot delete or update a parent row: a foreign key constraint fails

  MySQL有两种常用的引擎类型:MyISAM和InnoDB。目前只有InnoDB引擎类型支持外键约束。InnoDB中外键约束定义的语法如下: ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name, ...) REFERENCES tbl_name (index_col_name,...) [ON DELETE reference_option] [ON UPDATE reference_option] 例如: ALTER TABLE `user_resource` CONSTRAINT `FKEEAF1E02D8… Read More

Mysql: 一对多查询, 将多条记录合并成一条记录, mysql两表联合查询,一对多

t_user表如下 cj表如下: 要获得的查询结果: 解决办法: 方法一: select cjc.uid,u.uname,cjc.数学,cjc.英语,cjc.语文,u.type from   (select uid,max(case subj when '数学' then score else 0 end) 数学,  max(case subj when '语文' then score else 0 end) 语文,  max(case subj when '英语' then score else 0 end) 英语   from cj  group by uid) cjc  left jo… Read More

Mysql: 数据存在更新,不存在插入, Insert if not exist otherwise update, mysql update or insert if not exists without primary key, replace into

  一般有三种方法: 我们用名为 books 的表做演示 mysql> SELECT * FROM books LIMIT 3; +----+-------------------------+---------------------+----------------+ | id | title | author | year_published | +----+-------------------------+---------------------+----------------+ | 1 | In Search of Lost

Linux: 搭建邮件服务器, 命令行发送邮件, sendgrid服务器搭建, Postfix服务器搭建

  1. 获取root权限 sudo su - umask 077 2. 安装 Postfix代理软件 Postfix Mail Transport Agent. #DEBIAN apt-get update && apt-get install postfix libsasl2-modules -y #CENTOS yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y 如果有弹出窗口的话,选择 Local Only 3. 安装成功后,修改postfix的配置文件: vi /etc/postfix/main.cf 4. 注释掉下面两行代码: default_transport = error… Read More

Shell: 删除某时间之前的文件,Argument list too long错误, Remove all files created before a certain date,Argument list too long error

基于 find 来的做: 先了解 find 命令,  基于名字搜索 # 单条件 -name只针对文件名 find . -name '*.jpg' -print ./bar/foo.jpg # or 或条件 find . \( -name '*.mp3' -o -name '*.jpg' \) -print ./bar/foo.jpg ./foo.mp3 # and 和条件 find . -name '*.mp3' -name '*.jpg' -print # 复合条件 find . \( -name '*.mp3' -o -name '*.jpg' \) -name 'foo*' -print ./bar/foo.jpg ./foo.mp3 # -path 针对路径 find . -path './bar*' -p… Read More

MySQL为什么要关闭Query Cache?

当你的数据库打开了Query Cache(简称QC)功能后,数据库在执行SELECT语句时,会将其结果放到QC中,当下一次处理同样的SELECT请求时,数据库就会从QC取得结果,而不需要去数据表中查询。 在这个”Cache为王”的时代,我们总是通过不同的方式去缓存我们的结果从而提高响应效率,但一个缓存机制是否有效,效果如何,却是一个需要好好思考的问题。在MySQL中的Query Cache就是一个适用较少情况的缓存机制。在上图中,如果缓存命中率非常高的话,有测试表明在极端情况下可以提高效率238%。但实际情况如何? Query Cache有如下规则,如果数据表被更改,那么和这个数据表相关的全部Cache… Read More