- 选择你的服务器组合:Nginx 还是 Apache?
- 准备工作:在云服务器或本地虚拟机上操作。
- 详细搭建步骤:分别以 Nginx 和 Apache 为核心,搭建一个完整的网站环境。
- 配置与安全加固:让你的服务器更安全、更好用。
- 部署你的第一个网站:一个完整的实战案例。
选择你的服务器组合:Nginx 还是 Apache?
在开始之前,你需要选择一个 Web 服务器软件和一个后端环境。

| 组合 | 名称 | 描述 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|---|
| Nginx + MySQL + PHP | LEMP (Linux, Nginx, MySQL, PHP) | 目前非常流行的高性能组合。 | 高并发性能优异,资源占用低,配置简洁,反向代理功能强大。 | 配置相对复杂,特别是伪静态规则。 | 高流量网站、API 服务、需要处理大量静态资源的网站。 |
| Apache + MySQL + PHP | LAMP (Linux, Apache, MySQL, PHP) | 经典、稳定、用户量最大的组合。 | 配置简单,模块极其丰富(特别是 .htaccess),兼容性好。 |
在高并发场景下性能不如 Nginx,内存占用稍高。 | 个人博客、中小型企业官网、初学者入门。 |
我的建议:
- 如果你是初学者,或者搭建一个个人博客、公司官网,LAMP (Apache) 是最简单、最不容易出错的选择。
- 如果你追求性能、高并发,或者未来有扩展需求,LEMP (Nginx) 是更现代、更强大的选择。
本指南将以 LEMP 为重点进行详细讲解,同时也会提供 LAMP 的关键步骤。
准备工作
你需要一台已经安装好 Linux 系统的机器,推荐使用 Ubuntu 22.04 或 CentOS 8/9,因为它们的软件包管理非常成熟。
- 云服务器:阿里云、腾讯云、华为云等都可以。
- 本地虚拟机:使用 VirtualBox 或 VMware 安装一个 Linux 系统。
- 远程连接:使用
ssh命令连接到你的服务器。ssh username@your_server_ip
第一步:更新系统

在开始安装任何软件之前,最好先更新系统软件包列表和已安装的包。
-
对于 Debian/Ubuntu 系统:
sudo apt update && sudo apt upgrade -y
-
对于 CentOS/RHEL 系统:
sudo dnf update -y # CentOS 8/9 使用 dnf # 或者 sudo yum update -y # CentOS 7 使用 yum
详细搭建步骤 (以 Ubuntu 22.04 + LEMP 为例)
我们将安装 Nginx、MySQL (MariaDB) 和 PHP。

