当前位置:首页>Linux>Linux从零部署实战指南(二):Nginx + MySQL + Redis 运行环境搭建

Linux从零部署实战指南(二):Nginx + MySQL + Redis 运行环境搭建

  • 2026-08-18 23:11:30
Linux从零部署实战指南(二):Nginx + MySQL + Redis 运行环境搭建

Linux 从零部署项目实战指南(二):Nginx + MySQL + Redis 运行环境搭建

本系列面向零基础或初中级开发者,手把手教你将一个项目从零部署到 Linux 服务器,并解决过程中遇到的常见问题。


一、前言

在上一篇文章中,我们完成了服务器的初始化:系统配置好了、防火墙打开了、目录结构规范了。

但一台空服务器还不能跑项目。我们需要安装三样东西:

  • • Nginx:处理 HTTP 请求,反向代理到你的应用,还能托管静态文件
  • • MySQL:存储项目数据的数据库
  • • Redis:缓存数据,大幅提升应用响应速度

这三者是绝大多数 Web 项目的"标配"运行环境。本篇会详细讲解每一步的安装、配置和验证,以及常见坑的解决方案。


二、Nginx 安装与配置

2.1 Nginx 是什么?

Nginx(发音"engine-x")是一个高性能的 HTTP 服务器和反向代理服务器。它帮你做三件事:

┌──────────┐      ┌──────────┐      ┌──────────────┐│  用户浏览器  │ ──▶ │  Nginx   │ ──▶ │  .NET/Python  ││           │      │          │      │  Web 应用     ││  :80/443  │ ◀── │  :80     │ ◀── │  :5000       │└──────────┘      └──────────┘      └──────────────┘                        │                        ▼                 ┌──────────────┐                 │  静态资源      │                 │  (HTML/CSS/JS)│                 └──────────────┘
  • • 反向代理:用户访问 80 端口,Nginx 把请求转发到你应用监听的端口(如 5000)
  • • 静态文件服务:图片、CSS、JS 等直接由 Nginx 响应,速度快
  • • 负载均衡:流量大时,分发到多个后端服务器(后续文章会讲)

2.2 安装 Nginx

# 更新软件源sudo apt update# 安装 Nginxsudo apt install -y nginx# 查看版本nginx -v# 启动 Nginxsudo systemctl start nginx# 设置开机自启sudo systemctl enable nginx# 查看状态sudo systemctl status nginx# 输出应显示:active (running)

安装完成后,在浏览器中访问服务器公网 IP,应该能看到 Nginx 的欢迎页面:

http://123.123.123.123

💡 如果看不到欢迎页:检查防火墙是否放行了 80 端口(参考第一篇的防火墙配置)。

2.3 Nginx 配置文件结构

理解 Nginx 的配置文件结构很重要,否则后面改配置时一脸懵:

/etc/nginx/├── nginx.conf              # 主配置文件(入口)├── sites-available/        # 可用站点配置目录│   └── default             # 默认站点配置├── sites-enabled/          # 已启用站点配置(软链接到 sites-available)│   └── default → ../sites-available/default├── conf.d/                 # 额外的配置文件(可在此添加 .conf 文件)├── modules-enabled/        # 已启用的模块└── mime.types              # MIME 类型映射表

关键理解sites-available 是"候选项",sites-enabled 是"已启用项"。一个站点先在 sites-available 中创建配置,然后通过软链接到 sites-enabled 来启用。禁用一个站点时,只需删除软链接,配置不会丢失。

2.4 配置第一个站点(静态网站)

我们来配置一个最简单的静态站点,用于验证 Nginx 正常工作:

