一、手册概述
本手册支持 Ubuntu 20.04/22.04 LTS,纯命令行搭建 Nginx Web 服务器,支持静态网页、PHP 动态站点,包含防火墙、开机自启、安全配置与故障排查教程,适配个人建站、小型官网、测试环境。
使用前提:纯净 Ubuntu 系统、服务器可联网、账号拥有 sudo/root 权限。
二、前期环境准备
2.1 系统更新
首先更新系统软件源及已安装依赖,避免版本兼容问题,执行以下命令:
bash sudo apt update # 更新软件源索引  sudo apt upgrade -y
# 升级所有可更新软件包 |
2.2 关闭/配置防火墙
Ubuntu默认自带ufw防火墙,需放行Web服务必备的80(HTTP)、443(HTTPS)端口,避免访问被拦截:
Bash sudo ufw enable #防火墙开启 sudo ufw allow 80/tcp # 放行HTTP端口  sudo ufw allow 443/tcp # 放行HTTPS端口
 sudo ufw reload # 重载防火墙规则
 sudo ufw status # 查看防火墙放行状态
 |
执行后显示80、443端口已放行即为配置成功。
三、核心服务安装(Nginx)
Nginx是轻量、高性能的Web服务器,具备并发高、占用资源少、稳定性强的特点,作为本次搭建核心服务。
3.1 安装Nginx
bash sudo apt install nginx -y  |
3.2 验证安装与服务状态
安装完成后,Nginx会默认开机自启,可通过以下命令核查运行状态:
bash sudo systemctl status nginx  |
若显示 active (running) 代表服务正常运行。
3.3 Nginx基础启停命令
Bash sudo systemctl start nginx # 启动服务 sudo systemctl stop nginx # 停止服务 sudo systemctl restart nginx # 重启服务(修改配置后必执行) sudo systemctl enable nginx # 设置开机自启(默认已开启) sudo systemctl disable nginx # 关闭开机自启
 |