安装 Nginx
Nginx 是一个高性能的 HTTP 和反向代理服务器。
-
安装 Nginx
sudo apt install nginx -y
-
启动 Nginx 并设置为开机自启
sudo systemctl start nginx sudo systemctl enable nginx
-
检查状态
sudo systemctl status nginx
如果看到绿色的
active (running)字样,说明安装成功。 -
测试 在浏览器中输入你的服务器公网 IP 地址,你应该能看到 Nginx 的欢迎页面。
安装 MySQL (MariaDB)
MySQL 是世界上最流行的开源数据库系统,在 Ubuntu 中,我们通常安装它的分支 MariaDB,它是 MySQL 的完全替代品。
-
安装 MariaDB 服务器
sudo apt install mariadb-server mariadb-client -y
-
启动并设置开机自启
sudo systemctl start mariadb sudo systemctl enable mariadb
-
安全配置 (非常重要!) 运行安全脚本,它会帮你设置 root 密码、移除匿名用户、禁止远程 root 登录等。
sudo mysql_secure_installation
按照提示操作:
Enter current password for root (enter for none):直接回车(初始密码为空)。Switch to unix_socket authentication [Y/n]输n。Set root password? [Y/n]输y并设置一个强密码。- 接下来一路输入
Y即可。
安装 PHP
PHP 是一种服务器端脚本语言,用于创建动态网页。
-
安装 PHP 和一些常用扩展
# 安装 PHP 8.1 和一些必要的扩展 sudo apt install php-fpm php-mysql php-mbstring php-xml php-gd php-curl -y
php-fpm(FastCGI Process Manager) 是 Nginx 运行 PHP 所必需的。php-mysql让 PHP 能够连接 MySQL 数据库。- 其他扩展是很多 WordPress 等程序需要的。
-
启动 PHP-FPM 并设置开机自启
sudo systemctl start php8.1-fpm # 版本号可能是 php8.0-fpm 等 sudo systemctl enable php8.1-fpm
配置 Nginx 以支持 PHP
Nginx 和 PHP 都已经安装,但它们还不知道如何协同工作,我们需要修改 Nginx 的配置文件来告诉它,当请求 .php 文件时,应该把请求转发给 PHP-FPM 处理。
-
创建一个新的网站配置文件 我们为你的网站创建一个独立的配置文件,而不是修改默认的。
sudo nano /etc/nginx/sites-available/your_project
粘贴进去,并替换
your_domain.com为你的域名或 IP,/var/www/your_project为你的网站根目录。server { listen 80; server_name your_domain.com www.your_domain.com; root /var/www/your_project; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 确保 PHP 版本号和 socket 路径正确 } location ~ /\.ht { deny all; } } -
创建网站根目录并设置权限
sudo mkdir -p /var/www/your_project sudo chown -R $USER:$USER /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/
-
测试并重载 Nginx
# 测试配置文件语法是否正确 sudo nginx -t # 如果测试通过,重载 Nginx 使配置生效 sudo systemctl reload nginx
配置与安全加固
配置防火墙
为了安全,我们应该只开放必要的端口(如 HTTP 的 80 端口和 HTTPS 的 443 端口)。
-
安装 UFW (Uncomplicated Firewall)
sudo apt install ufw -y
-
设置规则
# 允许 SSH 连接(非常重要,否则可能把自己锁在外面) sudo ufw allow OpenSSH # 允许 HTTP (80) 端口 sudo ufw allow 'Nginx Full' # 启用防火墙 sudo ufw enable
输入
y确认。
部署你的第一个网站
让我们在网站根目录下创建一个 info.php 文件来测试 PHP 是否正常工作。
-
创建测试文件
nano /var/www/your_project/info.php
-
输入 PHP 代码
<?php phpinfo(); ?>
-
保存并退出 (在
nano中是Ctrl+X, 然后按Y, 再按Enter) -
在浏览器中访问 在浏览器中访问
http://your_server_ip/info.php或http://your_domain.com/info.php,你应该能看到一个详细的 PHP 配置信息页面。
安全提醒: 测试成功后,请务必删除 info.php 文件,因为它会暴露服务器的敏感信息!
sudo rm /var/www/your_project/info.php
附:LAMP (Apache) 快速搭建指南
如果你想使用 Apache,步骤非常相似,只需要替换 Nginx 的部分即可。
安装 Apache
sudo apt install apache2 -y sudo systemctl start apache2 sudo systemctl enable apache2
访问你的 IP 地址,你应该能看到 Apache 的默认页面。
安装 MySQL (MariaDB)
与 LEMP 步骤完全相同。
安装 PHP
sudo apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-gd php-curl -y sudo systemctl restart apache2 # 重启 Apache 以加载 PHP 模块
注意:LAMP 中不需要 php-fpm,因为 Apache 内置了处理 PHP 的模块。
配置 Apache
Apache 的配置文件通常在 /etc/apache2/sites-available/000-default.conf,你可以编辑它来设置网站根目录(DocumentRoot)。
测试 PHP
与 LEMP 步骤完全相同,创建 /var/www/html/info.php (Apache 默认根目录) 并访问。
恭喜!你已经成功在 Linux 下搭建了一个功能完备的 Web 服务器。
- 如果你选择了 LEMP,你的服务器现在可以通过 Nginx 提供静态文件,并将动态 PHP 请求交给 PHP-FPM 处理,数据存储在 MySQL 数据库中。
- 如果你选择了 LAMP,你的服务器使用 Apache 来处理所有请求,包括 PHP。
接下来的步骤可以是:
- 安装 WordPress:将 WordPress 文件解压到网站根目录,然后通过浏览器进行安装。
- 配置域名解析:在域名提供商后台将你的域名解析到服务器的 IP 地址。
- 申请 SSL 证书:使用 Let's Encrypt 免费为你的网站启用 HTTPS,这是现代网站的标配,可以使用
Certbot工具一键完成。 - 部署 Node.js/Python/Java 应用:你可以使用 Nginx 的反向代理功能,将请求转发到运行在其他端口(如 3000, 5000, 8080)的后端应用上。