# 1. 创建站点目录sudo mkdir -p /home/www/myproject/static# 2. 创建一个测试页面sudo tee /home/www/myproject/static/index.html << 'EOF'<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <title>我的项目 - 部署成功</title>    <style>        body { font-family: Arial, sans-serif; text-align: center; padding: 50px; }        h1 { color: #0F4C81; }    </style></head><body>    <h1>✅ 部署成功!</h1>    <p>Nginx 运行正常,服务器已就绪。</p></body></html>EOF# 3. 创建 Nginx 站点配置sudo tee /etc/nginx/sites-available/myproject << 'EOF'server {    # 监听端口    listen 80;    listen [::]:80;    # 域名(没有域名就写服务器 IP,或者用 _ 通配)    server_name _;    # 站点根目录    root /home/www/myproject/static;    # 默认首页文件    index index.html;    # 日志文件    access_log /var/log/nginx/myproject_access.log;    error_log /var/log/nginx/myproject_error.log;    location / {        try_files $uri $uri/ =404;    }}EOF# 4. 启用站点(创建软链接)sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/# 5. 先禁用默认站点(避免冲突)sudo rm /etc/nginx/sites-enabled/default# 6. 测试配置语法sudo nginx -t# 输出:syntax is ok / test is successful# 7. 重新加载 Nginxsudo systemctl reload nginx

再次访问 http://123.123.123.123,应该能看到你创建的测试页面。

2.5 配置反向代理(核心功能)

大多数项目不是静态页面,而是运行在特定端口上的 Web 应用。Nginx 作为反向代理,把用户请求转发到应用端口:

# 编辑站点配置,改为反向代理模式sudo tee /etc/nginx/sites-available/myproject << 'EOF'server {    listen 80;    listen [::]:80;    server_name _;    # 访问日志    access_log /var/log/nginx/myproject_access.log;    error_log /var/log/nginx/myproject_error.log;    # ---------- 静态资源(Nginx 直接处理,更快) ----------    location /static/ {        alias /home/www/myproject/static/;        expires 30d;                    # 浏览器缓存 30 天        add_header Cache-Control "public, immutable";    }    location /uploads/ {        alias /home/www/myproject/static/uploads/;        expires 7d;    }    # ---------- 动态请求(反向代理到后端应用) ----------    location / {        proxy_pass http://127.0.0.1:5000;  # 转发到你的应用        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;        # WebSocket 支持(如果应用需要)        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection "upgrade";        # 超时设置        proxy_connect_timeout 60s;        proxy_send_timeout 60s;        proxy_read_timeout 60s;    }}EOF# 测试配置并重新加载sudo nginx -t && sudo systemctl reload nginx

反向代理配置说明

配置项
作用
说明
proxy_pass
转发目标地址
将请求转发到后端应用监听的地址和端口
proxy_set_header Host
传递原始域名
后端应用通过 Host 头知道用户访问的是哪个域名
proxy_set_header X-Real-IP
传递真实用户 IP
否则后端应用看到的 IP 都是 127.0.0.1(Nginx 本机)
proxy_set_header X-Forwarded-For
传递代理链
记录了请求经过的所有代理 IP
proxy_http_version 1.1
升级 HTTP 版本
WebSocket 需要 HTTP/1.1 或更高

2.6 配置 HTTPS(SSL 证书)

为什么要 HTTPS?

  • • 浏览器标记 HTTP 网站为"不安全"
  • • 数据加密传输,防止中间人攻击
  • • 微信小程序等平台强制要求 HTTPS

方案一:使用 Let's Encrypt 免费证书(推荐)

# 安装 Certbotsudo apt install -y certbot python3-certbot-nginx# 申请证书(需要域名已解析到服务器 IP)sudo certbot --nginx -d yourdomain.com# 按照提示操作:# 1. 输入邮箱地址(用于接收证书续期通知)# 2. 同意服务条款# 3. 选择是否将 HTTP 重定向到 HTTPS(强烈建议选)

Certbot 会自动修改 Nginx 配置,添加 SSL 相关配置。证书有效期为 90 天,设置自动续期:

# 测试自动续期是否正常工作sudo certbot renew --dry-run# Certbot 会安装 systemd 定时器自动续期,无需手动操作# 查看定时器状态sudo systemctl status certbot.timer

方案二:手动配置 SSL(使用已有证书)

如果你有证书文件(如从云平台申请的免费证书):

