Linux服务器全流程搭建指南
本教程将分为以下几个核心部分:
- 第一步:准备工作 (选型与购买)
- 第二步:连接你的服务器 (SSH)
- 第三步:初始配置与安全加固 (至关重要)
- 第四步:安装常用软件 (LAMP/LNMP栈)
- 第五步:部署你的第一个应用
- 第六步:后续维护与管理
第一步:准备工作 (选型与购买)
在开始之前,你需要明确你的需求,并选择合适的服务器。
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 Linux 或 AlmaLinux。
- 推荐:适合追求稳定性和熟悉RHEL生态的用户。
-
Debian
- 优点:极其稳定,是许多其他发行版(包括Ubuntu)的基础,软件包非常纯净。
- 缺点:部分软件版本可能非常保守(老旧)。
- 推荐:适合对系统稳定性有极致要求的用户。
3 购买并创建服务器
以阿里云为例(其他平台类似):
- 注册账号并完成实名认证。
- 进入“云服务器ECS”产品页面。
- 创建实例:
- 计费方式:选择“包年包月”(适合长期稳定使用)或“按量付费”(适合短期测试)。
- 地域:选择离你用户最近的地域,以降低延迟。
- 实例规格:根据你的需求选择CPU和内存。对于初学者,1核2GB或2核4GB是很好的起点。
- 镜像:选择“公共镜像”,然后搜索并选择你想要的发行版,如
Ubuntu 22.04 LTS。 - 系统盘:选择
高效云盘或SSD云盘,容量建议至少40GB。 - 网络:选择默认的专有网络和交换机。
- 安全组:这是服务器的防火墙,创建时,可以先添加一条规则:允许所有IP访问TCP的22端口(这是为了后续SSH连接)。
- 确认订单并支付。
创建成功后,你将获得服务器的 公网IP地址,这是你连接服务器的钥匙。
第二步:连接你的服务器 (SSH)
你有了服务器的IP地址,需要通过SSH(Secure Shell)协议来远程管理它。
1 在Windows上连接
-
使用Windows 10/11内置的SSH客户端(推荐)
- 打开“PowerShell”或“命令提示符”。
- 输入以下命令,将
your_server_ip替换为你的实际IP地址:ssh root@your_server_ip
- 首次连接时,系统会提示你确认服务器的指纹,输入
yes。 - 然后输入你在购买服务器时设置的 root用户密码。
-
使用PuTTY (经典工具)
- 下载并安装 PuTTY。
- 打开PuTTY,在 "Host Name (or IP address)" 框中输入你的服务器IP地址。
- 确保端口是
22(SSH默认端口)。 - 点击 "Open",在弹出的黑窗中输入用户名
root和密码。
2 在macOS或Linux上连接
这些系统通常都内置了SSH客户端。
- 打开“终端”(Terminal)。
- 输入与Windows方法一相同的命令:
ssh root@your_server_ip
- 输入密码登录。
第三步:初始配置与安全加固 (至关重要)
用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权限
-
创建一个新用户,这里我们以
deploy为例:adduser deploy
系统会提示你设置这个新用户的密码,请设置一个强密码。
-
将新用户添加到
sudo组,使其拥有管理员权限:- Ubuntu/Debian:
usermod -aG sudo deploy
- CentOS/Rocky/AlmaLinux:
usermod -aG wheel deploy
- Ubuntu/Debian:
4 配置SSH密钥登录(更安全)
密码登录容易受到暴力破解攻击,密钥登录是目前最安全的方式。
-
在你的本地电脑上生成SSH密钥对(如果还没有的话)。
- Windows (PowerShell):
ssh-keygen -t ed25519 - macOS/Linux (Terminal):
ssh-keygen -t ed25519一路按回车键即可,默认会在~/.ssh/目录下生成id_ed25519(私钥) 和id_ed25519.pub(公钥)。
- Windows (PowerShell):
-
将公钥复制到服务器上。 使用
ssh-copy-id命令可以一键完成,它会自动将你的公钥添加到服务器的~/.ssh/authorized_keys文件中。ssh-copy-id deploy@your_server_ip
根据提示输入
deploy用户的密码。 -
测试密钥登录。 退出当前SSH会话 (
exit),然后重新用新用户登录:ssh deploy@your_server_ip
这次应该可以直接登录,不再需要输入密码。
5 禁用root用户SSH登录
为了安全,我们禁止直接用root用户通过SSH登录。
- 编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config
- 找到下面这一行,并将其修改为
no:#PermitRootLogin yes修改为:
PermitRootLogin no - 保存并退出文件(在nano中是
Ctrl+X,Y,然后回车)。 - 重启SSH服务使配置生效:
- Ubuntu/Debian:
sudo systemctl restart sshd - CentOS/Rocky/AlmaLinux:
sudo systemctl restart sshd
- Ubuntu/Debian:
你必须使用 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
这个脚本会引导你完成:
- 设置root密码(请务必设置一个强密码)。
- 移除匿名用户。
- 禁止root远程登录。
- 移除测试数据库。
- 重新加载权限表。
对于每一步,都建议直接按
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协同工作
-
创建一个新的Nginx配置文件来处理PHP请求:
sudo nano /etc/nginx/sites-available/your_project
-
粘贴进去,并修改
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版本修改。
-
创建网站根目录并设置权限:
sudo mkdir -p /var/www/your_project sudo chown -R deploy:deploy /var/www/your_project sudo chmod -R 755 /var/www/your_project
-
启用这个新的网站配置:
sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
-
删除默认配置(可选):
sudo rm /etc/nginx/sites-enabled/default
-
测试Nginx配置并重启:
sudo nginx -t sudo systemctl restart nginx
第五步:部署你的第一个应用
你的LNMP环境已经配置好了,我们部署一个简单的 info.php 文件来测试PHP是否正常工作。
-
在网站根目录下创建
info.php文件:nano /var/www/your_project/info.php
-
<?php phpinfo(); ?>
-
保存并退出。
-
在浏览器中访问
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 备份
备份!备份!备份! 重要的事情说三遍。
定期备份你的网站文件和数据库,以防数据丢失,可以使用 rsync、scp 或云服务商提供的快照功能。
恭喜你!你已经成功完成了一个Linux服务器的从零搭建,并部署了基础的LNMP环境。
回顾一下我们完成的关键步骤:
- 选型购买:选择了云服务器和Ubuntu系统。
- SSH连接:使用root用户成功登录。
- 安全加固:创建新用户、配置sudo、设置SSH密钥登录、禁用root SSH。
- 环境搭建:安装并配置了Nginx、MySQL、PHP。
- 应用部署:成功部署并测试了PHP环境。
- 维护基础:了解了防火墙、更新和备份的重要性。
你的服务器已经准备好运行你的网站、Web应用或其他服务了!继续探索吧!
