- LAMP: 使用 Apache 作为 Web 服务器,稳定、配置简单,非常适合初学者。
- LEMP: 使用 Nginx (Engine-X) 作为 Web 服务器,性能更高,资源占用更少,处理高并发能力更强,是目前更现代的选择。
您可以根据自己的需求选择其中一种进行安装。

第零步:准备工作
在开始之前,请确保您已经:
- 拥有一台 Ubuntu 服务器:版本可以是 20.04 LTS 或 22.04 LTS,这些都是长期支持版,非常稳定。
- 拥有一个具有
sudo权限的非 root 用户:出于安全考虑,不建议直接使用 root 用户进行操作。 - 服务器已连接到互联网。
打开您的终端,首先更新一下软件包列表和已安装的包:
sudo apt update sudo apt upgrade -y
搭建 LAMP 服务器 (Apache + MySQL + PHP)
LAMP 是最经典、最易于理解的 Web 服务器环境。
安装 Apache Web 服务器
Apache 是目前最流行的 Web 服务器之一。

sudo apt install apache2 -y
安装完成后,Apache 服务通常会自动启动,您可以检查其状态:
sudo systemctl status apache2
测试 Apache 在浏览器中访问服务器的公网 IP 地址,您可以通过以下命令获取:
curl -4 icanhazip.com
在浏览器中输入 http://<您的服务器公网IP>,如果看到 "Apache2 Ubuntu Default Page" 字样,说明 Apache 已经成功运行。
安装 MySQL 数据库服务器
MySQL 用于存储网站的数据,如用户信息、文章内容等。

sudo apt install mysql-server -y
安全配置 MySQL 安装完成后,运行安全脚本,它会引导您设置 root 密码、移除匿名用户、禁止远程 root 登录等,这些都是非常重要的安全步骤。
sudo mysql_secure_installation
在过程中,您会看到一系列提示,建议如下:
- Set root password? (设置 root 密码):
Y,然后设置一个强密码。 - Remove anonymous users? (移除匿名用户):
Y - Disallow root login remotely? (禁止远程 root 登录):
Y - Remove test database and access to it? (移除测试数据库):
Y - Reload privilege tables now? (现在重新加载权限表):
Y
安装 PHP
PHP 是一种服务器端脚本语言,用于创建动态网页。
sudo apt install php libapache2-mod-php php-mysql -y
php: 核心包。libapache2-mod-php: 使 Apache 能够解析和执行 PHP 文件。php-mysql: PHP 与 MySQL 数据库交互所需的模块。
测试 PHP 创建一个简单的 PHP 信息文件来测试 PHP 是否正常工作。
# 创建一个名为 info.php 的文件 sudo nano /var/www/html/info.php
在文件中输入以下内容,然后保存并退出 (在 nano 中按 Ctrl+X,然后按 Y,最后按 Enter)。
<?php phpinfo(); ?>
在浏览器中访问 http://<您的服务器公网IP>/info.php,如果看到一个包含 PHP 详细信息的页面,说明 PHP 和 Apache 的集成已经成功。
重要安全步骤:测试完成后,请务必删除这个信息文件,因为它会暴露服务器的敏感信息!
sudo rm /var/www/html/info.php
恭喜! 您的 LAMP 服务器已经搭建完成,您的网站文件应该存放在 /var/www/html/ 目录下。
搭建 LEMP 服务器 (Nginx + MySQL + PHP)
LEMP 组合在性能上通常优于 LAMP,尤其适合处理大量并发请求。
安装 Nginx Web 服务器
Nginx 是一个高性能的 HTTP 和反向代理服务器。
sudo apt install nginx -y
安装完成后,Nginx 通常会自动启动,检查其状态:
sudo systemctl status nginx
测试 Nginx 在浏览器中访问服务器的公网 IP 地址,如果看到 "Welcome to nginx!" 字样,说明 Nginx 已经成功运行。
安装 MySQL 数据库服务器
这一步与 LAMP 完全相同。
sudo apt install mysql-server -y
安全配置 MySQL
sudo mysql_secure_installation
按照与 LAMP 方案中相同的建议进行配置。
安装 PHP 及 FPM
与 LAMP 不同,Nginx 使用 PHP-FPM (FastCGI Process Manager) 来处理 PHP 请求,这种方式性能更好。
sudo apt install php-fpm php-mysql -y
php-fpm: PHP 的 FastCGI 进程管理器。php-mysql: PHP 与 MySQL 交互的模块。
配置 Nginx 以使用 PHP-FPM
我们需要修改 Nginx 的默认配置文件,让它知道如何将 .php 请求转发给 PHP-FPM 处理。
# 打开 Nginx 的默认站点配置文件 sudo nano /etc/nginx/sites-available/default
找到类似下面的 location 块,并取消注释(删除 )和修改它,确保 fastcgi_pass 这一行指向正确的 Unix 套接字。
# 在 server 块内找到类似下面的配置
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意这里的版本号,可能和你的不一样
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
注意:fastcgi_pass 中的套接字文件名(如 php8.1-fpm.sock)取决于您安装的 PHP 版本,您可以通过 ls /run/php/ 命令来查看实际的文件名。
测试 PHP 同样,我们创建一个 PHP 信息文件。
# Nginx 的默认网站根目录是 /var/www/html/ sudo nano /var/www/html/info.php
并保存:
<?php phpinfo(); ?>
在浏览器中访问 http://<您的服务器公网IP>/info.php,如果看到 PHP 信息页面,说明 Nginx 和 PHP-FPM 已经成功集成。
重要安全步骤:
sudo rm /var/www/html/info.php
重启 Nginx 以使配置生效:
sudo systemctl restart nginx
恭喜! 您的 LEMP 服务器也已经搭建完成。
后续管理
防火墙配置
如果您在服务器上启用了 ufw (Uncomplicated Firewall),您需要允许 HTTP 和 HTTPS 流量通过。
# 允许 Apache 的流量 sudo ufw allow 'Apache Full' # 或者,如果您使用的是 Nginx sudo ufw allow 'Nginx Full'
上传您的网站文件
您可以将您的网站文件上传到服务器的网站根目录:
- Apache:
/var/www/html/ - Nginx:
/var/www/html/
您可以使用 git clone、rsync、scp 或者 FTP/SFTP 工具(如 FileZilla)来上传文件。
设置域名 (可选)
如果您拥有一个域名,可以将其指向您的服务器公网 IP,您可以在 /etc/apache2/sites-available/ (Apache) 或 /etc/nginx/sites-available/ (Nginx) 目录下创建一个新的配置文件来配置虚拟主机,将域名绑定到您的网站。
| 特性 | LAMP (Apache) | LEMP (Nginx) |
|---|---|---|
| Web 服务器 | Apache | Nginx |
| PHP 处理方式 | 作为 Apache 模块 (mod_php) |
通过 PHP-FPM (FastCGI) |
| 性能 | 稳定,但资源占用较高 | 高性能,低资源占用,高并发能力强 |
| 配置 | 相对简单,模块化 | 灵活,但配置稍复杂 |
| 适用场景 | 初学者、传统网站、需要大量 .htaccess 规则的网站 |
高流量网站、API 服务、现代 Web 应用 |
希望这份详细的指南能帮助您成功在 Ubuntu 上搭建 Web 服务器!