# 将证书文件放在服务器上sudo mkdir -p /etc/nginx/ssl# 上传 yourdomain.com.pem 和 yourdomain.com.key 到 /etc/nginx/ssl/# 配置 Nginxsudo tee /etc/nginx/sites-available/myproject << 'EOF'server {    # HTTP 自动跳转 HTTPS    listen 80;    listen [::]:80;    server_name yourdomain.com;    return 301 https://$server_name$request_uri;}server {    listen 443 ssl;    listen [::]:443 ssl;    server_name yourdomain.com;    # SSL 证书配置    ssl_certificate     /etc/nginx/ssl/yourdomain.com.pem;    ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;    # SSL 安全配置(推荐)    ssl_protocols TLSv1.2 TLSv1.3;    ssl_ciphers HIGH:!aNULL:!MD5;    ssl_prefer_server_ciphers on;    ssl_session_cache shared:SSL:10m;    ssl_session_timeout 10m;    # 其他配置与之前一致    root /home/www/myproject/static;    index index.html;    location / {        proxy_pass http://127.0.0.1:5000;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;    }}EOFsudo nginx -t && sudo systemctl reload nginx

2.7 Nginx 常用管理命令

# 启动sudo systemctl start nginx# 停止sudo systemctl stop nginx# 重启sudo systemctl restart nginx# 重新加载配置(不中断服务,推荐)sudo systemctl reload nginx# 查看状态sudo systemctl status nginx# 测试配置语法sudo nginx -t# 查看错误日志sudo tail -f /var/log/nginx/error.log# 查看访问日志sudo tail -f /var/log/nginx/access.log

三、MySQL 安装与配置

3.1 MySQL 是什么?

MySQL 是最流行的开源关系型数据库。你的项目数据(用户信息、文章内容、订单记录等)都存储在 MySQL 中。

3.2 安装 MySQL 8.0

# 安装 MySQL 8.0sudo apt install -y mysql-server-8.0# 查看版本mysql --version# 确认 MySQL 服务已启动sudo systemctl status mysql# 输出应显示:active (running)# 设置开机自启(默认已设置)sudo systemctl enable mysql

3.3 安全初始化配置

安装完成后,必须执行安全配置脚本:

# 运行安全配置脚本sudo mysql_secure_installation

安全配置选项说明

Enter current password for root:          # 直接回车(默认无密码)Switch to unix_socket authentication?     # 输入 n(保持密码认证)Change the password for root?             # 输入 y(为 root 设置密码)  New password:                           # 输入一个强密码(如 MySqL@2024#Secure)  Re-enter new password:                  # 再次输入确认Remove anonymous users?                   # 输入 y(删除匿名用户)Disallow root login remotely?             # 输入 y(禁止 root 远程登录)Remove test database and access to it?    # 输入 y(删除测试数据库)Reload privilege tables now?              # 输入 y(立即生效)

3.4 验证 MySQL 登录

# 使用 root 密码登录sudo mysql -u root -p# 输入刚才设置的密码# 登录后看到 mysql> 提示符,表示成功# 运行以下命令测试mysql> SHOW DATABASES;+--------------------+| Database           |+--------------------+| information_schema || mysql              || performance_schema || sys                |+--------------------+4 rows in set (0.01 sec)mysql> EXIT;

3.5 创建项目数据库和用户

不要直接用 root 操作项目数据库,就像上一篇说的,不要用 root 操作项目一样。创建一个专用数据库和用户:

-- 登录 MySQLsudo mysql -u root -p-- 创建项目数据库CREATE DATABASE myproject_db    CHARACTER SET utf8mb4    COLLATE utf8mb4_unicode_ci;-- 创建项目用户CREATE USER 'myapp'@'localhost' IDENTIFIED BY 'YourAppPassword2024!';-- 授权(只给必要的权限)GRANT ALL PRIVILEGES ON myproject_db.* TO 'myapp'@'localhost';-- 如果应用需要从其他服务器连接(比如你的开发机)-- 先查一下你的开发机 IP,然后:-- CREATE USER 'myapp'@'192.168.1.%' IDENTIFIED BY 'YourAppPassword2024!';-- GRANT ALL PRIVILEGES ON myproject_db.* TO 'myapp'@'192.168.1.%';-- 刷新权限FLUSH PRIVILEGES;-- 验证SHOW DATABASES;SELECT user, host FROM mysql.user;-- 退出EXIT;

