Lump yum 安装与搭建


准备

配置防火墙,开启 80,3306 端口

打开iptables

1
vi /etc/sysconfig/iptables

允许80端口通过防火墙

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

允许3306端口通过防火墙

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

允许21端口通过防火墙

1
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

查看更多

CentOS下php安装 mcrypt 扩展


源码编译安装

需要下载Libmcrypt,mhash,mcrypt安装包

下载地址:http://www.sourceforge.net

  • libmcrypt(libmcrypt-2.5.8.tar.gz );
  • mcrypt(mcrypt-2.6.8.tar.gz );
  • mhash(mhash-0.9.9.9.tar.gz );
1
2
3
wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz"
wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz"
wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz"

查看更多

Linux网络配置


配置网络信息

1
vim /etc/sysconfig/network-scripts/ifcfg-eth0

打开ifcfg-eth0这个文件

这里写图片描述

在这个文件中,保存了第一块网卡的配置信息

  • DEVICE :设备名
  • ONBOOT :当系统启动后是否自动启动网卡设备
  • BOOTPROTO :获取IP方式 static:静态获取
  • IPADDR :ip地址
  • NETMASK :子网掩码
  • GATEWAY :网关

查看更多

知识点总结系列之:(八)GO


go 相关的知识点总结

  • Go基本数据类型及占用的字节?
  • Go 值类型有哪些?
  • Go 引用类型有哪些?
  • 常量的声明?
  • 错误处理?(error, panic, recover)
  • 基本命令(build,get,run,test)
  • 除了 mutex 以外还有那些方式安全读写共享变量?
  • JSON 标准库对 nil slice 和 空 slice 的处理是一致的吗?
  • 1.9/1.10中,time.Now()返回的是什么时间?这样做的决定因素是什么?
  • golang的sync.atomic和C++11的atomic最显著的在golang doc里提到的差别在哪里,如何解决或者说规避?
  • 1.10为止,sync.RWMutex最主要的性能问题最容易在什么常见场景下暴露。有哪些解决或者规避方法?
  • 如何做一个逻辑正确但golang调度器(1.10)无法正确应对,进而导致无法产生预期结果的程序。调度器如何改进可以解决此问题?
  • 列出下面操作延迟数量级(1ms, 10us或100ns等),cgo调用c代码,c调用go代码,channel在单线程单case的select中被选中,high contention下对未满的buffered channel的写延迟。
  • 如何设计实现一个简单的goroutine leak检测库,可用于在测试运行结束后打印出所测试程序泄露的goroutine的stacktrace以及goroutine被创建的文件名和行号。
  • 选择三个常见golang组件(channel, goroutine, [], map, sync.Map等),列举它们常见的严重伤害性能的anti-pattern。
  • 一个C/C++程序需要调用一个go库,某一export了的go函数需高频率调用,且调用间隔需要调用根据go函数的返回调用其它C/C++函数处理,无法改变调用次序、相互依赖关系的前提下,如何最小化这样高频调用的性能损耗?
  • 不考虑调度器修改本身,仅考虑runtime库的API扩展,如果要给调度器添加NUMA awareness且需要支持不同拓扑,runtime库需要添加哪些函数,哪些函数接口必须改动。
  • stw的pause绝大多数情况下在100us量级,但有时跳增一个数量级。描述几种可能引起这一现象的触发因素和他们的解决方法。
  • 已经对GC做了较充分优化的程序,在无法减小内存使用量的情况下,如何继续显著减低stw pause长度。
  • 有一个常见说法是“我能用channel简单封装出一个类似sync.Pool功能的实现”。在多线程、high contention、管理不同资源的前提下,两者各方面性能上有哪些显著不同
  • 无缓冲 chan 的发送和接收是否同步?
  • Data Race问题怎么解决?能不能不加锁解决这个问题?
  • 使用goroutine以及channel设计TCP链接的消息收发,以及消息处理?
  • 使用go语言,编写并行计算的快速排序算法?
  • golang新手可能会踩的50大坑
  • uint不能直接相减,结果是负数会变成一个很大的uint,这点对动态语言出身的会可能坑
  • channel一定记得close
  • goroutine记得return或者中断,不然容易造成goroutine占用大量CPU
  • 从slice创建slice的时候,注意原slice的操作可能导致底层数组变化
  • 如果你要创建一个很长的slice,尽量创建成一个slice里存引用,这样可以分批释放,避免gc在低配机器上stop the world
  • 面试的时候尽量了解协程,线程,进程的区别。
  • 什么是channel,为什么它可以做到线程安全?
  • channel 的实现机制?(通过注册相关goroutine id实现消息通知的)
  • 如何用channel实现一个令牌桶?
  • 如何调试一个go程序?
  • 如何写单元测试和基准测试?
  • slice 底层数据结构的实现?
  • 抢占式goroutine调用?
  • 了解读写锁吗,原理是什么样的,为什么可以做到?
  • golang的内存模型,知道多小才是小对象,为什么小对象多了会造成gc压力?
  • Devops 用过吗?
  • golang 采用什么并发模型?体现在哪里?
  • goroutine 的调度是怎样的?
  • golang 的内存回收是如何做到的?
  • cap和len分别获取的是什么?
  • netgo,cgo有什么区别?
  • 什么是interface?
  • 在 Vendor 特性之前包管理工具是怎么实现的?

