杰瑞科技汇

LinuxLinux服务器搭建教程难不难?

Linux服务器全流程搭建指南

本教程将分为以下几个核心部分:

  1. 第一步:准备工作 (选型与购买)
  2. 第二步:连接你的服务器 (SSH)
  3. 第三步:初始配置与安全加固 (至关重要)
  4. 第四步:安装常用软件 (LAMP/LNMP栈)
  5. 第五步:部署你的第一个应用
  6. 第六步:后续维护与管理

第一步:准备工作 (选型与购买)

在开始之前,你需要明确你的需求,并选择合适的服务器。

1 服务器类型选择

  • 云服务器

    • 优点:弹性伸缩(随时升级/降配)、按需付费、无需维护硬件、全球节点多、高可用性。
    • 缺点:长期来看可能比自建贵,数据存储在第三方。
    • 主流服务商
      • 国际:Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure, DigitalOcean, Vultr, Linode。
      • 国内:阿里云, 腾讯云, 华为云, 百度智能云。
    • 推荐对于绝大多数用户,从云服务器开始是最佳选择。
  • VPS (Virtual Private Server)

    • 优点:性价比高,资源独享(与云服务器类似),适合个人博客、小型项目。
    • 缺点:性能和稳定性通常不如大型云服务商,带宽和IP资源可能有限。
    • 主流服务商:DigitalOcean, Vultr, Linode, Bandwagon Host (搬瓦工), VirMach。
  • 物理服务器/自建服务器

    • 优点:完全控制硬件,性能最大化,无数据隐私担忧。
    • 缺点:前期投入高,需要自行维护硬件和机房环境(电、网络、散热),技术要求高。
    • 推荐:仅适合有特殊需求(如高性能计算、数据合规)的企业或资深爱好者。

2 选择Linux发行版

  • Ubuntu Server

    • 优点:社区最庞大,文档、教程、解决方案最多,对新手友好,软件包丰富。
    • 缺点:默认安装的软件可能较多。
    • 推荐强烈推荐初学者使用。
  • CentOS / Rocky Linux / AlmaLinux

    • 优点:非常稳定,默认软件少,遵循Red Hat Enterprise Linux (RHEL) 的路径,在企业级环境中应用广泛。
    • 缺点:部分软件版本可能较旧,社区资源相比Ubuntu稍少。
    • 注意:CentOS 8已停止维护,建议直接选择其社区继承者 Rocky LinuxAlmaLinux
    • 推荐:适合追求稳定性和熟悉RHEL生态的用户。
  • Debian

    • 优点:极其稳定,是许多其他发行版(包括Ubuntu)的基础,软件包非常纯净。
    • 缺点:部分软件版本可能非常保守(老旧)。
    • 推荐:适合对系统稳定性有极致要求的用户。

3 购买并创建服务器

以阿里云为例(其他平台类似):

  1. 注册账号并完成实名认证。
  2. 进入“云服务器ECS”产品页面。
  3. 创建实例
    • 计费方式:选择“包年包月”(适合长期稳定使用)或“按量付费”(适合短期测试)。
    • 地域:选择离你用户最近的地域,以降低延迟。
    • 实例规格:根据你的需求选择CPU和内存。对于初学者,1核2GB或2核4GB是很好的起点。
    • 镜像:选择“公共镜像”,然后搜索并选择你想要的发行版,如 Ubuntu 22.04 LTS
    • 系统盘:选择高效云盘SSD云盘,容量建议至少40GB。
    • 网络:选择默认的专有网络和交换机。
    • 安全组:这是服务器的防火墙,创建时,可以先添加一条规则:允许所有IP访问TCP的22端口(这是为了后续SSH连接)。
  4. 确认订单并支付

创建成功后,你将获得服务器的 公网IP地址,这是你连接服务器的钥匙。


第二步:连接你的服务器 (SSH)

你有了服务器的IP地址,需要通过SSH(Secure Shell)协议来远程管理它。