字符集说明

  • • utf8mb4:真正的 UTF-8 编码,支持 emoji 😊 和中文字符
  • • utf8mb4_unicode_ci:基于 Unicode 的排序规则,支持多语言排序
  • • 不要用 utf8(它是 MySQL 的 utf8mb3 别名,不支持 emoji 等 4 字节字符)

3.6 测试数据库连接

# 用新创建的用户测试连接mysql -u myapp -p -D myproject_db# 输入密码,应该能正常登录# 创建一张测试表mysql> CREATE TABLE test_connection (    id INT AUTO_INCREMENT PRIMARY KEY,    message VARCHAR(100),    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);mysql> INSERT INTO test_connection (message) VALUES ('连接成功!');mysql> SELECT * FROM test_connection;+----+--------------+---------------------+| id | message      | created_at          |+----+--------------+---------------------+|  1 | 连接成功!    | 2026-07-29 10:00:00 |+----+--------------+---------------------+mysql> DROP TABLE test_connection;mysql> EXIT;

3.7 配置远程访问(按需开启)

默认 MySQL 只允许本地(localhost)访问。如果你的应用在另一台服务器上,需要开启远程访问:

# 1. 编辑 MySQL 配置文件sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf# 2. 找到以下行并修改# 修改前:bind-address = 127.0.0.1# 修改后:bind-address = 0.0.0.0# 3. 重启 MySQLsudo systemctl restart mysql# 4. 防火墙放行 MySQL 端口(仅限内网 IP)sudo ufw allow from 10.0.0.0/8 to any port 3306# 或指定具体的应用服务器 IPsudo ufw allow from 应用服务器IP to any port 3306

⚠️ 安全警告:不要将 MySQL 端口(3306)暴露到公网(0.0.0.0/0),否则你的数据库会被全网扫描并暴力破解。

3.8 数据库备份策略

定时备份数据库是关键操作,别等数据丢了才后悔。

手动备份

# 备份单个数据库mysqldump -u myapp -p myproject_db > /data/backup/db/myproject_db_$(date +%Y%m%d).sql# 压缩备份(推荐,备份文件可缩小 10-20 倍)mysqldump -u myapp -p myproject_db | gzip > /data/backup/db/myproject_db_$(date +%Y%m%d).sql.gz# 备份所有数据库mysqldump -u root -p --all-databases | gzip > /data/backup/db/all_databases_$(date +%Y%m%d).sql.gz

自动定时备份(Crontab)

# 创建备份脚本sudo tee /usr/local/bin/backup-mysql.sh << 'EOF'#!/bin/bashBACKUP_DIR="/data/backup/db"DB_NAME="myproject_db"DB_USER="myapp"DB_PASSWORD="YourAppPassword2024!"RETENTION_DAYS=30mkdir -p $BACKUP_DIR# 备份并压缩mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | \  gzip > $BACKUP_DIR/${DB_NAME}_$(date +%Y%m%d_%H%M%S).sql.gz# 删除 30 天前的旧备份find $BACKUP_DIR -name "*.sql.gz" -mtime +$RETENTION_DAYS -deleteecho "Backup completed: $(date)"EOF# 给脚本执行权限sudo chmod +x /usr/local/bin/backup-mysql.sh# 添加定时任务(每天凌晨 3 点执行)sudo crontab -e# 添加以下行:0 3 * * * /usr/local/bin/backup-mysql.sh >> /var/log/backup-mysql.log 2>&1

四、Redis 安装与配置

4.1 Redis 是什么?

Redis 是一个内存数据库,读写速度极快(微秒级),常用于:

  • • 缓存数据库查询结果,减少 MySQL 压力
  • • 存储 Session(用户会话)
  • • 消息队列(如 Celery 的任务队列)
  • • 排行榜、计数器等实时数据

4.2 安装 Redis

# 安装 Redissudo apt install -y redis-server# 查看版本redis-server --version# 确认 Redis 服务已启动sudo systemctl status redis-server# 输出应显示:active (running)# 测试连通性redis-cli ping# 输出:PONG

