Linux 基础入门 第二章

MD原文档下载:百度网盘

一、Linux 进程管理

1.1 相关概念

  • 进程是程序的运行实例
  • 每个进程有唯一的进程ID: PID
  • 进程的父进程ID: PPID
  • 所有进程的始祖(系统第一个进程): systemd( PID 1 )
1.1.1 进程的生命周期
  1. 父进程通过 fork() 创建子进程
  2. 子进程继承父进程的环境变量、文件描述符等
  3. 子进程运行结束后发出 exit() 信号
  4. 父进程收到信号后清理子进程残余(收尸)
  5. 如果父进程没有及时清理,子进程变为"僵尸进程(Zombie)"
1.1.2 进程运行状态

man ps, /STATE

状态字母含义是否占用CPU是否接收 kill 信号
运行 / 可运行R正在运行(Running)和等待运行(Runnable)是,等待运行不占用CPU,但占运行队列
可中断睡眠S等待事件完成,可被唤醒
不可中断睡眠D等待硬件 I/O,不可被唤醒
已停止T进程被暂停(挂起)
僵尸进程Z进程已终止,等待父进程清理

附加标记

字母含义
s包含子进程
l多线程
+前台进程
<高优先级
N低优先级

1.2 ps 静态查看进程

系统负载过高时排障使用

1.2.1 选项
选项说明备注
a显示所有终端的进程
u显示进程所属用户名
x包括未链接终端的进程
f显示进程树
o 字段自定义输出字段
k 字段对指定字段排序字段前加-表示倒序
-sort=字段对指定字段排序字段前加-表示倒序
L显示支持的字段列表
-C指定命令多个命令用 , 分割
-L显示线程
-e显示所有进程
-f显示完整格式进程信息
-F显示更完整格式的进程信息
-H以进程层级格式显示相关信息
1.2.2 ps aux 查看所有进程
输出字段解析
字段说明
USER进程所属用户名
PID唯一的进程 ID 号
%CPUCPU 使用率(一段时间内占用百分比)
%MEM物理内存占用百分比
VSZ虚拟内存使用量,申请内存
RSS物理内存使用量,物理内存实际占用
TTY关联终端设备, tty 为本地登录, pts/ 为远程登录, ?为守护进程
STAT进程状态
START进程启动时间
TIME进程占用CPU的时间
COMMAND命令/程序名,[]表示内核启动进程
# 查看指定应用进程
ps aux | grep nginx

# 统计进程总数
ps aux | wc -l

# 按CPU占比排序, -表示降序,只显示前10个
ps aux --sort=-%cpu |head

# 按内存占比排序
ps aux --sort=-%mem |head 
1.2.3 ps -ef 查看父子关系
# 查看 nginx 进程的父进程,通过 PPID 确认父进程
ps -ef | grep nginx | grep -v grep
1.2.4 ps -eo 自定义字段

常用字段解析

字段说明
pid进程 ID(进程号)
ppid父进程 PID
psr进程当前运行的 CPU 核心编号
user进程所属用户名
%cpuCPU 使用率(一段时间内占用百分比)
pri进程优先级(0-139,越大优先级越高)
ninice 值(-20~19,越小优先级越高)
%mem物理内存占用百分比
stat进程状态字符(多字符组合)
tty关联终端设备,? 代表无终端(后台守护进程)
start进程启动时刻
cmd完整启动命令(全部参数)
comm程序短名称(仅可执行文件名,不带参数)
exe进程对应的可执行文件路径
# 自定义字段并按 cpu使用率 倒序排序后取前10个
ps -eo user,pid,cmd,%cpu,%mem k -%cpu | head

# 自定义字段并按 物理内存占用百分比 倒序排序后取前10个
ps -eo user,pid,cmd,%cpu,%mem k -%mem | head

# 自定义字段并按 cpu使用率 倒序排序后取前10个,输出并写入文件
ps -eo cmd,pid,%cpu,%mem k -%cpu | head | tee ps.txt

# 统计各进程状态进程数量
ps -eo stat | sort | uniq -c
1.2.5 其他用法示例
# 命令按进程树显示
ps auxf

# 查看进程详细信息
prtstat 进程PID

# 查看程序的线程与CPU核心绑定关系
ps axo pid,cmd,psr -L|grep haproxy

1.3 pstree 进程树

常用于查看父进程子进程

带{}的表示多线程进程

Ubuntu需要安装包: apt install -y psmisc

# 显示PID
pstree -p

# 过滤指定程序
pstree -p | grep nginx

