LAMP

组件

image.png

源码安装

  1. yum install -y gcc gcc-c++ make
  2. gcc --version
  3. # 编译安装三部曲
  4. ./configure --prefix=
  5. make
  6. make install
  7. # 编译出错清除缓存
  8. make clean

操作命令

  1. apachectl start|stop|restart
  2. # 开启mysql
  3. mysqld_safe --user=mysql &
  4. # 关闭mysql
  5. mysqladmin -u mysql -p 123456 shutdown
  6. # php内置扩展安装方法
  7. # 扩展内没有configure时
  8. phpize # 生成configure
  9. ./configure
  10. make
  11. make install
  12. # 配置文件中开启扩展
  13. # php三方包管理器 composer
  14. # 官方仓库 Packagist.org
  15. composer -V
  16. require # 将配置写入composer.json
  17. install # 按lock文件下载
  18. update # 更新
  19. # phpMyAdmin
  20. # 可视化管理MySQL
  21. # wordpress
  22. # 测试整体LAMP环境

手册

LAMP.docx

LNMP

基础

手册

LNMP.pptx

Apache

常用配置

  1. # 检测配置文件是否有语法错误
  2. apachectl -t
  3. # 虚拟主机下多个项目可以自定义一些配置
  4. # 每个项目根目录下可以创建.htaccess文件做些简单的apache配置,不用重启即可生效
  5. # 项目下的目录和子目录都会生效
  6. # 缺点是每访问这个项目都会加载这个配置文件
  7. # 当然是可以通过主配置文件下的AllowOverride None指令关闭这个动态的配置文件
  8. # apache的用户认证
  9. # 新增用户名密码文件
  10. htpasswd -c apache.passwd user1
  11. # 新增用户
  12. htpasswd -m apache.passwd user2

工作模式

  • MPM(多进程模块处理),以下是三种主要模式
    • prefork(多进程模式)
    • worker(多进程多线程模式,但要注意线程安全问题)
    • event(在worker模式上增加了keep-alive,目前主要使用此模式)
  • 对应配置文件是extra/httpd-mpm.conf
  • 查看当前是哪种模式
    1. httpd -V | grep -i mpm

    手册

    Apache服务器的配置与管理.pptx

    Nginx

    基础

    ```shell

    ip黑白名单

    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 ; }

  1. <a name="qH9Q8"></a>
  2. ## 手册
  3. [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)
  4. <a name="zqC6W"></a>
  5. # 企业邮件服务器
  6. <a name="k2OcA"></a>
  7. ## 基础
  8. - 跨域发邮件时需要先查询对方域名的MX(Mail eXchange)记录找到IP地址,然后在使用TCP/SMTP协议发送
  9. ![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)
  10. <a name="xPvFo"></a>
  11. ## 配置MX的DNS记录
  12. - 省略第一个主配置文件和第二个区域配置文件的详细配置
  13. - 第三个数据文件配置
  14. ![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)
  15. <a name="pZNup"></a>
  16. ## 测试发送客户端和接收客户端
  17. - 发送客户端
  18. - postfix(yum install -y postfix )
  19. - 接收客户端
  20. - dovecot (yum install -y dovecot )
  21. <a name="M5eJs"></a>
  22. ## 手册
  23. [企业邮件部署.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)
  24. <a name="TEOL3"></a>
  25. # JavaWeb
  26. <a name="B8Ibg"></a>
  27. ## 基础
  28. ```shell
  29. # 打包
  30. jar -cvf x.(war|jar)
  31. # 解压包
  32. jar -xvf x.(war|jar)

PublicCMS