4.3 配置 Redis

默认配置可以直接用,但为了安全,需要做几项调整:

# 编辑 Redis 配置文件sudo vim /etc/redis/redis.conf

关键配置项说明

# 1. 绑定地址(只允许本机访问,最安全)bind 127.0.0.1 ::1# 如果应用和 Redis 在同一台服务器,保持这个配置# 如果不在一台服务器,改为 bind 0.0.0.0 并设置防火墙# 2. 端口(默认 6379,一般不需要改)port 6379# 3. 守护进程模式(后台运行)daemonize yes# 4. 日志级别loglevel notice# 可选:debug(开发)、verbose、notice(推荐)、warning# 5. 日志文件logfile /var/log/redis/redis-server.log# 6. 设置密码(强烈建议!)requirepass YourRedisPassword2024!# 在 # requirepass foobared 下方添加# 7. 最大内存限制(防止 Redis 耗尽服务器内存)maxmemory 256mb# 根据服务器内存设定,建议不超过总内存的 25%# 2G 服务器 → 512mb,4G 服务器 → 1gb# 8. 内存淘汰策略(达到 maxmemory 时怎么处理)maxmemory-policy allkeys-lru# 可选策略:#   noeviction:不淘汰,写入时报错(默认,不推荐)#   allkeys-lru:淘汰最近最少使用的 key(推荐)#   volatile-lru:淘汰设置了过期时间的 key 中最近最少使用的#   allkeys-lfu:淘汰使用频率最低的 key

配置完成后重启 Redis

# 检查配置语法sudo redis-server /etc/redis/redis.conf --test# 重启 Redissudo systemctl restart redis-server# 验证密码登录redis-cli -a YourRedisPassword2024! ping# 输出:PONG# 不带密码测试redis-cli ping# 输出:NOAUTH Authentication required.

4.4 配置 Redis 持久化

Redis 默认把数据存在内存中,重启后数据会丢失。配置持久化可以让数据保存到磁盘:

# 编辑 /etc/redis/redis.confsudo vim /etc/redis/redis.conf

两种持久化方式对比

方式
配置
优点
缺点
推荐场景
RDB
(快照)
save 900 1
备份文件小,恢复快
可能丢失最近几分钟的数据
缓存场景
AOF
(追加文件)
appendonly yes
数据丢失少(最多丢失1秒)
文件大,恢复慢
数据重要场景

推荐配置(同时开启两者)

# RDB 快照配置(默认已开启)save 900 1        # 900 秒(15 分钟)内至少 1 个 key 被修改save 300 10       # 300 秒(5 分钟)内至少 10 个 key 被修改save 60 10000     # 60 秒内至少 10000 个 key 被修改# RDB 文件保存路径dir /var/lib/redisdbfilename dump.rdb# AOF 持久化(推荐开启)appendonly yesappendfilename "appendonly.aof"# AOF 写入策略(推荐 everysec)appendfsync everysec# always:每次写入都同步(最安全,但最慢)# everysec:每秒同步一次(推荐,平衡安全与性能)# no:由操作系统决定(最快,但可能丢失大量数据)# AOF 重写(自动压缩 AOF 文件)auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb
# 重启 Redis 使配置生效sudo systemctl restart redis-server# 验证持久化文件已生成ls -la /var/lib/redis/# 应该能看到 dump.rdb 和 appendonly.aof

4.5 测试 Redis 功能

# 设置键值redis-cli -a YourRedisPassword2024! set test_key "Hello Redis"# 读取redis-cli -a YourRedisPassword2024! get test_key# 输出:"Hello Redis"# 设置过期时间(10 秒后自动删除)redis-cli -a YourRedisPassword2024! setex temp_key 10 "临时数据"# 查看所有 keyredis-cli -a YourRedisPassword2024! keys *# 清理测试数据redis-cli -a YourRedisPassword2024! del test_key temp_key

五、服务管理

5.1 使用 systemd 管理服务

Ubuntu 使用 systemd 管理系统服务。三个核心服务的命令:

# ========== Nginx ==========sudo systemctl status nginxsudo systemctl restart nginxsudo systemctl reload nginx      # 重载配置(不中断服务)# ========== MySQL ==========sudo systemctl status mysqlsudo systemctl restart mysqlsudo systemctl reload mysql       # MySQL 的 reload 是重新加载配置# ========== Redis ==========sudo systemctl status redis-serversudo systemctl restart redis-server

5.2 查看服务日志

# Nginx 错误日志sudo tail -f /var/log/nginx/error.log# Nginx 访问日志sudo tail -f /var/log/nginx/access.log# MySQL 日志sudo tail -f /var/log/mysql/error.log# Redis 日志sudo tail -f /var/log/redis/redis-server.log# 查看系统日志(按服务名过滤)sudo journalctl -u nginx --since "5 minutes ago"sudo journalctl -u mysql --since "today"sudo journalctl -u redis-server --since "1 hour ago" --no-pager

5.3 监控服务状态

# 查看服务监听端口sudo ss -tlnp | grep -E '80|443|3306|6379'# 输出示例:# LISTEN 0 511 *:80     *:*     users:(("nginx",pid=1234))# LISTEN 0 151 *:3306   *:*     users:(("mysqld",pid=5678))# LISTEN 0 511 127.0.0.1:6379 *:* users:(("redis-server",pid=9012))# 查看进程ps aux | grep -E 'nginx|mysql|redis'# 查看内存占用ps aux --sort=-%mem | grep -E 'nginx|mysql|redis' | head -10

六、性能优化建议

6.1 Nginx 优化

# 编辑 /etc/nginx/nginx.confsudo vim /etc/nginx/nginx.conf
# 工作进程数(设为 CPU 核心数)worker_processes auto;# 每个进程的最大连接数worker_connections 1024;# 开启 gzip 压缩(减少传输数据量)gzip on;gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;gzip_min_length 1000;gzip_comp_level 5;# 开启静态文件缓存(降低服务器负载)# 在站点配置的 location /static/ 中已配置 expires

6.2 MySQL 优化

# 编辑 MySQL 配置文件sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 根据服务器内存调整# 2G 内存服务器推荐值innodb_buffer_pool_size = 512M    # 设为总内存的 25%-50%query_cache_type = 0              # MySQL 8.0 已废弃查询缓存query_cache_size = 0max_connections = 100             # 最大连接数

6.3 Redis 优化

# 已在 /etc/redis/redis.conf 中配置maxmemory 256mbmaxmemory-policy allkeys-lru

七、常见问题

❓ Q1:Nginx 启动失败 "address already in use"

原因:80 端口已被占用,通常是 Apache 或其他服务在占用。

排查与解决

# 查看哪个进程占用了 80 端口sudo ss -tlnp | grep :80# 如果是 Apache 占用了,停用它sudo systemctl stop apache2sudo systemctl disable apache2# 重启 Nginxsudo systemctl start nginx

❓ Q2:Nginx 配置测试报错 "could not build server_names_hash"

原因:server_name 配置太多或太长,哈希表不够大。

解决方案

# 编辑 /etc/nginx/nginx.conf,在 http 块中添加:server_names_hash_bucket_size 128;server_names_hash_max_size 1024;# 测试并重载sudo nginx -t && sudo systemctl reload nginx

❓ Q3:MySQL 无法启动 "Permission denied"

原因:MySQL 数据目录权限不正确。

解决方案

# 修复权限sudo chown -R mysql:mysql /var/lib/mysqlsudo chmod -R 750 /var/lib/mysql# 重启 MySQLsudo systemctl restart mysql

❓ Q4:MySQL 连接报错 "Access denied for user"

原因:用户名、密码或主机限制不正确。

排查步骤

# ① 检查用户是否存在及允许的主机sudo mysql -u root -pmysql> SELECT user, host, authentication_string FROM mysql.user WHERE user='myapp';# ② 如果不存在,重新创建用户mysql> CREATE USER 'myapp'@'localhost' IDENTIFIED BY 'YourPassword';mysql> GRANT ALL PRIVILEGES ON myproject_db.* TO 'myapp'@'localhost';mysql> FLUSH PRIVILEGES;# ③ 检查密码是否正确(可以重置密码)mysql> ALTER USER 'myapp'@'localhost' IDENTIFIED BY 'NewPassword';mysql> FLUSH PRIVILEGES;

