在购买一台新的 Debian 云服务器后,无论你是部署 FastAPI、Vue、Java 还是 Node 项目,都需要先完成基础环境的搭建。本篇文章将一步一步带你完成:

  • Python
  • Node.js
  • MySQL
  • Redis
  • Nginx

五大核心组件的安装
并讲清楚:为什么 Linux 安装软件不需要选择安装目录?软件到底安装在哪里?

适合运维新手、后端工程师、自建服务开发者阅读。


1.系统更新 & 基础工具安装

新机第一件事:更新软件源 + 安装基础工具。

sudo apt update
sudo apt upgrade -y
sudo apt install -y git curl wget vim htop build-essential

-y 表示自动回答 yes,不会卡住等待用户确认。


2.为什么 Linux 安装软件不需要选择安装目录?

与 Windows 不同,Linux 的软件安装是通过 APT + dpkg 包管理系统 完成的:

  • 不需要询问安装目录
  • 不需要你选择 “C盘 / D盘”
  • 系统会自动把可执行文件、配置文件、日志文件放到标准位置

这是 Linux 的设计哲学之一:所有软件都遵循统一的目录结构,便于管理和维护。

软件一般会被放到以下目录:

目录 内容
/usr/bin/ 普通可执行程序
/usr/sbin/ 管理员可执行程序
/etc/<软件名>/ 配置文件
/var/lib/<软件名>/ 数据文件(MySQL 数据库、Redis 的 rdb/aof)
/var/log/<软件名>/ 日志文件
/lib/systemd/system/ systemd 服务管理文件

例如:

  • Redis 配置:/etc/redis/redis.conf
  • Redis 数据:/var/lib/redis/
  • MySQL 数据:/var/lib/mysql/
  • Nginx 配置:/etc/nginx/nginx.conf

你完全不需要干预,也不建议手动更改系统目录的位置。


3.安装 Python(FastAPI 必备)

Debian 默认带 python,但最好补齐 pip 和 venv。

sudo apt install -y python3 python3-pip python3-venv

创建项目虚拟环境示例:

python3 -m venv /opt/myapp/backend/venv
source /opt/myapp/backend/venv/bin/activate
pip install fastapi uvicorn

4.安装 Node.js(构建 Vue 前端)

最简单方式直接用 APT:

sudo apt install -y nodejs npm

检查版本:

node -v
npm -v

若后续需要新版(如 Vue3),可以再改用 nvm,但此处先完成基础安装即可。


5.安装 MySQL

sudo apt install -y mysql-server

初始化配置:

sudo mysql_secure_installation

创建数据库与用户:

CREATE DATABASE myapp DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'StrongPassw0rd!';
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;

MySQL 安装后目录结构:

文件内容 路径
配置文件 /etc/mysql/
数据文件 /var/lib/mysql/
日志文件 /var/log/mysql/
主程序 /usr/sbin/mysqld

6.安装 Redis

sudo apt install -y redis-server

启动并设置开机自启:

sudo systemctl restart redis-server
sudo systemctl enable redis-server

测试:

redis-cli ping

Redis 目录结构:

内容 位置
配置 /etc/redis/redis.conf
数据 /var/lib/redis/
日志 /var/log/redis/
程序 /usr/bin/redis-server

7.安装 Nginx(作为前端静态资源服务器 + FastAPI 反代)

sudo apt install -y nginx

检查状态:

systemctl status nginx

站点目录:
/var/www/ 为默认网站目录,你的 Vue 打包代码可以放在:

/var/www/myapp/

Nginx 配置目录:

/etc/nginx/sites-available/

启用网站:

/etc/nginx/sites-enabled/  ← 软链接

Nginx 日志:

/var/log/nginx/

你可以创建一个配置文件:

sudo vim /etc/nginx/sites-available/myapp.conf

配置 Vue 静态文件 + FastAPI 反向代理:

server {
    listen 80;
    server_name _;

    root /var/www/myapp;
    index index.html;

    location /api/ {
        proxy_pass http://127.0.0.1:8000;
    }

    location / {
        try_files $uri $uri/ /index.html;
    }
}

启用:

sudo ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

8.安装目录总结(图表)

软件 配置文件 可执行文件 数据目录 日志目录
Python 项目自定义 /usr/bin/python3 项目自定义 项目自定义
Node/npm /etc/(少量) /usr/bin/node 项目目录 项目自定义
MySQL /etc/mysql/ /usr/sbin/mysqld /var/lib/mysql/ /var/log/mysql/
Redis /etc/redis/redis.conf /usr/bin/redis-server /var/lib/redis/ /var/log/redis/
Nginx /etc/nginx/ /usr/sbin/nginx /var/www/ /var/log/nginx/

9.安装软件需注意安装权限问题

apt install 必须用 root 权限,也就是:

  • 你是 root 用户
  • 你用 sudo apt install xxx

原因非常明确:apt 需要往系统目录写文件,而普通用户没有权限。


9.1 为什么必须用 sudo / root?

apt install 做的事情包括:

9.1.1 把程序安装到系统目录

如:

/usr/bin/
/usr/sbin/
/usr/lib/
/etc/<软件名>/
/var/lib/<软件名>/
/var/log/<软件名>/

普通用户 不能写入 这些目录。

9.1.2 创建 systemd 服务

如:

/lib/systemd/system/nginx.service

这个目录只能 root 写入。

9.1.3 修改系统级配置

/etc/apt/sources.list、软件源索引文件等。

普通用户没有权限。

9.2 什么情况下可以不用 sudo?

你本来就是 root 用户
如果你登录的是 root,那么命令前不需要 sudo:

apt install redis-server

等价于:

sudo apt install redis-server

判断你是不是 root:

whoami

如果输出:

root

那你就是 root。


9.3 普通用户不用 sudo 会发生什么?

直接试:

apt install redis-server

你会立刻收到:

E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock

意思是:

  • 没权限写系统目录
  • 没权限锁定 dpkg
  • 安装流程无法继续

9.4 推荐做法

你有三种可选方式:


方式一:使用 sudo(最常见)

sudo apt install -y nginx

方式二:切换到 root(省事)

sudo -i

然后直接装:

apt install -y nginx

退出 root:

exit

方式三:把用户加入 sudo 组(如果你没有权限)

如果你当前用户不是 sudoer,可以让 root 执行:

usermod -aG sudo your_username

apt 安装系统软件属于“系统级别操作”,必须用 root 权限(或 sudo),否则没有权限写系统目录。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