知识点总结系列之:(七)PHP


php 相关的知识点总结

  • 简述 private、 protected、 public修饰符的访问权限。
  • 使用过的魔术方法有哪些,及如何使用?
  • __call() 方法的使用场景?
  • __callStatic() 方法的使用场景?
  • get() 和 set() 方法的使用场景?
  • __autoload() 什么时候使用?
  • 合并两个数组怎么合并?区别?
  • 有哪些全局变量?并说明这些全局变量的意义?
  • 数组排序的函数有哪些?区别是什么?
  • 魔术常量有使用过么?有哪些,并介绍是什么意思?
  • php 文件处理?
  • echo print print_r的区别?
  • mysql_fetch_array() 与mysql_fetch_row()区别?
  • PHP面向对象中 _set() 与 _construct的作用?
  • PHP中session与cookie的区别?
  • PHP中session与cookie的区别?
  • 什么是PHP的MVC,MVC的作用及原理?
  • PHP中 include, include_once, require,, require_once 的区别?
  • php 中字符串使用单引号和双引号的区别?
  • 字符串常用函数有哪些?
  • PHP处理数组的常用函数?
  • PHP处理时间的常用函数?
  • 如何定义常量?区别是什么?
  • 定义变量区分大小写吗?定义函数区分大小写吗?
  • php中函数传递参数的方式有哪些?两者有什么区别?
  • 堆和栈的区别?
  • PHP 多态的实现?
  • 抽象类和接口的概念以及区别?
  • 什么是构造函数,什么是析构函数,作用是什么?
  • 如何重载父类的方法,举例说明?
  • $this和self、parent这三个关键词分别代表什么?在哪些场合下使用?
  • final关键字能定义类中的成员属性吗?
  • final关键字定义的类能够被继承吗?
  • 什么是抽象方法?
  • 如果一个类是抽象类,而类中的方法都是非抽象的方法,会报错吗?
  • 如果一个类既要继承一个父类,又要实现多个接口,该如何写?
  • 什么是 SQL 注入?如何防止 sql 注入?
  • 分页原理是什么?
  • php session 共享怎么做?怎么修改?session 相关的函数有哪些?
  • 正则表达式?
  • HEREDOC 是什么?
  • 一些编译php时的configure 参数?
  • 向php传入参数的三种方法?
  • error_reporting 等调试函数使用?
  • Safe_mode 打开后哪些地方受限?
  • 不用新变量直接交换现有两个变量的值?
  • PHP 如何获取客户端的IP地址?
  • 写一个函数,可以遍历文件夹下的所有文件和文件夹。
  • strlen()与mb_strlen的作用与区别?
  • 写一个函数,尽可能高效的从一个标准url中取出扩展名?
  • Isset() 、empty()与is_null的区别?
  • sessionId 如何保证唯一?
  • 什么是CSRF攻击?XSS攻击?如何防范?
  • 请写出自少两个支持回调处理的PHP函数,并自己实现一个支持回调的PHP函数?

  • PHP 的基本架构

  • PHP 执行过程
  • PHP SAPI生命周期
  • Apache 加载 PHP 模块
  • Apache 运行过程
  • PHP 的几种运行方式
  • PHP 程序的执行过程(内核)
  • PHP5 变量存储结构
  • PHP7 变量存储优化
  • PHP5 HashTable 实现
  • PHP7 HashTable 优化
  • PHP5 内存管理架构
  • PHP 垃圾回收机制(refcount__gc, is_ref__gc)
  • PHP-FPM 的优化

知识点总结系列之:(六)网络