# 不显示线程
pstree -T

# 显示指定用户的进程
pstree -u www-data

1.4 pgrep 按名称查找 PID

# 查看 nginx 进程的PID
pgrep nginx

# 查看进程名和 PID
pgrep -l nginx

1.5 lsof 查看文件占用

# 列出符合条件的进程/端口
lsof -i :条件

# 查看由指定终端创建的进程
lsof /dev/终端名

# 查看文件占用,用于排查大文件删除但未释放磁盘空间
lsof 文件

# 查看 80 端口占用
lsof -i :80

# 查看 nginx 打开的文件
lsof -c nginx

1.6 ss 查看端口监听

-n 不解析域名 / 服务名,纯数字显示(速度快)
-t TCP 连接
-u UDP 连接
-l 仅监听状态端口
-a 所有连接(监听 + 已建立)
-p 显示进程 PID / 程序名(需 root)
-4 仅 IPv4
-6 仅 IPv6
-s 显示连接统计摘要
-o 显示计时器信息
-i 显示内部 TCP 信息(cwnd、rtt 等)
# 查看所有 TCP 监听端口
ss -ntl

# TCP+UDP 监听(日常排查首选)
ss -ntul

# 带进程名/PID
sudo ss -ntulp

# 查看程序监听端口
sudo ss -ntlp | grep nginx

# 查看 80 端口程序
sudo ss -ntulp | grep :80

# 查看所有对外 443 连接
ss -nt dport = :443

# 显示所有已建立的ssh连接
ss -o state established '( dport = :ssh or sport = :ssh )'

# 显示所有已建立的HTTP连接
ss -o state established '( dport = :http or sport = :http )'

1.7 top 动态查看进程

1.7.1 选项
选项说明
-b全部显示所有进程,默认按CPU占用显示一部分进程
-d指定刷新间隔,默认3秒
-n #刷新 # 次后退出
-H线程模式
-u只显示指定用户
# 指定刷新间隔为 5s
top -d 5

# 只查看 www-data 用户启动的进程
top -u www-data

# 显示全部进程刷新3次,将输出写入文件
top -b -n 3 > top.log
1.7.2 界面解析

第一行(系统运行状态)
程序名 - 系统时间 运行时间 登录用户
load average: CPU负载(1分钟、5分钟、15分钟)
CPU负载 ≤ 核心数 表示正常,一般不超过CPU核心数

第二行(任务状态)
总进程数 运行数 休眠数 停止数
zombie 僵尸数,必须为0

第三行(CPU 使用情况)
us 用户
sy 内核
ni 优先级
id 空闲 CPU 百分比
wa 等待I/O 等待百分比(过高说明磁盘瓶颈)
hi 硬件中断
si 软件中断
st 虚拟机管理

第四行(内存使用情况)
total 总共
free 空闲
used 使用
buff/cache 缓存

第五行(交换分区 Swap)
total 总共
free 空闲
used swap使用量,过高说明内存不足
avail Mem 真实可用内存,比 free 显示的更准确

1.7.3 字段解析
字段说明
PID唯一的进程 ID 号
USER进程所属用户名
PR进程优先级,PR=NI+20
NInice值(-20 最高优先级,19 最低)
VIRT虚拟内存使用量,申请内存
RES物理内存使用量,物理内存实际占用
SHR共享内存大小
S进程状态
%CPUCPU 使用率(一段时间内占用百分比)
%MEM物理内存占用百分比
TIME+进程占用CPU的时间
COMMAND进程实际命令
1.7.4 交互快捷键
快捷键
q退出
z切换颜色显示
k杀死进程,输入 PID ,再输入信号,默认 15
r调整进程优先级,输入 PID ,再输入 Nice 值
l隐藏第一行
1第三行切换显示每个CPU核心的压力情况
m切换第四行和第五行显示风格
PC按处理器使用量排序
M按内存使用量排序
T按 累计 CPU 时间 降序
c显示程序的绝对路径
W保存配置到 ~/.toprc

htop: 增强版top命令

1.8 kill 进程控制

实际是给进程发信号,只有进程启动才能接收信号

1.8.1 信号说明
kill -l  查看所有信号种类
常用信号
0) 探测,检测进程是否存在,是否有权限向它发出信号,常用于脚本判断程序是否启动
1) SIGHUP 无需关闭进程而让其重新初始化,重载,PID不变,一般使用systemctl reload代替
2) SIGINT 终止进程运行,相当于Ctrl+c
3) SIGQUIT 相当于Ctrl+\
9) SIGKILL 强制结束进程
15) SIGTERM 正常终止正在运行的进程,默认信号,一般使用systemctl stop代替
18) SIGCONT 继续运行
19) SIGSTOP 挂起进程,暂停,用于后台作业
1.8.2 命令格式