运行安全初始化脚本

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

  1. <a name="V1cdj"></a>
  2. ## SQL
  3. - DDL 数据定义语言 (CREATE、DROP、ALTER...)
  4. - DML 数据维护语言 (INSERT、UPDATE、DELETE...)
  5. - DQL 数据查询语言 (SELECT... )
  6. - DCL 数据控制语言 (GRANT、REVOKE、COMMIT、ROLLBACK...)
  7. <a name="V2xNM"></a>
  8. ## 数据类型
  9. - 数值型
  10. ![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)
  11. - 字符型
  12. ![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)
  13. - 时间型
  14. ![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)
  15. - 空值
  16. <a name="VbnWK"></a>
  17. ## 字段属性
  18. - unsigned 无符号 适用于 tinyint类型,使之从-128到127到0-255
  19. - zerofill 0填充,指定数字长度后,如果长度不够可以在前面填0,不适用负数 如 int(3) 5就会填充为005
  20. - auto_increment 自动增长
  21. - null / not null 可为空值/不可为空值
  22. - default 默认值
  23. <a name="tl0iD"></a>
  24. ## 索引
  25. - 主键索引 primary key (表唯一)
  26. - 唯一索引 unique (当前列的数据不能重复,插入重复的数据会报错duplicate ,列唯一)
  27. - 常规索引 index
  28. - 全文索引 fulltext
  29. ```shell
  30. # 创建索引
  31. ## 随表创建
  32. create table table_name(.... index index_name(filed1[,field2...])))
  33. ## 新增索引
  34. create index index_name on table_name(filed1[,field2...])
  35. # 查看索引
  36. show index from tableName;
  37. # 删除索引
  38. drop index index_name on table_name;
  39. # 创建全文索引
  40. create table table_name(.... fulltext(desc))
  41. # 通过关键字在全文索引的字段上查询
  42. ## 通常不会select * 因为某个字段可能很长
  43. ## match()传入加上全文索引的字段
  44. ## against()传入需要查询的关键字
  45. select name,price from books where match(desc) against('keyword')
  46. ## 查看关键字的权重,结果如下图
  47. select match(desc) against('keyword') from books;

image.png

事务

  • 默认每条语句执行都会自动提交
  • set AUTOCOMMIT=0 关闭事务自动提交
  • 事务手动提交

    • begin
    • commit
    • rollback

      查询操作信息

      image.png

      慢查询

      image.png
      image.png
      image.png
      image.png

      主从

      image.png
      image.png
      image.png
      image.png
      image.png

      备份与恢复

      image.pngimage.png
      image.png
      image.png

      cp 备份与恢复

      image.png

      load data导入导出csv文件

      image.png

      mysqldump source导入导出sql文件

      image.png
  • 也可以用命令行输入重定向还原

image.png

手册

MySQL.pptx

Redis

基础

  1. # 默认16个库,从0-15
  2. # 切换数据库
  3. select [0-15]
  4. # key是否存在
  5. exists key
  6. # 查看当前数据库的key的数量
  7. dbsize
  8. # 清空当前库
  9. flushdb
  10. # 清空所有库
  11. flushall

数据类型

  • 字符串 string
  • 列表 list
  • 哈希 hash
  • 集合 set (不能重复且无序)
  • 有序集合 zset (不能重复且有序)
  • pub/sub
  • bitmap(每个二进制位都是有0、1状态可以进行业务意义关联,可用于用户、角色、权限的验证)
  • HyperLogLog(大数据量时的计数统计,常用于PV、UV等统计,存在一定少量误差,但高效且占用空间少)
  • geospatial(地理空间)

    事务

  • 其实就是一条一条命令执行

    1. multi
    2. exec
    3. discard

    image.png
    image.png
    image.png

    乐观锁

    image.png

    持久化

    RDB

  • RedisDataBase

  • 间隔时间有写操作后的整体快照
  • 优势

image.png

  • 劣势

image.png

AOF

  • AppendOnlyFile
  • 以日志的形式增量保存写操作

image.png
image.png
image.png
image.png
image.png

  • 优势

image.png

  • 劣势

image.png

选型

image.png

主从

  1. # 切换为主
  2. slaveof no one
  3. # 认主
  4. slaveof ip port
  5. # 查看状态
  6. info replication

哨兵

image.png
image.png
image.png

集群

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

缓存三大问题

击穿

image.png
image.png

穿透

image.png
image.png
image.png

雪崩

image.png
image.png

手册

Redis.pptx

PHP

手册

PHP的应用与发展.pptx
PHP的基本语法.pptx