网络相关知识点总结

  • OSI七层模型是什么?哪七层?
  • TCP/IP 4 层协议栈是哪 4 层?每一层具体的工作是什么,每一层有哪些协议?
  • TCP 和 UDP 的区别?
  • TCP 包头的组成?
  • TCP 网络状态查看?
  • TCP 的三次握手过程?并描述客户端和服务端状态的变化
  • 为什么要三次握手?如果不是三次有什么问题?
  • DDOS 攻击了解吗?如何预防 DDOS 攻击?
  • TCP 四次挥手的过程?
  • 为什么要四次挥手?否则的话有什么问题?
  • Time_Wait状态是什么,为什么会有time_wait状态?哪一方会有time_wait状态,如何避免?
  • time_wait状态占用资源(尽可能的详细)?
  • TCP 包为什么需要 Seq
  • 数据包为什么会乱序?
  • TCP 如何实现的可靠传输?
  • TCP 的拥塞控制是怎样的?
  • TCP 几种拥塞机制的重传机制?
  • 什么是滑动窗口?
  • TCP 中客户端发送 SYN 后客户端和服务器分别处在什么状态?
  • 服务器调用 send 后返回发送数据大小,是否可以认为客户端已收到?如何确保客户端收到数据?
  • TCP 对网络拥堵的判断?
  • TCP 和 UDP 分别的使用场景有哪些?
  • UDP 包头的格式是什么?
  • UDP 协议的优点和缺点是什么?

  • 说说 HTTP 协议?

  • 什么是分块传输编码?
  • HTTP 和 TCP 有什么关系?
  • HTTP 1.0 和 HTTP 1.1 的差别?
  • HTTP pipeline 流水线机制?
  • 理解 HTTP 2.0 协议吗?
  • 如何使用 HTTP2.0 协议?
  • HTTP 头部常见字段有哪些?
  • 为什么 HTTP 是无连接的?
  • GET 和 POST 区别?
  • GET请求中URL编码的意义?
  • 有没有保持长连接的 HTTP ?
  • HTTP 常见状态码及原因短语?
  • 304 状态码的意义?在 HTTP 协议中的实现?
  • 如何判断服务器文件是否已修改?知道浏览器缓存的文件与服务器文件不一致?在 HTTP 中哪个字段?
  • Session 和 Cookie 机制?产生原因?对比一下?
  • 用过 HTTPS 吗?HTTPS 和 HTTP 的区别是什么?
  • 对称加密与非对称加密区别?
  • TLS/SSL 协议的握手过程?
  • CA 证书的签发原理?
  • SSL 握手需要几个随机数?
  • HTTPS 性能如何优化?

  • IP 有几类地址,A 类地址和 B 类地址的区别是什么?

  • 局域网没有 IP 时如何通信?如何得知 mac 地址?
  • 什么是网络虚拟化?
  • 简单描述一下 VPN 工作原理?
  • 简单描述一下 DNS 工作原理?
  • 了解代理服务吗?什么是代码服务?
  • 代理请求的过程?
  • 代理协议有哪些?
  • 代理的功能有哪些?
  • 什么是反向代理?
  • 反向代理的作用?
  • 如何抓包?
  • netstat、tcpdump、ipcs、ipcrm 命令使用过吗?
  • 大规模连接上来,并发模型怎么设计怎么选择?(并发服务器实现)
  • select, poll 和 epoll 的区别?

知识点总结系列之:(五)架构


架构相关知识点总结

  • Nginx 的工作原理?
  • Nginx 的进程模型?
  • Master 进程工作方式?
  • Worker 进程的工作方式?
  • Nginx + Fastcgi 运行原理?
  • Nginx + PHP-fpm 配置?
  • Nginx采用多进程模型好处?
  • Nginx支持的事件模型如下?
  • Nginx.conf 的优化?
  • Nginx 为什么高性能?

  • Apache 的工作原理

  • Apache 和 Nginx 网络模型比较

  • 什么是Memcache?

  • Memcache 使用场景?
  • Memcache 工作原理?
  • Memcache 内存管理
  • Memcache 分布式
  • Memcache 线程管理
  • Memcached 特性与限制
  • Redis 和 Memcache 对比方案

  • 单点登录

  • OAuth2.0 认证
  • 常见设计模式,应用场景
  • MVC
  • IOC
  • AOP
  • 微服务思想

知识点总结系列之:(四)Redis


