我们将以目前最主流的 Linux (Ubuntu) 操作系统和 Nginx (Web服务器) + MySQL (数据库) + PHP (编程语言) 的组合为例,这是目前最稳定、高效的网站环境之一。

(图片来源网络,侵删)
核心概念:你需要了解的几个角色
在开始之前,先简单理解一下搭建网站需要哪些“角色”:
- 云服务器:你的“虚拟电脑”,网站的所有程序、文件、数据库都运行在上面,我们把它当作你的网站的家。
- Web服务器 (Nginx/Apache):网站的“前台接待员”,它负责接收用户(通过浏览器)的请求,找到对应的网页文件,再把这些文件发送给用户。
- 数据库:网站的“仓库和档案室”,它用来存储网站的所有动态数据,比如用户信息、文章内容、商品信息等。
- 编程语言 (PHP/Python/Node.js):网站的“厨师和工程师”,它负责处理业务逻辑,比如用户登录验证、从数据库读取数据并生成最终的网页。
- 域名:你网站的“门牌号”,
google.com,用户通过域名访问你的服务器。 - SSL证书:网站的“身份证”,用于加密数据传输,让浏览器显示
https://,保证用户信息安全。
搭建网站完整步骤指南
第一步:购买和准备云服务器
-
选择云服务商:
- 国际:Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure, DigitalOcean, Vultr。
- 国内:阿里云, 腾讯云, 华为云。
-
选择服务器配置:
- 操作系统:选择 Ubuntu 22.04 LTS (长期支持版本),社区庞大,资料多,非常稳定。
- CPU/内存:对于个人博客或小型网站,1核2G或2核4G的配置通常足够。
- 存储:选择 SSD云硬盘,读写速度更快,对网站性能影响大。
- 网络:选择按量计费或固定带宽,确保有足够的流量。
-
连接服务器:
(图片来源网络,侵删)- 购买成功后,云服务商会提供一个 公网IP地址。
- 使用终端工具(如 macOS/Linux 的
Terminal,Windows 的PuTTY或Windows Terminal)通过 SSH (Secure Shell) 连接到你的服务器。 - 命令格式:
ssh root@你的公网IP地址 - 首次登录需要输入密码(云服务商通常会发送到你的邮箱),强烈建议登录后立即修改密码。
-
更新服务器:
- 这是良好的运维习惯,确保所有软件都是最新版本。
# 更新软件包列表 sudo apt update # 升级已安装的软件包 sudo apt upgrade -y
- 这是良好的运维习惯,确保所有软件都是最新版本。
第二步:安装 LEMP 环境 (Nginx + MySQL + PHP)
这是搭建网站的核心环境。
-
安装 Nginx Web 服务器
sudo apt install nginx -y
- 安装完成后,Nginx 会自动启动。
- 你可以在浏览器中输入你的 公网IP地址,如果看到 "Welcome to nginx!" 页面,说明安装成功。
-
安装 MySQL 数据库
sudo apt install mysql-server -y
- 安装完成后,运行安全脚本进行安全配置:
sudo mysql_secure_installation
- 这个脚本会引导你设置
root密码、移除匿名用户、禁止root远程登录等,一路按Y(Yes) 并设置一个强密码即可。
- 安装完成后,运行安全脚本进行安全配置:
-
安装 PHP 及相关扩展
# 安装PHP和Nginx所需的PHP扩展 sudo apt install php-fpm php-mysql php-mbstring php-xml php-gd php-curl -y
php-fpm(FastCGI Process Manager) 是 PHP 和 Nginx 之间的桥梁,让 Nginx 能够处理 PHP 请求。
第三步:配置 Nginx
现在需要告诉 Nginx,当有用户访问时,去哪里找我们的网站文件。
-
创建网站目录
- 我们把网站文件放在
/var/www/目录下,并创建一个项目文件夹,my-website。sudo mkdir -p /var/www/my-website
- 我们把网站文件放在
-
设置目录权限
- 为了安全,将网站目录的所有者设置为当前用户(
$USER是一个环境变量,代表当前登录用户)。sudo chown -R $USER:$USER /var/www/my-website
- 为了安全,将网站目录的所有者设置为当前用户(
-
创建 Nginx 配置文件
-
Nginx 的站点配置文件在
/etc/nginx/sites-available/目录下,我们创建一个新文件my-website。sudo nano /etc/nginx/sites-available/my-website
-
粘贴进去,并根据你的实际情况修改(特别是
root路径和server_name)。server { listen 80; root /var/www/my-website; index index.php index.html index.htm; server_name 你的公网IP; # 或者你的域名,如果已经解析了的话 location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 注意版本号,可能是 php8.0-fpm.sock } location ~ /\.ht { deny all; } } -
按
Ctrl + X,然后按Y,再按Enter保存并退出。
-
-
启用站点
- 创建的文件在
sites-available目录下,需要创建一个符号链接到sites-enabled目录才能被 Nginx 加载。sudo ln -s /etc/nginx/sites-available/my-website /etc/nginx/sites-enabled/
- 测试 Nginx 配置是否正确,然后重新加载 Nginx:
sudo nginx -t sudo systemctl reload nginx
- 创建的文件在
第四步:创建一个测试 PHP 页面
为了验证 Nginx 和 PHP 是否能正常协同工作。
- 在网站目录下创建
info.php文件nano /var/www/my-website/info.php
- 输入以下内容并保存
<?php phpinfo(); ?>
- 在浏览器中访问
- 打开浏览器,访问
http://你的公网IP/info.php。 - 如果看到一个显示 PHP 详细信息的页面,恭喜你!你的 LEMP 环境已经完全配置成功!出于安全考虑,测试完成后请务必删除这个文件!
rm /var/www/my-website/info.php
- 打开浏览器,访问
第五步:部署你的网站
你可以把你的网站文件上传到服务器了。
-
使用 FTP/SFTP 客户端:
- 安装 FileZilla 等软件,使用服务器的公网IP、用户名和密码连接。
- 将你的网站文件(HTML, CSS, JS, PHP 文件等)上传到
/var/www/my-website/目录下。
-
使用 Git:
- 如果你的代码托管在 GitHub/GitLab,可以在服务器上克隆代码。
cd /var/www/my-website git clone 你的代码仓库地址 .
- 如果你的代码托管在 GitHub/GitLab,可以在服务器上克隆代码。
-
配置数据库:
- 登录 MySQL:
sudo mysql -u root -p - 创建数据库和用户:
CREATE DATABASE my_wp_db; -- 替换成你的数据库名 CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_strong_password'; -- 替换成你的用户名和密码 GRANT ALL PRIVILEGES ON my_wp_db.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
- 在你的网站安装程序(如 WordPress)填写这些数据库信息即可。
- 登录 MySQL:
第六步:绑定域名和配置 HTTPS
-
解析域名:
- 登录你的域名注册商的控制台(如阿里云、GoDaddy)。
- 找到 DNS 解析管理,添加一条 A 记录:
- 类型:A
- 主机记录:
www(或者 代表主域名) - 记录值:你的云服务器的 公网IP地址
- 等待几分钟到几小时,DNS 生效。
-
配置 Nginx 使用域名:
- 修改之前创建的 Nginx 配置文件
/etc/nginx/sites-available/my-website,将server_name改为你的域名。server_name yourdomain.com www.yourdomain.com;
- 修改之前创建的 Nginx 配置文件
-
安装 Let's Encrypt 免费 SSL 证书:
- 使用 Certbot 工具可以轻松获取和配置 SSL 证书。
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
- Certbot 会自动检测你的 Nginx 配置,并修改它,启用 HTTPS,它会询问你是否将 HTTP 流量重定向到 HTTPS,选择
2(Redirect) 是个不错的选择。 - 完成后,你的网站就可以通过
https://yourdomain.com安全访问了!
- 使用 Certbot 工具可以轻松获取和配置 SSL 证书。
总结与后续
恭喜!你已经成功在云服务器上搭建并部署了一个完整的网站。
后续你可能需要学习的:
- 网站管理:学习使用
systemctl命令管理 Nginx (nginx start/stop/restart) 和 MySQL (mysql start/stop/restart) 服务。 - 安全加固:配置防火墙 (
ufw),只开放 80 (HTTP), 443 (HTTPS) 和 22 (SSH) 端口。 - 备份:定期备份你的网站文件和数据库,防止数据丢失。
- 性能优化:配置缓存 (如 Redis)、使用 CDN 等。
这个过程看起来步骤很多,但每一步都有其明确的目的,跟着指南一步步操作,你一定能成功!祝你搭建顺利!
