/ 服务器 / 0浏览

Ubuntu Web服务器搭建手册

一、手册概述

本手册支持 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服务场景。

Peregrine
Ubuntu 系统 Apache+PHP 安装配置手册
基于 Ubuntu 系统的 OSSEC 服务端安装配置与功能详解
Ubuntu DHCP服务器搭建手册