kill PID 使用默认信号15,优雅终止进程,进程可以保存数据、清理资源

kill -9 PID 强制终止进程,进程无响应使用

1.8.3 killall 进程名

来自psmisc

根据进程名自动查找PID号并结束所有相关进程,信号与kill一致

1.8.4 pkill 进程名

根据进程名自动查找PID号并结束所有相关进程

更灵活,支持模糊匹配

pkill -t 终端名 结束指定终端的连接

pkill -f "完整进程名" 如果需要杀死同程序的不同进程(程序选项参数不同),输入完整进程名,避免误杀

1.9 控制作业

1.9.1 & 后台运行

命令后跟 & 可以将作业放入后台执行,不占用终端

# 启动时直接放入后台
sleep 1000 &
[1] 4338 # 1 = 作业号, 4338 = PID

# 查看后台作业
jobs
1.9.2 Ctrl + Z 暂停前台作业

本质是个进程发送 19) SIGSTOP 信号

# 前台启动 vim 编辑器,Ctrl + Z 放入后台
vim /etc/hosts
Ctrl + Z
[2]+  Stopped                 vim /etc/hosts

# 查看后台作业状态
jobs
[2]+  Stopped                 vim /etc/hosts # Stopped = 作业暂停

# 进程运行状态变为 T(停止)
ps aux | grep vim
root        4350  0.0  0.6  24992 13488 pts/0    Tl   16:20   0:00 vim /etc/hosts

# 恢复到前台
fg 2
1.9.3 jobs 查看后台作业
1.9.4 fg 恢复到前台
# 恢复最近作业到前台
fg

# 恢复指定作业到前台
fg 1
1.9.5 bg 后台作业后台恢复运行
# 将前台作业放入后台暂停运行
sleep 2000
^Z
[3]+  Stopped                 sleep 2000

# 恢复jobs列表中编号3的作业运行,不拉到前台
bg 3

# 查看后台作业列表,3号作业恢复运行
jobs
[3]-  Running                 sleep 2000 &
1.9.6 kill 控制作业

给进程发送 19) SIGSTOP18) SIGCONT 信号

# 将作业放入后台执行
sleep 2000 &

# 查看后台作业状态
jobs

# 给后台作业 1 发送19信号暂停
kill -19 %1

# 查看后台作业状态
jobs

# 查看后台作业 PID
pgrep sleep

# 给后台作业 PID 发送18信号恢复
kill -18 2498

# 查看后台作业状态
jobs
1.9.7 nohup 忽略 SIGHUP 信号
  • 当 SSH 断开时,Shell 会向普通前台 / 后台&进程发送 SIGHUP 信号,进程退出
  • nohup 让进程屏蔽 SIGHUP 信号,断 SSH、关终端照样跑
  • 生成 nohup.out 文件,输出均写入该文件
  • 此时命令要结束只能 kill
  • 常用于需要长时间运行的脚本,例如备份、同步
# 用 sleep 模拟长时间运行的脚本
nohup sleep 3000 &


# 此时查看进程树 ,父进程为 sshd 下的 bash
pstree -p

# 断开 SSH 重新连接,进程继续运行
ps aux | grep sleep

# 此时查看进程树 ,父进程为 systemd ,不再依赖终端窗口
pstree -p

1.10 进程优先级

1.10.1 nice 值范围
nice 值说明
-20 到 -1高优先级 (需要root权限)
0默认优先级
1 到 19低优先级 (普通用户)
1.10.2 nice 以指定优先级启动
# 普通用户以低优先级执行 sleep 任务
nice -n 10 sleep 2000 &

# 查看进程的 Priority 和 nice 值
ps -eo pid,pri,ni,cmd | grep sleep

# root用户以高优先级执行 sleep 任务
nice -n -10 sleep 3000 &

# 查看进程的 Priority 和 nice 值
ps -eo pid,pri,ni,cmd | grep sleep

1.10.3 renice 调整运行中进程的优先级

# 将 PID 14864 的进程优先级调整为 -20
renice -20 -p 14864 

# 查看调整后的进程优先级
ps -eo pid,pri,ni,cmd | grep 14864

1.11 进程管理其他命令

1.11.1 uptime 查看当前CPU负载

top 第一行显示的 CPU负载 一致