1 在Windows上连接

  • 使用Windows 10/11内置的SSH客户端(推荐)

    1. 打开“PowerShell”或“命令提示符”。
    2. 输入以下命令,将 your_server_ip 替换为你的实际IP地址:
      ssh root@your_server_ip
    3. 首次连接时,系统会提示你确认服务器的指纹,输入 yes
    4. 然后输入你在购买服务器时设置的 root用户密码
  • 使用PuTTY (经典工具)

    1. 下载并安装 PuTTY
    2. 打开PuTTY,在 "Host Name (or IP address)" 框中输入你的服务器IP地址。
    3. 确保端口是 22 (SSH默认端口)。
    4. 点击 "Open",在弹出的黑窗中输入用户名 root 和密码。

2 在macOS或Linux上连接

这些系统通常都内置了SSH客户端。

  1. 打开“终端”(Terminal)。
  2. 输入与Windows方法一相同的命令:
    ssh root@your_server_ip
  3. 输入密码登录。

第三步:初始配置与安全加固 (至关重要)

用root用户直接操作是危险的,现在我们来创建一个普通用户并提升权限。

1 更新系统

确保你的系统软件包是最新的。

  • Ubuntu/Debian:
    apt update && apt upgrade -y
  • CentOS/Rocky/AlmaLinux:
    dnf update -y

2 设置时区

将服务器时区设置为你所在的时区,Asia/Shanghai

timedatectl set-timezone Asia/Shanghai

3 创建新用户并配置sudo权限

  1. 创建一个新用户,这里我们以 deploy 为例:

    adduser deploy

    系统会提示你设置这个新用户的密码,请设置一个强密码。

  2. 将新用户添加到 sudo 组,使其拥有管理员权限:

    • Ubuntu/Debian:
      usermod -aG sudo deploy
    • CentOS/Rocky/AlmaLinux:
      usermod -aG wheel deploy

4 配置SSH密钥登录(更安全)

密码登录容易受到暴力破解攻击,密钥登录是目前最安全的方式。

  1. 在你的本地电脑上生成SSH密钥对(如果还没有的话)。

    • Windows (PowerShell): ssh-keygen -t ed25519
    • macOS/Linux (Terminal): ssh-keygen -t ed25519 一路按回车键即可,默认会在 ~/.ssh/ 目录下生成 id_ed25519 (私钥) 和 id_ed25519.pub (公钥)。
  2. 将公钥复制到服务器上。 使用 ssh-copy-id 命令可以一键完成,它会自动将你的公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。

    ssh-copy-id deploy@your_server_ip

    根据提示输入 deploy 用户的密码。

  3. 测试密钥登录。 退出当前SSH会话 (exit),然后重新用新用户登录:

    ssh deploy@your_server_ip

    这次应该可以直接登录,不再需要输入密码。

5 禁用root用户SSH登录

为了安全,我们禁止直接用root用户通过SSH登录。

  1. 编辑SSH配置文件:
    sudo nano /etc/ssh/sshd_config
  2. 找到下面这一行,并将其修改为 no
    #PermitRootLogin yes

    修改为:

    PermitRootLogin no
  3. 保存并退出文件(在nano中是 Ctrl+XY,然后回车)。
  4. 重启SSH服务使配置生效:
    • Ubuntu/Debian: sudo systemctl restart sshd
    • CentOS/Rocky/AlmaLinux: sudo systemctl restart sshd

你必须使用 deploy 用户登录,这大大提高了服务器的安全性。


第四步:安装常用软件 (LAMP/LNMP栈)

LAMP (Linux, Apache, MySQL, PHP) 或 LNMP (Linux, Nginx, MySQL, PHP) 是最常见的服务器Web应用环境,这里我们以Ubuntu + Nginx + MySQL + PHP (LNMP) 为例。

1 安装Nginx

Nginx是一个高性能的HTTP和反向代理服务器。

sudo apt update
sudo apt install nginx -y

安装后,Nginx会自动启动,你可以通过浏览器访问你的服务器公网IP,如果看到 "Welcome to nginx!" 页面,说明安装成功。

2 安装MySQL

MySQL是流行的关系型数据库。

sudo apt install mysql-server -y

