Docker LNMP环境搭建

本文介绍如何使用Docker容器,快速部署LNMP环境。 最终完成的环境我们称为:DNMP(即 Docker + Nginx + MySQL + PHP)。 最终实现一键部署LNMP环境的目的,该环境特点: 完全开源 支持…

手把手编写PHP MVC框架实例教程

1 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式。 MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 PHP中MVC模…

Docker中PHP-FPM容器无法记录日志

最近遇到一个奇怪的问题,在docker的php容器中配置了启用慢日志: catch_workers_output = yes slowlog = /var/log/dnmp/php.slow.log request_slowlog_timeout = 1s 但是日志文件总是…

MySQL count(*)速度慢优化

select count(*)是MySQL中用于统计记录行数最常用的方法。 count方法可以返回表内精确的行数,每执行一次都会进行一次全表扫描, 以避免由于其他连接进行delete和insert引起结果不精确…

命令行创建和运行VirtualBox虚拟机

我们一般熟悉使用VirtualBox界面创建和启动虚拟机, 不过VirtualBox同样支持完整的命令,可以创建、修改、删除、启动虚拟机。 下面我们以Windows Server 2008 64bit为例, 以下会一直用…

如何找出MySQL中正在锁表的语句?

MySQL在每个版本发布时,都会加上一些用以监控内部活动的工具。 但是,监控内部的锁情况的工具一直支持的不好。 监控锁一个非常重要和常用的功能,在这篇文章,我讲阐述如何做到。 1 介…

MySQL更新字段来自另一个表的count()值

假设有文章post和评论comment两个表,文章表记录有评论的数量,但是这个值我们要一次更新。 如下,现在post表的comment_count都是0,我们的目标是:执行一个SQL语句,让其把统计comment…

设置MySQL默认时区

MySQL默认的时区是UTC时区,比北京时间晚8个小时。 假设日志里面的时间是中午12:00,那么北京时间应该是晚上的8:00点钟。 为方便查看和设置时间,我们要设置MySQL的默认时区,以符合本…

从MySQL中删除重复数据

如何从MySQL中删除重复数据,只保留一条呢? 假设有如下一个数据表: mysql > SELECT * FROM users; +----+--------+ | id | name | +----+--------+ | 1 | google | <-- | 2 | y…

MySQL导入多个.sql文件高效方法

MySQL有多种方法导入多个.sql文件(里面是sql语句),常用的有两个命令:mysql和source。 但是这两个命令的导入效率差别很大,具体请看最后的比较。 (还有sqlimport和LOAD DATA INFILE…

SSH禁止超时设置

SSH的默认过一段时间会超时,有时候正在执行着脚本,出去一会回来就断开了,输出信息都看不到了。。。 禁止SSH自动超时最简单的办法就是,每隔一段时间在客户端和服务器之间发送一个“空…

MySQL批量替换HTML标签

1 前因 前段时间维护的一个WordPress小网站被黑,分析源码发现内容中多出了一段JavaScript代码: <!--codes_iframe--><script type="text/javascript"> function getCookie…