1.11.2 free 查看内存使用

free -m 以M为单位显示

free -h 以人类可读方式显示

buff/cache: 缓存(可释放)

available: 真实可用内存

1.11.3 查看发行版本

红帽 cat /etc/redhat-release

ubuntu cat /etc/os-release

1.11.4 uname 查看内核信息

uname -a 查看所有内核信息

uname -m 查看系统架构

uname -r 查看内核版本

1.11.5 查看CPU信息

lscpu

cat /proc/cpuinfo

nproc 统计CPU的核心数量

1.11.6 lsblk 查看硬盘和分区情况
1.11.7 lspci 查看pci设备

1.12 进程管理相关命令总结

操作命令
查看所有进程ps aux
查看进程父子关系ps -ef
自定义显示字段ps -eo cmd,pid,%cpu,%mem
按 cpu 排序`ps -eo cmd,pid,%cpu,%mem k -%cpu
查看进程树pstree
按名称查找 PIDpgrep nginx
动态监控top / htop
优雅终止进程kill PID
强制终止进程kill -9 PID
按名称杀死进程pkill nginx
查看内存free -h
查看 CPU 负载uptime
查看端口ss -ntlp

二、网络相关原理

2.1 基础概念

网络协议:网络上所有设备所使用的共同语言

协议分层:OSI七层模型

网络中的节点:主机节点和数据交换节点(交换机,路由器)

数据传输链路:

接入链路(access link),连接主机和数据交换节点

骨干链路(backbone link),数据交换节点之间

互联网主流协议TCP/IP

2.2 OSI 参考模型

层级层级名称层级功能常见协议传输数据名称应用
7应用层为应用程序提供网络服务接口,直接与用户程序交互HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3、DNS、DHCP、TFTP、SNMP、MySQL数据/报文七层负载均衡、应用网关、WAF防火墙
6表示层数据格式转换、加密解密、压缩解压、编码转换SSL/TLS、ASCII、JPEG、MPEG、加密协议数据加密设备、格式转换器
5会话层建立、管理和终止通信会话,会话同步与恢复NetBIOS、RPC、PPTP、SDP、SQL会话数据会话控制器、会话网关
4传输层端口寻址与端到端连接,首部包含源/目的端口,决定由哪个程序处理数据TCP、UDP数据段(Segment)四层负载均衡、传输层防火墙
3网络层跨网段路由与IP寻址,首部包含源IP和目的IP地址IP、ICMP、OSPF、BGP、RIP、IGMP数据包/分组(Packet)三层交换机、路由器
2数据链路层同一局域网内点到点传输,首部包含源MAC和下一跳MAC地址LLC、MAC、PPP、以太网协议、Wi-Fi协议数据帧(Frame)二层交换机、网桥、网卡
1物理层传输原始比特流,定义物理介质与电气/机械特性RS-232、RJ45规范、光纤、双绞线、蓝牙物理层比特流(Bit)网线、光纤、集线器、中继器

2.3 TCP/IP参考模型

TCP/IP参考5层模型将OSI七层模型的应用层,表示层,会话层合并为应用层

TCP/IP协议栈常见协议

应用层HTTP、HTTPS、FTP、Telnet、SSH、SMTP、POP3、DNS、DHCP、TFTP、SNMP
传输层TCP、UDP
网络层IP、ICMP、IGMP
数据链路层PPPoE、PPP、以太网协议、Wi-Fi协议
物理层

2.4 数据封装和解封装

发送方由上而下逐层添加协议头部

接收方由下而上逐层去除协议头部

2.5 IP地址

IP地址在网络中用于标识一个节点

IP地址用于在网络中寻址,具有唯一性

IP地址分为IPV4和IPV6,IPV4为主流地址

2.5.1 IPV4地址表示

IPv4地址由32个二进制数构成

为了方便表示通常采用点分十进制

IPv4地址范围: 0.0.0.0~255.255.255.255

2.5.2 IP地址构成

**网络部分:**用来标识一个网络

**主机部分:**用来区分一个网络内的不同主机

**网络掩码:**区分一个IP地址中的网络部分及主机部分

2.5.3 IP地址分类

A类: 0.0.0.0~127.255.255.255 单播地址 8位掩码

B类: 128.0.0.0~191.255.255.255 单播地址 16位掩码

C类: 192.0.0.0~223.255.255.255 单播地址 24位掩码

D类: 224.0.0.0~239.255.255.255 组播(不能用于单个节点)

E类: 240.0.0.0~255.255.255.255 研究

2.5.4 网段

一个网络号所定义的网络范围

网络地址: 用于标识一个网络,主机位全为0,表示网段/网络号

广播地址: 用于向该网络中的所有主机发送数据,主机位全为1

可用地址: 减去网络地址和广播地址即为可用地址

一个网段可用地址计算方法:2ⁿ-2

n为主机位数(32-掩码位数)

2.5.5 私网IP地址

A,B,C类地址预留了私网地址

A类: 10.0.0.0~10.255.255.255

B类: 172.16.0.0~172.31.255.255

C类: 192.168.0.0~192.168.255.255

连接互联网必须使用公网地址

2.5.6 特殊IP地址

表示网段: 主机位全为0,例如192.168.1.0/24

广播地址: 主机位全为1,例如192.168.1.255/24

有限广播地址: IP地址全为1,255.255.255.255

任意地址: IP地址全为0, 0.0.0.0

**回环地址:**127.0.0.0/8,表示节点自身

链路本地地址: 169.254.0.0/16,APIPA地址,当开启自动获取IP,但DHCP不可用时,自动给自身分配一个该地址段IP,用于同一局域网通信

2.5.7 IPV6

128个二进制数构成

2.6 TCP协议

2.6.1 TCP的建立 - 三次握手

基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接

  1. 发起方发送第一个SYN标志的TCP报文给接收方
  2. 接收方接收报文后回复一个SYN和ACK标志的TCP报文给发起方
  3. 发起方接收报文后回复一个ACK标志的TCP报文给接收方,接收方收到报文后,TCP双向连接建立

TCP使用序列号和确认序列号字段实现数据的可靠和有序传输

2.6.2 TCP的关闭 - 四次挥手

当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接

  1. 发起方数据传输完成后发送一个FIN标志的TCP报文给接收方
  2. 接收方接收报文后回复一个ACK标志的TCP报文给发起方
  3. 接收方数据传输完成后再发送一个FIN和ACK标志的TCP报文给发起方
  4. 发起方接收报文后回复一个ACK标志的TCP报文给接收方,TCP双向连接断开

2.7 交换机

二层交换机

实现同网段主机通信

交换机根据MAC地址转发

基于ARP协议

主机不需要配置网关

2.8 路由器

主机配置网关

跨网段通信通过网关转发

多个路由器通过静态路由或动态路由实现数据转发

2.9 VLAN

同一交换机实现不同子网划分

三、部署 WordPress 博客系统

3.1 本地虚拟机部署

# 测试使用Ubuntu24.04.4

# 安装mysql,apache2和PHP及所需扩展
apt install -y mysql-server apache2 php php-mysqlnd php-gd php-xml php-mbstring php-json php-zip
# 确认mysql和apache2工作状态
systemctl status mysql apache2
# 确认80和3306端口是否为mysql和apache2监听
ss -ntlp | grep -E ':80|:3306'
# 确认PHP版本高于7.4,MySQL高于8.0
apt list php mysql-server

# 为WordPress创建专用数据库和用户
mysql
CREATE DATABASE wordpress;
UNINSTALL COMPONENT 'file://component_validate_password'; # mysql关闭强密码验证,生产环境不需要
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '123456'; # 生产环境不使用简单密码
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
quit

# 安装wordpress
wget https://wordpress.ac.cn/latest.tar.gz
tar xf latest.tar.gz
cp -rf wordpress/* /var/www/html/

# wordpress配置
cd /var/www/html
vim wp-config.php
cp wp-config-sample.php wp-config.php
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', '123456' );
define( 'DB_HOST', 'localhost' );

# 修改wordpress文件所有权为apache2启动用户
rm -f index.html # 删除apache2自带的初始页
chown -R www-data:www-data /var/www/html/
ll /var/www/html/

# Rocky关闭默认的防火墙策略和Selinux
systemctl disable --now firewalld
setenforce 0
sed -Ei.bak 's/^(SELINUX=).*/\1disabled/' /etc/selinux/config

# 查询主机IP
ip a

浏览器访问主机IP进行 WordPress 初始化

image-20260716124459036

image-20260716124959786

image-20260716125057395

image-20260716125436154

3.2 阿里云部署

3.2.1 准备域名

打开阿里云并登录 - 搜索域名注册并进入 - 搜索关键字选取域名,测试环境选择价格最低的即可

这里选取了 dengtest.pw ,首年10元

注意在阿里云域名注册需要实名认证,准备个人身份证

在中国(港澳台地区除外)使用80和443端口上线网站需要备案,备案周期较长,生产环境业务上线需提前备案

3.2.2 SSL证书

域名购买后前往证书申请,申请免费证书,免费证书有效期90天

image-20260717094120295

image-20260717094242537

image-20260717094430543

image-20260717094552827

image-20260717094926972

image-20260717095236211

image-20260717095421340

image-20260717095457957

3.2.3 选购云服务器 ECS

image-20260717095630311

image-20260717100352959

image-20260717100554507

登录凭证 自定义密码

登录密码 建议使用复杂密码,简单密码极易被破解,例如使用 openssl rand -base64 12 命令生成随机字符作为密码

提交下单

image-20260717101040094

3.2.4 云解析 DNS

云服务拿到公网IP后,先完成DNS解析

image-20260717101252054

image-20260717101327760

image-20260717101537641

3.2.5 远程连接云服务器

image-20260717101703748

image-20260717101820300

# 修改主机名
hostnamectl set-hostname wordpress

# 美化终端提示符(永久生效)
echo "PS1='\[\033[1;36m\][\u@\h \t \w]\\$\[\033[0m\]'" >> ~/.bashrc && source ~/.bashrc

# 终端重新连接
root@wordpress:~# 
3.2.6 部署 wordpress

放入网站证书

mkdir -p /etc/nginx/ssl

image-20260717103046256

image-20260717103347126

关闭传输窗口

# 安装软件包
apt update;apt install -y nginx mysql-server php-fpm unzip php-mysql

# 确认安装版本,php-fpm不同版本配置文件目录不同,确认PHP版本高于7.4,MySQL高于8.0
apt list php-fpm mysql-server

# 确认相关软件服务状态和端口监听
systemctl status nginx php8.3-fpm mysql
ss -ntlp | grep -E ':80|:3306'

# php-fpm配置
vim /etc/php/8.3/fpm/pool.d/www.conf
# 修改为远程连接
;listen = /run/php/php8.3-fpm.sock
listen = 9000
# 如果nginx和php-fpm安装在同一台服务器,删除前方;启用只允许本机连接,不开启默认任何主机都可以连接
listen.allowed_clients = 127.0.0.1

vim /etc/php/8.3/fpm/php.ini
date.timezone = Asia/Shanghai #修改时区

# 修改文件上传大小限制
post_max_size = 128M
upload_max_filesize = 128M
# 修改 PHP 脚本纯代码最大执行时长
max_execution_time = 360
# 接收 & 解析客户端请求数据最长耗时
max_input_time = 600

# 配置完成重启php-fpm
systemctl restart php8.3-fpm

# nginx配置
vim /etc/nginx/conf.d/www.dengtest.pw.conf

# HTTP 80强制跳转HTTPS
server {
    listen 80;
    server_name www.dengtest.pw dengtest.pw;
    return 301 https://$host$request_uri;
}

# HTTPS 443主配置(无正式证书也可运行)
server {
    listen 443 ssl http2;
    server_name www.dengtest.pw dengtest.pw;
    root /data/php;
    index index.php;

    # 填写证书路径
    ssl_certificate /etc/nginx/ssl/dengtest.pw.pem;
    ssl_certificate_key /etc/nginx/ssl/dengtest.pw.key;

    # SSL安全加固配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 上传大小限制
    client_max_body_size 128m;

    # PHP解析规则、FPM监控页
    location ~ \.php$|pm_status|ping {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param HTTPS on;
    }
}


# 配置完成重启nginx服务
nginx -t
systemctl restart nginx

# mysql 创建数据库,用户和授权
mysql
CREATE DATABASE wordpress;
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
quit

# 安装 wordpress
# 在线下载安装包,可能会429,下载失败;访问https://cn.wordpress.org/download/使用手动下载,传入云服务器
wget https://cn.wordpress.org/latest-zh_CN.zip

# 解压缩
unzip latest-zh_CN.zip
# 手动下单,解压包名不同
unzip wordpress-7.0.1-zh_CN.zip

mkdir -pv /data/php
mv wordpress/* /data/php/
chown -R www-data:www-data /data/php/

# 浏览器访问完成wordpress配置,配置方式不再赘述
3.2.7 wordpress 初始化

浏览器访问选购的域名:www.dengtest.pw

image-20260717104702914

image-20260717104737146

image-20260717104945339

登录管理后台,可进行各种网站配置,发布博文等,部署完成

3.2.8 测试完成释放实例

image-20260717105336952

image-20260717105406504

image-20260717105436635

image-20260717105516244

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值