安装完成后,运行安全脚本:

sudo mysql_secure_installation

这个脚本会引导你完成:

  1. 设置root密码(请务必设置一个强密码)。
  2. 移除匿名用户。
  3. 禁止root远程登录。
  4. 移除测试数据库。
  5. 重新加载权限表。 对于每一步,都建议直接按 Y (Yes)。

3 安装PHP及常用扩展

PHP是服务器端脚本语言。

sudo apt install php-fpm php-mysql php-mbstring php-xml php-zip -y

这里我们安装了 php-fpm (PHP FastCGI Process Manager) 和一些与Web开发常用的扩展。

4 配置Nginx与PHP协同工作

  1. 创建一个新的Nginx配置文件来处理PHP请求:

    sudo nano /etc/nginx/sites-available/your_project
  2. 粘贴进去,并修改 server_name 为你的域名(如果有的话,没有可以先用IP):

    server {
        listen 80;
        server_name your_server_ip; # 替换成你的域名或IP
        root /var/www/your_project;
        index index.php index.html index.htm;
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意版本号,可能是 php8.0-fpm.sock
        }
    }
    • root 指定了你的网站根目录,我们稍后创建。
    • fastcgi_pass 指向了PHP-FPM的监听地址,注意根据你的PHP版本修改。
  3. 创建网站根目录并设置权限:

    sudo mkdir -p /var/www/your_project
    sudo chown -R deploy:deploy /var/www/your_project
    sudo chmod -R 755 /var/www/your_project
  4. 启用这个新的网站配置:

    sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
  5. 删除默认配置(可选):

    sudo rm /etc/nginx/sites-enabled/default
  6. 测试Nginx配置并重启:

    sudo nginx -t
    sudo systemctl restart nginx

第五步:部署你的第一个应用

你的LNMP环境已经配置好了,我们部署一个简单的 info.php 文件来测试PHP是否正常工作。

  1. 在网站根目录下创建 info.php 文件:

    nano /var/www/your_project/info.php
  2. <?php
    phpinfo();
    ?>
  3. 保存并退出。

  4. 在浏览器中访问 http://your_server_ip/info.php。 如果看到PHP的详细信息页面,说明PHP-Nginx协同工作正常!

安全提示info.php 会暴露服务器大量敏感信息,测试完成后请立即删除它!

rm /var/www/your_project/info.php

第六步:后续维护与管理

服务器搭建完成只是开始,日常维护同样重要。

1 防火墙

除了在安全组中设置规则,你还可以在服务器内部使用防火墙。

  • Ubuntu/Debian (使用UFW):
    sudo ufw allow OpenSSH # 允许SSH
    sudo ufw allow 'Nginx Full' # 允许HTTP和HTTPS
    sudo ufw enable # 启用防火墙
  • CentOS/Rocky/AlmaLinux (使用firewalld):
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

2 定期更新

保持系统和软件包的更新是安全的关键。

  • Ubuntu/Debian:
    sudo apt update && sudo apt upgrade -y
  • CentOS/Rocky/AlmaLinux:
    sudo dnf update -y

    可以设置为每周自动运行一次。

3 备份

备份!备份!备份! 重要的事情说三遍。 定期备份你的网站文件和数据库,以防数据丢失,可以使用 rsyncscp 或云服务商提供的快照功能。


恭喜你!你已经成功完成了一个Linux服务器的从零搭建,并部署了基础的LNMP环境。

回顾一下我们完成的关键步骤:

  1. 选型购买:选择了云服务器和Ubuntu系统。
  2. SSH连接:使用root用户成功登录。
  3. 安全加固:创建新用户、配置sudo、设置SSH密钥登录、禁用root SSH。
  4. 环境搭建:安装并配置了Nginx、MySQL、PHP。
  5. 应用部署:成功部署并测试了PHP环境。
  6. 维护基础:了解了防火墙、更新和备份的重要性。

你的服务器已经准备好运行你的网站、Web应用或其他服务了!继续探索吧!

分享:
扫描分享到社交APP
上一篇
下一篇