我们将以最主流的 Linux (Ubuntu) 系统 + Nginx (Web服务器) + MySQL (数据库) + PHP (编程语言) 的组合为例,这是目前性能、稳定性和灵活性都非常高的 LEMP 架构。

(图片来源网络,侵删)
流程概览
整个搭建过程可以分为以下六个主要步骤:
- 准备工作:注册云服务商,购买并连接服务器。
- 初始化服务器:登录服务器,进行基础安全配置。
- 安装 Web 环境:安装 Nginx, MySQL, PHP。
- 部署网站代码:上传你的网站文件到服务器。
- 配置网站:配置 Nginx,让服务器知道如何处理你的网站。
- 上线与维护:解析域名,配置 SSL 证书,并进行日常维护。
第一步:准备工作
在开始之前,你需要准备以下几样东西:
-
一个云服务器:
- 选择云服务商:主流的有阿里云、腾讯云、华为云、AWS、Google Cloud、Vultr、DigitalOcean 等,对于新手,推荐国内阿里云或腾讯云,文档和社区支持比较完善。
- 选择配置:入门级网站,选择 1核CPU / 2GB内存 / 1-2GB系统盘 / 1-5Mbps带宽 的配置通常就足够了,操作系统选择 Ubuntu 22.04 LTS (长期支持版本)。
- 购买并创建:完成购买后,在控制台创建实例(即云服务器)。
-
一个域名:
(图片来源网络,侵删)- 你需要一个域名,
yourdomain.com,你可以在阿里云、腾讯云或 Namecheap 等域名注册商处购买。
- 你需要一个域名,
-
一个 SSH 客户端:
- 用于连接和管理你的云服务器。
- Windows 用户:可以使用 PuTTY 或 Windows 10/11 自带的 PowerShell/命令提示符 (在 Windows 11 中可以直接用
ssh命令)。 - macOS / Linux 用户:系统已自带
ssh命令,直接打开终端即可。
第二步:初始化服务器
-
获取服务器信息:
- 在你的云服务商控制台找到你刚创建的服务器实例,记录下它的 公网 IP 地址。
-
连接服务器:
- 打开你的终端或 PuTTY。
- 输入连接命令,格式为:
ssh root@你的服务器公网IP - 首次连接:系统会提示你确认服务器的指纹(The authenticity of host...),输入
yes并回车。 - 输入密码:输入你在创建服务器时设置的 root 用户密码。注意,输入时屏幕上不会显示任何字符,这是正常的,直接输入完回车即可。
- 成功登录后,你会看到类似
root@your-server-name:~#的提示符。
-
更新系统(非常重要!):
(图片来源网络,侵删)- 为了安全性和稳定性,首先更新服务器的所有软件包。
# 更新软件包列表 apt update # 升级已安装的软件包 apt upgrade -y
- 为了安全性和稳定性,首先更新服务器的所有软件包。
-
创建一个新的非 root 用户(安全最佳实践):
- 直接使用
root用户操作有风险,我们创建一个普通用户来执行日常操作。# 创建一个名为 'webadmin' 的新用户 (你可以换成你喜欢的名字) adduser webadmin # 按提示设置新用户的密码,并填写一些可选信息
- 直接使用
-
为新用户添加
sudo权限:sudo允许普通用户以 root 权限执行命令。# 将新用户添加到 'sudo' 用户组 usermod -aG sudo webadmin
-
切换到新用户:
su - webadmin
现在你应该看到新的提示符,
webadmin@your-server-name:~$。
第三步:安装 Web 环境 (LEMP)
现在我们开始安装网站的三大支柱:Nginx, MySQL, PHP。
-
安装 Nginx (Web 服务器):
- Nginx 负责接收用户的浏览器请求,并返回你的网站文件。
# 安装 Nginx sudo apt install nginx -y
- Nginx 负责接收用户的浏览器请求,并返回你的网站文件。
-
安装 MySQL (数据库):
- MySQL 用于存储网站的数据,比如文章、用户信息等。
# 安装 MySQL 服务器 sudo apt install mysql-server -y
- 运行安全脚本:安装完成后,运行一个安全脚本来设置 root 密码、移除匿名用户等。
sudo mysql_secure_installation
- 按照提示操作:
- 为 root 用户设置一个密码。
- 回答
Y(是) 来移除匿名用户、禁止 root 远程登录、移除测试数据库、重新加载权限表。
- MySQL 用于存储网站的数据,比如文章、用户信息等。
-
安装 PHP (编程语言):
- PHP 负责处理网站的动态逻辑,比如连接数据库、处理表单等。
- 安装 PHP 和一些常用的 PHP 扩展(这些扩展被 WordPress 等主流程序广泛使用)。
sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip -y
- 安装完成后,PHP-FPM (FastCGI Process Manager) 会作为一个服务在后台运行,Nginx 会通过它来执行 PHP 代码。
第四步:部署网站代码
现在你的服务器环境已经准备好了,需要把你的网站文件放上去。
-
上传网站文件:
- 你需要将你本地电脑上的网站代码(HTML, CSS, JavaScript 文件,或者 WordPress 程序)上传到服务器。
- 最常用的工具是
scp(secure copy),打开你本地的终端(不是服务器上的)。 - 命令格式:
scp -r /本地/网站/路径 webadmin@你的服务器IP:/远程/存放路径 - 示例:假设你的网站代码在本地的一个名为
my-website的文件夹里,你想把它放到服务器的/var/www/html/目录下(这是 Nginx 默认的网站根目录)。# scp -r 本地路径 用户名@服务器IP:远程路径 scp -r ~/my-website webadmin@你的服务器IP:/var/www/html/
- 输入密码:这里输入的是你之前创建的
webadmin用户的密码。
-
设置文件权限:
- 上传后,需要确保 Nginx 有权限读取这些文件。
# 切换到网站目录 cd /var/www/html/ # 将网站目录的所有者改为 webadmin 用户 sudo chown -R webadmin:webadmin my-website # 给予所有者读写执行权限,给组和其他用户读和执行权限 sudo chmod -R 755 my-website
- 上传后,需要确保 Nginx 有权限读取这些文件。
第五步:配置网站
现在需要告诉 Nginx 如何为你的网站提供服务。
-
创建 Nginx 配置文件:
- Nginx 的网站配置文件存放在
/etc/nginx/sites-available/目录下,我们为你的网站创建一个新文件。sudo nano /etc/nginx/sites-available/yourdomain.com
- 用
nano编辑器打开一个新文件,将以下内容复制进去,并务必修改server_name和root路径。
server { listen 80; server_name yourdomain.com www.yourdomain.com; # 替换成你的域名 root /var/www/html/my-website; # 替换成你存放网站文件的路径 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:/var/run/php/php8.2-fpm.sock; # 注意:PHP版本号可能不同,php8.1-fpm.sock } location ~ /\.ht { deny all; } }- 注意:
fastcgi_pass里的php8.2-fpm.sock可能需要根据你安装的 PHP 版本进行修改,你可以用ls /var/run/php/命令来查看实际存在的文件。
- Nginx 的网站配置文件存放在
-
启用配置文件:
sites-available目录只是存放配置,我们需要创建一个符号链接到sites-enabled目录来启用它。# 创建符号链接 sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
-
测试并重启 Nginx:
- 在重启服务前,先测试配置文件是否有语法错误。
sudo nginx -t
- 如果显示
syntax is ok和test is successful,说明配置正确,然后重启 Nginx 使新配置生效。sudo systemctl restart nginx
- 在重启服务前,先测试配置文件是否有语法错误。
第六步:上线与维护
你的网站现在已经在服务器上运行了,但还需要最后一步才能通过公网访问。
-
解析域名:
- 登录你的域名注册商的控制台(比如阿里云、腾讯云)。
- 找到 DNS 解析 或 域名解析 的管理页面。
- 添加两条 A 记录:
- 记录类型:
A - 主机记录: (代表根域名,如
yourdomain.com) - 记录值:填入你的 云服务器的公网 IP 地址
- 记录类型:
A - 主机记录:
www(代表www.yourdomain.com) - 记录值:同样填入你的 云服务器的公网 IP 地址
- 记录类型:
- 保存并等待 DNS 生效(通常需要几分钟到几小时)。
-
配置 SSL 证书 (HTTPS):
- 为了安全,强烈建议为你的网站安装 SSL 证书,启用 HTTPS,推荐使用 Let's Encrypt,它是免费的。
- 安装 Certbot 工具:
sudo apt install certbot python3-certbot-nginx -y
- 自动获取并安装证书:
# -d 指定你的域名,--nginx 表示使用 Nginx 插件自动配置 sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
- 按照提示操作,它会自动修改你的 Nginx 配置,添加 HTTPS 设置,并设置自动续期。
-
访问你的网站!
- 等待 DNS 生效后,在浏览器中输入你的域名
http://yourdomain.com,你应该就能看到你的网站了,如果配置了 SSL,访问https://yourdomain.com会看到一把小锁标志。
- 等待 DNS 生效后,在浏览器中输入你的域名
总结与后续
恭喜!你已经成功在云服务器上搭建并部署了一个网站。
后续你可能需要做的事情:
- 备份:定期备份你的网站文件和数据库,防止数据丢失。
- 监控:使用云服务商提供的监控工具或第三方工具(如 Prometheus + Grafana)监控服务器的 CPU、内存、磁盘使用情况。
- 防火墙:配置云服务器自带的安全组(Security Group),只开放必要的端口(如 80, 443, 22),提高安全性。
- 性能优化:根据网站访问量,可以考虑使用缓存(如 Redis)、CDN 等技术来提升网站速度。
这个过程虽然步骤较多,但每一步都很清晰,多操作几次,你就会变得非常熟练,如果在某个步骤遇到问题,可以随时搜索具体错误信息,或者查看你所使用的云服务商和软件的官方文档。