3.4 访问默认测试页面
浏览器输入服务器公网IP/内网IP,若看到Nginx默认欢迎页面,说明Web服务器基础环境搭建成功。
Nginx默认核心目录说明:
• 主配置文件:/etc/nginx/nginx.conf
• 站点配置目录:/etc/nginx/sites-available/(可用站点)、/etc/nginx/sites-enabled/(已启用站点)
• 默认网页根目录:/var/www/html/
• 日志目录:/var/log/nginx/
四、自定义静态网站部署
适用于HTML、CSS、JS、图片等静态资源站点,无需额外依赖。
4.1 创建网站根目录
为站点单独创建目录,避免与默认页面冲突,以站点域名test.com为例:
bash sudo mkdir -p /var/www/test.com  |
4.2 创建测试网页
新建index.html首页文件,写入自定义内容:
bash sudo vim /var/www/test.com/index.html  |
粘贴以下测试代码:
html <!DOCTYPE html> <html> <head> <title>Ubuntu Web服务器搭建成功</title> </head> <body> <h1>服务器搭建完成!站点正常运行</h1> <p>基于Ubuntu+Nginx搭建的Web站点</p> </body> </html>  |
保存退出::wq
4.3 配置站点权限
设置目录归属为www-data(Nginx运行用户),避免权限不足无法访问:
bash sudo chown -R www-data:www-data /var/www/test.com sudo chmod -R 755 /var/www/test.com  |
4.4 新建站点配置文件
在站点可用目录下创建配置文件:
bash sudo vim /etc/nginx/sites-available/test.com  |
写入以下基础配置(适配静态站点):
nginx server { listen 80; server_name test.com www.test.com; # 绑定域名,无域名可填服务器IP root /var/www/test.com; # 网站根目录 index index.html; # 默认首页文件
# 日志配置 access_log /var/log/nginx/test.com.access.log; error_log /var/log/nginx/test.com.error.log;
# 基础规则 location / { try_files $uri $uri/ =404; } }  |
4.5 启用站点配置
通过软链接将站点配置启用,关联到生效目录:
bash sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/  |
4.6 校验配置并重启服务
修改配置后必须校验语法,避免配置错误导致服务启动失败:
bash sudo nginx -t # 校验配置语法 sudo systemctl restart nginx # 重启Nginx生效  |
显示 nginx: configuration file /etc/nginx/nginx.conf test is successful 即为配置无误。
4.7 访问站点
浏览器输入服务器IP或已解析的域名,即可看到自定义的测试网页,静态站点部署完成。
五、动态PHP站点扩展部署(可选)
若需运行PHP动态网站(如博客、后台系统),需安装PHP解析依赖,由于ubuntu版本是20.04的老版本,接下来以PHP7.4为例:
(若使用 Ubuntu22.04以后的版本,默认推荐 PHP8.1/8.2,7.4 官方已停止维护,存在安全漏洞。)
5.1 安装PHP及核心扩展
bash sudo apt install php7.4-fpm php7.4-cli php7.4-mysql php7.4-curl php7.4-gd -y  |
php8.1-fpm:PHP进程管理服务,用于Nginx解析PHP文件
5.2 启动PHP服务
bash sudo systemctl start php7.4-fpm sudo systemctl enable php7.4-fpm sudo systemctl status php7.4-fpm  |
显示active (running)即为正常运行。
5.3 修改Nginx站点配置
编辑之前的站点配置文件,新增PHP解析规则:
bash sudo vim /etc/nginx/sites-available/test.com |
修改完整配置如下:
nginx server { listen 80; server_name test.com www.test.com; root /var/www/test.com; index index.html index.php; # 新增PHP默认首页
access_log /var/log/nginx/test.com.access.log; error_log /var/log/nginx/test.com.error.log;
# PHP解析规则 location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; }
location / { try_files $uri $uri/ =404; } }  |
5.4 测试PHP环境
新建PHP测试文件:
bash sudo vim /var/www/test.com/info.php  |
写入代码:
php <?php phpinfo(); ?>  |
校验配置并重启服务:
bash sudo nginx -t sudo systemctl restart nginx  |
浏览器访问 IP/info.php,显示PHP版本信息页面即为动态环境搭建成功。
六、基础安全优化配置
6.1 隐藏Nginx版本号
隐藏服务版本,避免针对性漏洞攻击:
bash sudo vim /etc/nginx/nginx.conf  |
在http区块添加:server_tokens off;,保存后重启Nginx。
6.2 禁止目录遍历
防止用户通过浏览器查看网站目录文件,在站点server区块添加:
nginx autoindex off;  |
6.3 HTTPS配置(可选)
可通过Let’s Encrypt免费申请SSL证书,实现HTTPS加密访问,需提前解析域名,安装证书工具:
bash sudo apt install certbot python3-certbot-nginx -y  sudo certbot --nginx -d test.com -d www.test.com
 |
执行后自动配置HTTPS,实现80端口强制跳转443。
七、常见故障排查
7.1 Nginx启动失败
执行 sudo nginx -t 查看具体报错,多为配置文件语法错误、端口被占用:
• 端口占用:执行 sudo lsof -i :80 查看占用进程,结束进程后重启服务
• 语法错误:根据报错行数修正配置文件

7.2 浏览器无法访问站点
• 检查服务器防火墙80/443端口是否放行

• 检查Nginx服务是否正常运行

• 检查站点目录权限是否为www-data

7.3 PHP页面无法访问/空白
• 检查php-fpm服务是否启动

• 核对Nginx配置中php-fpm.sock路径与实际版本一致

• 查看Nginx错误日志:cat /var/log/nginx/test.com.error.log

八、日常运维命令
bash # 查看Nginx运行日志 tail -f /var/log/nginx/access.log tail -f /var/log/nginx/error.log
# 卸载Nginx(彻底清理) sudo apt purge nginx -y sudo rm -rf /etc/nginx /var/www/html
# 查看端口监听状态 sudo netstat -tulpn | grep nginx |
九、搭建总结
本手册完成了Ubuntu系统下Nginx Web服务器的完整搭建,包含静态站点、PHP动态站点部署,同时覆盖权限配置、安全优化、故障排查等核心内容。搭建完成后,可直接上传网站源码至站点根目录,实现正式建站运行,适配绝大多数中小型Web服务场景。