LAMP
组件
源码安装
yum install -y gcc gcc-c++ make
gcc --version
# 编译安装三部曲
./configure --prefix=
make
make install
# 编译出错清除缓存
make clean
操作命令
apachectl start|stop|restart
# 开启mysql
mysqld_safe --user=mysql &
# 关闭mysql
mysqladmin -u mysql -p 123456 shutdown
# php内置扩展安装方法
# 扩展内没有configure时
phpize # 生成configure
./configure
make
make install
# 配置文件中开启扩展
# php三方包管理器 composer
# 官方仓库 Packagist.org
composer -V
require # 将配置写入composer.json
install # 按lock文件下载
update # 更新
# phpMyAdmin
# 可视化管理MySQL
# wordpress
# 测试整体LAMP环境
手册
LNMP
基础
手册
Apache
常用配置
# 检测配置文件是否有语法错误
apachectl -t
# 虚拟主机下多个项目可以自定义一些配置
# 每个项目根目录下可以创建.htaccess文件做些简单的apache配置,不用重启即可生效
# 项目下的目录和子目录都会生效
# 缺点是每访问这个项目都会加载这个配置文件
# 当然是可以通过主配置文件下的AllowOverride None指令关闭这个动态的配置文件
# apache的用户认证
# 新增用户名密码文件
htpasswd -c apache.passwd user1
# 新增用户
htpasswd -m apache.passwd user2
工作模式
- MPM(多进程模块处理),以下是三种主要模式
- prefork(多进程模式)
- worker(多进程多线程模式,但要注意线程安全问题)
- event(在worker模式上增加了keep-alive,目前主要使用此模式)
- 对应配置文件是extra/httpd-mpm.conf
- 查看当前是哪种模式
httpd -V | grep -i mpm
手册
Apache服务器的配置与管理.pptxNginx
基础
```shellip黑白名单
allow 192.168.1.22; deny 192.168.1.1/24;
负载均衡
rr
upstream bbs { server 192.168.2.22:80; server 192.168.1.22:80; }
weight
upstream bbs { server 192.168.2.22:80 weight=2; server 192.168.1.22:80 weight=1; }
backup
upstream bbs { server 192.168.2.22:80 ; server 192.168.1.22:80 backup; }
down
upstream bbs { server 192.168.2.22:80 down; server 192.168.1.22:80 ; }
<a name="qH9Q8"></a>
## 手册
[Nginx配置文件详解.docx](https://www.yuque.com/attachments/yuque/0/2022/docx/1491874/1654755788930-0a5700a4-60d1-448d-846b-902c325e603f.docx?_lake_card=%7B%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2022%2Fdocx%2F1491874%2F1654755788930-0a5700a4-60d1-448d-846b-902c325e603f.docx%22%2C%22name%22%3A%22Nginx%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3.docx%22%2C%22size%22%3A26245%2C%22type%22%3A%22%22%2C%22ext%22%3A%22docx%22%2C%22source%22%3A%22%22%2C%22status%22%3A%22done%22%2C%22mode%22%3A%22title%22%2C%22download%22%3Afalse%2C%22taskId%22%3A%22u62c3415b-8efe-436e-b12f-ac2dcba689d%22%2C%22taskType%22%3A%22upload%22%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22ufc7aa2c8%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22file%22%7D)<br />[Nginx.pptx](https://www.yuque.com/attachments/yuque/0/2022/pptx/1491874/1654755841034-01be15ff-8d77-4fbc-a4eb-edf22c4f6d2d.pptx?_lake_card=%7B%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2022%2Fpptx%2F1491874%2F1654755841034-01be15ff-8d77-4fbc-a4eb-edf22c4f6d2d.pptx%22%2C%22name%22%3A%22Nginx.pptx%22%2C%22size%22%3A174033%2C%22type%22%3A%22%22%2C%22ext%22%3A%22pptx%22%2C%22source%22%3A%22%22%2C%22status%22%3A%22done%22%2C%22mode%22%3A%22title%22%2C%22download%22%3Afalse%2C%22taskId%22%3A%22u54b9d2b9-c0aa-4509-906b-a69e4e43d26%22%2C%22taskType%22%3A%22upload%22%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22u350f0655%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22file%22%7D)
<a name="zqC6W"></a>
# 企业邮件服务器
<a name="k2OcA"></a>
## 基础
- 跨域发邮件时需要先查询对方域名的MX(Mail eXchange)记录找到IP地址,然后在使用TCP/SMTP协议发送
![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654827054552-7ab5f8d0-09a8-45f4-b6f8-4a49d8b559ce.png#clientId=ud5da7c80-6310-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=400&id=u8a7a1985&margin=%5Bobject%20Object%5D&name=image.png&originHeight=800&originWidth=1774&originalType=binary&ratio=1&rotation=0&showTitle=false&size=852752&status=done&style=none&taskId=u9f497957-55b6-47e7-8c90-9a0afe0a892&title=&width=887)
<a name="xPvFo"></a>
## 配置MX的DNS记录
- 省略第一个主配置文件和第二个区域配置文件的详细配置
- 第三个数据文件配置
![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1654828316761-816c833d-6d9c-42e2-be46-f52143476759.png#clientId=ud5da7c80-6310-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=212&id=ucd6439a2&margin=%5Bobject%20Object%5D&name=image.png&originHeight=424&originWidth=1008&originalType=binary&ratio=1&rotation=0&showTitle=false&size=141556&status=done&style=none&taskId=u526cc5a5-f3d5-4f3a-85f3-ab5523e1271&title=&width=504)
<a name="pZNup"></a>
## 测试发送客户端和接收客户端
- 发送客户端
- postfix(yum install -y postfix )
- 接收客户端
- dovecot (yum install -y dovecot )
<a name="M5eJs"></a>
## 手册
[企业邮件部署.pptx](https://www.yuque.com/attachments/yuque/0/2022/pptx/1491874/1654829819413-1a4c527c-31ea-4b6a-bf92-913644169747.pptx?_lake_card=%7B%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2022%2Fpptx%2F1491874%2F1654829819413-1a4c527c-31ea-4b6a-bf92-913644169747.pptx%22%2C%22name%22%3A%22%E4%BC%81%E4%B8%9A%E9%82%AE%E4%BB%B6%E9%83%A8%E7%BD%B2.pptx%22%2C%22size%22%3A516488%2C%22type%22%3A%22%22%2C%22ext%22%3A%22pptx%22%2C%22source%22%3A%22%22%2C%22status%22%3A%22done%22%2C%22mode%22%3A%22title%22%2C%22download%22%3Afalse%2C%22taskId%22%3A%22u2456ea4d-4603-4081-89a0-91ef0b37b7d%22%2C%22taskType%22%3A%22upload%22%2C%22__spacing%22%3A%22both%22%2C%22id%22%3A%22u7b5b2d8c%22%2C%22margin%22%3A%7B%22top%22%3Atrue%2C%22bottom%22%3Atrue%7D%2C%22card%22%3A%22file%22%7D)
<a name="TEOL3"></a>
# JavaWeb
<a name="B8Ibg"></a>
## 基础
```shell
# 打包
jar -cvf x.(war|jar)
# 解压包
jar -xvf x.(war|jar)
PublicCMS
-
手册
ELK
基础
elasticsearch 9200端口
- logstash 5044端口
- input
- filter
- output
- kibana 5601端口
手册
ELK.pptxMySQL
常用
```shell yum install -y mysql-server
运行安全初始化脚本
mysql_secure_installation
启停服务
systemctl start mysqld systemctl stop mysqld
/usr/local/mysql/bin/mysqld_safe —user=mysql & /usr/local/mysql/bin/mysqladmin -uroot -p shutdown
连接服务器
mysql -uroot -p123456 -hlocalhost [mysql默认要进入的数据库名称]
查看状态
\s
相当于
status
删除数据
delete from tableName # 清空数据,不删除auto_increment的值 truncate table tableName # 清空表,也重置auto_increment的值
DQL
select * from table_name where id > 30 group by having order by limit
<a name="V1cdj"></a>
## SQL
- DDL 数据定义语言 (CREATE、DROP、ALTER...)
- DML 数据维护语言 (INSERT、UPDATE、DELETE...)
- DQL 数据查询语言 (SELECT... )
- DCL 数据控制语言 (GRANT、REVOKE、COMMIT、ROLLBACK...)
<a name="V2xNM"></a>
## 数据类型
- 数值型
![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1655113408152-711f71f1-85ed-4b83-abb7-afeb9f3e2937.png#clientId=u0be36009-feef-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=364&id=ub4e2c23d&margin=%5Bobject%20Object%5D&name=image.png&originHeight=728&originWidth=1536&originalType=binary&ratio=1&rotation=0&showTitle=false&size=645534&status=done&style=none&taskId=ua71397c9-ef45-4ec9-bcd8-bb368715f32&title=&width=768)
- 字符型
![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1655119820857-0f5233f9-387b-4d11-9fb8-c3a38066a408.png#clientId=udc91278e-27c8-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=292&id=u8e7e7cf0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=584&originWidth=1498&originalType=binary&ratio=1&rotation=0&showTitle=false&size=437491&status=done&style=none&taskId=u4fe8bd95-046c-4fd3-9624-3ab43c55100&title=&width=749)
- 时间型
![image.png](https://cdn.nlark.com/yuque/0/2022/png/1491874/1655134377276-ad5be8c1-3fa6-4639-9ed9-c4d735d0e5bc.png#clientId=udc91278e-27c8-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=251&id=u5c6d87e6&margin=%5Bobject%20Object%5D&name=image.png&originHeight=502&originWidth=1600&originalType=binary&ratio=1&rotation=0&showTitle=false&size=390961&status=done&style=none&taskId=u4c13df34-2cf1-4453-ba16-1468eaa83a4&title=&width=800)
- 空值
<a name="VbnWK"></a>
## 字段属性
- unsigned 无符号 适用于 tinyint类型,使之从-128到127到0-255
- zerofill 0填充,指定数字长度后,如果长度不够可以在前面填0,不适用负数 如 int(3) 5就会填充为005
- auto_increment 自动增长
- null / not null 可为空值/不可为空值
- default 默认值
<a name="tl0iD"></a>
## 索引
- 主键索引 primary key (表唯一)
- 唯一索引 unique (当前列的数据不能重复,插入重复的数据会报错duplicate ,列唯一)
- 常规索引 index
- 全文索引 fulltext
```shell
# 创建索引
## 随表创建
create table table_name(.... index index_name(filed1[,field2...])))
## 新增索引
create index index_name on table_name(filed1[,field2...])
# 查看索引
show index from tableName;
# 删除索引
drop index index_name on table_name;
# 创建全文索引
create table table_name(.... fulltext(desc))
# 通过关键字在全文索引的字段上查询
## 通常不会select * 因为某个字段可能很长
## match()传入加上全文索引的字段
## against()传入需要查询的关键字
select name,price from books where match(desc) against('keyword')
## 查看关键字的权重,结果如下图
select match(desc) against('keyword') from books;
事务
- 默认每条语句执行都会自动提交
- set AUTOCOMMIT=0 关闭事务自动提交
事务手动提交
也可以用命令行输入重定向还原
手册
Redis
基础
# 默认16个库,从0-15
# 切换数据库
select [0-15]
# key是否存在
exists key
# 查看当前数据库的key的数量
dbsize
# 清空当前库
flushdb
# 清空所有库
flushall
数据类型
- 字符串 string
- 列表 list
- 哈希 hash
- 集合 set (不能重复且无序)
- 有序集合 zset (不能重复且有序)
- pub/sub
- bitmap(每个二进制位都是有0、1状态可以进行业务意义关联,可用于用户、角色、权限的验证)
- HyperLogLog(大数据量时的计数统计,常用于PV、UV等统计,存在一定少量误差,但高效且占用空间少)
-
事务
其实就是一条一条命令执行
multi
exec
discard
乐观锁
持久化
RDB
RedisDataBase
- 间隔时间有写操作后的整体快照
- 优势
- 劣势
AOF
- AppendOnlyFile
- 以日志的形式增量保存写操作
- 优势
- 劣势
选型
主从
# 切换为主
slaveof no one
# 认主
slaveof ip port
# 查看状态
info replication