Redis 相关知识点总结

  • 为什么使用redis?
  • 使用redis有什么缺点?
  • 单线程的redis为什么这么快?
  • redis的数据类型,以及每种数据类型的使用场景?
  • redis的过期策略以及内存淘汰机制?
  • redis和数据库双写一致性问题?
  • 如何应对缓存穿透问题?
  • 如何应对缓存雪崩问题?
  • 如何解决 redis 的并发竞争问题?
  • redis 底层的数据结构有哪些?各自有什么用?
  • redis 的主从复制原理?
  • redis 存储的实现方法?
  • redis 相对 memcached 有哪些优势?
  • 如何实现 redis 集群?
  • redis_cluster 的实现机制?
  • redis 集群的最大结点个数?
  • 怎么用 redis 实现分布式锁?
  • 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
  • 使用过Redis做异步队列么,你是怎么用的?
  • redis 能不能生产一次消费多次呢?
  • pub/sub有什么缺点?
  • redis如何实现延时队列?
  • 有大量的key需要设置同一时间过期,一般需要注意什么?
  • Pipeline 有什么好处,为什么要用pipeline?
  • 为什么redis小等于39字节的字符串是embstr编码,大于39是raw编码?
  • redis 中 zset 数据结构的实现?
  • 为什么 zset 用跳表而不用平衡树?
  • redis 常用配置?
  • redis 主从复制的实现原理?
  • redis 内存管理和优化?
  • redis 持久化方案?

知识点总结系列之:(三)Mysql


MySQL 常见知识点总结

  • Mysql的技术特点是什么?
  • MySQL 逻辑架构?每一部门的具体作用?
  • MySQL 的查询过程?
  • MySQL 常用的存储引擎有哪些?
  • Heap 表是什么?
  • Heap 表的大小可通过称为max_heap_table_size的Mysql配置变量来控制?
  • InnoDB 存储引擎的特点?
  • MyISAM 存储引擎的特点?
  • 一张表,里面有ID自增主键,当insert了17 条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?
  • 使用过哪些 Mysql 的索引?
  • 覆盖索引的使用?
  • 唯一索引的使用?
  • Mysql 有哪些锁?
  • 什么时候会发生表锁?
  • 什么时候用行锁?
  • FLOAT 和 DOUBLE 的区别?
  • CHAR 和 VARCHAR 的区别?
  • 区分CHAR_LENGTH和LENGTH?
  • 在 Mysql 中ENUM的用法是什么?
  • 请简洁描述 Mysql 中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
  • 如何定义REGEXP?
  • 列的字符串类型有哪些?
  • 如何获取当前的 Mysql 版本?
  • TIMESTAMP在UPDATE CURRENT_TIMESTAMP数据类型上做什么?
  • 主键和候选键有什么区别?
  • MyISAMchk是用来做什么的?
  • MYSQL数据库服务器性能分析的方法命令有哪些?
  • federated 表是什么?
  • 如果一个表有一列定义为TIMESTAMP,将发生什么?
  • 列设置为AUTO INCREMENT时,如果在表中达到最大值,会发生什么情况?
  • 怎样才能找出最后一次插入时分配了哪个自动增量?
  • 你怎么看到为表格定义的所有索引?
  • LIKE声明中的%和_是什么意思?
  • 如何在Unix和Mysql时间戳之间进行转换?
  • LIKE和REGEXP操作有什么区别?
  • BLOB和TEXT有什么区别?
  • Mysql如何优化DISTINCT?
  • 可以使用多少列创建索引?
  • 解释访问控制列表?
  • MYSQL支持事务吗?
  • Mysql里记录货币用什么字段类型好?
  • MYSQL数据表在什么情况下容易损坏?
  • Mysql中有哪几种锁?如何使用?什么时候发生?
  • 索引实现机制?
  • 数据库查询过慢的优化?
  • 建立 A 列和 B 列的索引需要考虑什么?
  • 高并发访问 MYSQL 时,如何保持数据一致性?
  • 什么时候 MySQL 会对表上锁?对一行上锁?
  • 怎么保证主从服务器中数据库的同步?
  • 怎么保证数据库同时操作几个表的一致性?
  • 数据库之间如何同步?
  • 数据库三大范式?
  • 字符编码选择?
  • 熟悉基本 SQL 操作
  • db 的各种性能指标?
  • 怎么进行数据库优化?
  • Mysql 主从复制的原理是什么?
  • 主从复制中断了怎么办?
  • 主从复制出现延迟怎么处理?
  • 主库崩溃了怎么办?
  • 聚集索引和非聚集索引区别?