❓ Q5:Redis 连接报错 "NOAUTH Authentication required"

原因:连接 Redis 时没有提供密码。

解决方案

# 连接时带密码redis-cli -a YourRedisPassword2024!# 或者先连接再认证redis-cli> AUTH YourRedisPassword2024!# 如果是应用连接,检查连接字符串是否包含密码# Redis 连接字符串格式:# redis://:YourRedisPassword2024!@localhost:6379/0

❓ Q6:MySQL 远程连接不上

原因:没有开启远程访问或防火墙未放行。

排查步骤

# ① 检查 MySQL 是否监听所有网卡sudo ss -tlnp | grep 3306# 如果显示 127.0.0.1:3306,说明只监听了本机# 需要修改 bind-address = 0.0.0.0# ② 检查防火墙是否放行sudo ufw status | grep 3306# 如果没有规则,添加:sudo ufw allow from 10.0.0.0/8 to any port 3306# ③ 检查云平台安全组# 登录控制台,确认 3306 端口已放行# ④ 测试端口连通性(从客户端机器)telnet 服务器IP 3306

❓ Q7:服务器重启后服务没有自动启动

原因:服务没有设置开机自启。

解决方案

# 设置所有核心服务开机自启sudo systemctl enable nginxsudo systemctl enable mysqlsudo systemctl enable redis-server# 验证sudo systemctl is-enabled nginxsudo systemctl is-enabled mysqlsudo systemctl is-enabled redis-server# 输出都应该是:enabled

八、总结

至此,你的服务器已经具备了运行 Web 项目的完整环境!

本文要点回顾:

第二篇:Nginx + MySQL + Redis 运行环境搭建├── ✅ Nginx 安装与配置│   ├── 反向代理配置(核心功能)│   ├── HTTPS 配置(Let's Encrypt 免费证书)│   └── 常用管理命令├── ✅ MySQL 8.0 安装与配置│   ├── 安全初始化配置│   ├── 创建项目数据库和用户│   ├── 远程访问配置(可选)│   └── 自动备份策略├── ✅ Redis 安装与配置│   ├── 密码认证│   ├── 内存限制和淘汰策略│   ├── 持久化配置(RDB + AOF)│   └── 功能验证├── ✅ 服务管理│   ├── systemd 管理三件套│   ├── 日志查看│   └── 状态监控└── ✅ 常见问题排查    ├── Nginx 端口冲突    ├── MySQL 权限问题    ├── Redis 认证问题    └── 远程连接问题

下一篇预告:《Linux 从零部署项目实战指南(三):实战部署 .NET Web 应用》我们将把一个 .NET Web API 项目从源码编译、发布、配置到上线,完整走一遍部署流程。


如果你在操作过程中遇到任何问题,欢迎在评论区留言交流!

📌 本系列持续更新中,关注 IT在线自学 第一时间获取最新教程。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 19:59:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/507787.html
  2. 运行时间 : 0.335270s [ 吞吐率:2.98req/s ] 内存消耗:4,469.13kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0c29e0fdb04b83a3b5727ff669a19c17
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000952s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001378s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.016466s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.013951s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001429s ]
  6. SELECT * FROM `set` [ RunTime:0.032026s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.002033s ]
  8. SELECT * FROM `article` WHERE `id` = 507787 LIMIT 1 [ RunTime:0.012679s ]
  9. UPDATE `article` SET `lasttime` = 1787313569 WHERE `id` = 507787 [ RunTime:0.030409s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.002007s ]
  11. SELECT * FROM `article` WHERE `id` < 507787 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.004751s ]
  12. SELECT * FROM `article` WHERE `id` > 507787 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003311s ]
  13. SELECT * FROM `article` WHERE `id` < 507787 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003032s ]
  14. SELECT * FROM `article` WHERE `id` < 507787 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008190s ]
  15. SELECT * FROM `article` WHERE `id` < 507787 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.013979s ]
0.338795s