知识点总结系列之:(二)Linux 与操作系统


Linux 与操作系统的知识点总结

操作系统内核

  • 什么是孤儿进程僵尸进程?
  • 指针对应的地址是不是物理地址?
  • 物理地址和虚拟地址通常叫做什么?缩写是什么?
  • 操作系统的寻址方式?
  • Linux 中如何计算可用内存?
  • Linux 中如何用 top 命令中查看虚地址和实地址的信息?
  • 如何用搜索引擎去了解 top 中的虚地址?不用搜索引擎怎么知道?
  • top 的输出中哪些是表明了内存?
  • 根据 top 计算可用内存有多少?
  • 用 top 看耗性能的线程?
  • 还有哪些命令可以找出性能瓶颈?
  • epoll 与 select 比较?
  • epoll 的缺点,如何克服缺点?
  • epoll 机制中文件描述符就绪时如何从内核态通知到用户态的进程?
  • epoll 实现?
  • 说说同步异步的区别?
  • 进程间通信的方式?
  • 进程间的通信有哪些机制?在资源内存方面比较如何?
  • 同一进程线程间的通信;不同进程线程间的通信;
  • 如何判断系统在哪些地方耗费性能?
  • cpu 调度的单位是什么?
  • 如何让多核 cpu 更好的利用资源?
  • 什么是缺页?缺页的算法?缺页中断时操作系统怎么做?
  • 如何控制两个进程对一个数据的访问?怎么处理加锁问题?
  • 说一说协程?
  • 是否了解 netstat?
  • 在 shell 中用 ./a.out | wc- l 结果是多少?管道的输入是哪个进程的?
  • 谈谈 Linux 的文件权限。让只有拥有者才能读写?让拥有者只能读和执行? 删除文件需要什么权限?
  • 假如一个进程在对文件进行读写,管理员把文件删除了怎么办?
  • 协程与进程线程比较有什么优势?
  • 计算机从电源加载开始的启动过程?
  • 什么是中断调用?中断程序的分类?
  • 内核态和用户态的区别?
  • 为什么需要内核态?
  • 什么时候进入内核态?
  • 多线程需要加锁的变量?
  • 程序在内存中的布局?
  • 什么是死锁,如何防止死锁?
  • lsof作用和使用?
  • strace作用和使用?
  • ptrace作用和使用?
  • 什么是内存管理?
  • Linux 内存管理的方案有哪些?
  • 内存池的理解?
  • 什么是内存泄漏?如何发现内存泄漏?如何避免内存泄漏?
  • 栈空间的大小?
  • 操作系统自旋锁?
  • 进程调度的算法?
  • 文件被如何加载到内存中?
  • linux中各种 I/O 模型原理 —— select 和 epoll
  • 阻塞和非阻塞 I/O 区别
  • linux系统文件机制
  • 多进程同步方式
  • 使用过哪些进程间通讯机制,并详细说明(重点)
  • linux系统的各类异步机制
  • 信号:列出常见的信号,信号怎么处理?
  • i++ 是否原子操作?
  • exit() _exit()的区别?
  • linux的内存管理机制是什么?
  • linux的任务调度机制是什么?
  • 系统如何将一个信号通知到进程?
  • 什么是死锁?如何避免死锁?
  • 共享内存的使用实现原理?
  • 多线程和多进程的区别(从cpu调度,上下文切换,数据共享,多核cup利用率,资源占用,等等各方面回答。哪些东西是一个线程私有的?答案中必须包含寄存器);
  • 标准库函数和系统调用的区别?
  • 地址空间的栈和堆的大小限制?
  • 静态库和动态库的区别?

Linux 命令

  • ln 硬链接和软链接区别?
  • kill 进程杀不掉的原因?
  • linux 查看日志文件的方式?
  • 常用的命令
    • ls
    • -l
    • -a
    • mkdir (-p)
    • cd
    • touch
    • echo
    • cat
    • cp
    • mv
    • rm (-r,-f)
    • find
    • wc
    • grep
    • rmdir
    • tree
    • pwd
    • ln
    • more,less
    • head,tail
  • 系统管道命令

    • stat
    • who
    • whoami
    • hostname
    • top
    • ps
    • du
    • df
    • ifconfig
    • ping
    • netstat
    • man
    • clear
    • alias
    • kill
  • 解压缩

    • gzip
    • bzip
    • tar(c,x,z,j,v,f)
  • 关机重启

    • shutdown(-r,-h now)
    • halt
    • reboot