选择你的 Web 服务器软件
在开始之前,你需要选择一个 Web 服务器,目前最流行的是 Nginx 和 Apache。

-
Nginx (Engine X):
- 优点: 性能极高,尤其是处理高并发静态文件请求时,占用内存少,配置相对简洁,是现代 Web 应用的首选。
- 特点: 采用事件驱动的异步模型,而不是像 Apache 那样的进程/线程模型。
-
Apache HTTP Server:
- 优点: 历史悠久,稳定可靠,功能极其丰富,模块化程度高,兼容性非常好,几乎支持所有操作系统。
- 特点: 采用“一个连接一个进程/线程”的模型,配置非常灵活,但可能在高并发下消耗更多资源。
推荐: 对于新手和绝大多数现代应用,推荐使用 Nginx,本指南将以 Nginx 为核心进行讲解,并在最后提供 Apache 的安装方法。
第二步:准备工作
- 拥有一台 Linux 服务器: 可以是云服务器(如阿里云、腾讯云、AWS)或你自己的虚拟机/VPS,本教程以 Ubuntu 22.04 为例,其他发行版(如 CentOS)的命令和配置文件路径可能略有不同。
- 系统更新: 无论使用哪个系统,第一步都建议更新软件包列表和已安装的软件。
sudo apt update sudo apt upgrade -y
- 获取
sudo权限: 你需要一个拥有管理员权限的用户来安装软件和修改配置文件。
第三步:安装 Nginx
安装过程非常简单,使用系统的包管理器即可。

# 更新包列表 sudo apt update # 安装 Nginx sudo apt install nginx -y
安装完成后,Nginx 会自动启动,你可以通过以下命令检查其状态:
sudo systemctl status nginx
如果看到绿色的 active (running) 字样,说明 Nginx 已经成功运行。
配置防火墙
如果你的服务器启用了防火墙(如 ufw),需要允许 HTTP (80) 和 HTTPS (443) 端口的流量。
# 允许 Nginx 的流量 sudo ufw allow 'Nginx Full' # 或者直接允许 80 和 443 端口 # sudo ufw allow 80/tcp # sudo ufw allow 443/tcp # 重新加载防火墙以应用规则 sudo ufw reload
测试 Nginx
你可以通过服务器的公网 IP 地址来访问 Nginx 的默认欢迎页面。

打开浏览器,输入 http://你的服务器公网IP。
如果你看到了 "Welcome to nginx!" 的页面,恭喜你,Nginx 已经成功安装并运行了!
第四步:部署你的第一个网站
默认的网站文件存放在 /var/www/html 目录下,为了管理多个网站,我们通常为每个网站创建一个独立的目录结构。
创建网站目录
假设我们要为域名 example.com 创建一个网站。
# 创建网站根目录 sudo mkdir -p /var/www/example.com/html # 创建一个简单的 index.html 文件 sudo nano /var/www/example.com/html/index.html
在打开的 nano 编辑器中,输入以下内容:
<!DOCTYPE html>
<html>
<head>My Awesome Website</title>
</head>
<body>
<h1>Hello from my Nginx server!</h1>
<p>This is the first website I deployed.</p>
</body>
</html>
按 Ctrl + X,然后按 Y,最后按 Enter 保存并退出。
设置目录权限
为了让 Nginx 能够读取网站文件,需要设置正确的所有者。
# 将网站目录的所有者设置为当前用户,避免每次都使用 sudo sudo chown -R $USER:$USER /var/www/example.com/html # 设置适当的文件权限 sudo chmod -R 755 /var/www/example.com/html
创建 Nginx 服务器块配置
“服务器块”类似于 Apache 中的“虚拟主机”,用于配置一个或多个域名。
Nginx 的默认配置文件在 /etc/nginx/sites-available/ 目录下,我们将为我们的新网站创建一个配置文件。
sudo nano /etc/nginx/sites-available/example.com
粘贴到文件中,并根据你的实际情况修改域名和路径:
# 监听 80 端口,并绑定到 example.com 和 www.example.com
server {
listen 80;
server_name example.com www.example.com;
# 指定网站的根目录
root /var/www/example.com/html;
# 指定默认首页文件
index index.html index.htm;
# 将所有请求指向这个 location 块
location / {
try_files $uri $uri/ =404;
}
}
启用新的网站配置
刚刚创建的配置文件位于 sites-available 目录,它还没有被 Nginx 启用,我们需要创建一个符号链接到 sites-enabled 目录来启用它。
# 创建符号链接 sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ # (可选) 为了避免服务器名称冲突,可以删除默认的配置文件 # sudo rm /etc/nginx/sites-enabled/default
测试并重新加载 Nginx
在重新加载 Nginx 之前,务必测试配置文件是否有语法错误。
# 测试 Nginx 配置 sudo nginx -t
如果看到以下输出,说明配置正确:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果测试通过,重新加载 Nginx 以应用新配置:
sudo systemctl reload nginx
配置本地 hosts 文件(用于测试)
如果你还没有为域名 example.com 配置 DNS 解析到你的服务器 IP,你可以修改你本机的 hosts 文件来测试。
- 在 Windows 上: 文件路径是
C:\Windows\System32\drivers\etc\hosts,需要管理员权限编辑。 - 在 macOS 或 Linux 上: 文件路径是
/etc/hosts,需要sudo权限编辑。
在文件末尾添加一行:
你的服务器公网IP example.com www.example.com
保存后,在浏览器中访问 http://example.com,你就能看到刚才创建的 "My Awesome Website" 页面了。
第五步:安装 PHP(可选,用于动态网站)
如果你的网站需要运行 PHP 代码(如 WordPress, Drupal 等),你需要安装 PHP-FPM (FastCGI Process Manager)。
安装 PHP 和相关扩展
# 安装 PHP-FPM 和一些常用扩展 sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
修改 Nginx 配置以支持 PHP
编辑你的网站配置文件:
sudo nano /etc/nginx/sites-available/example.com
在 location / 块的下面,添加一个新的 location 块来处理 .php 文件:
server {
# ... (之前的配置保持不变)
location / {
try_files $uri $uri/ =404;
}
# 新增的 PHP 配置块
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# 将请求传递给 unix 套接字
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
# 注意: php8.1-fpm.sock 中的版本号 (8.1) 可能会根据你安装的 PHP 版本而变化
# 你可以使用命令 `ls /var/run/php/` 来查看正确的文件名
}
# 处理 /favicon.ico 和 /robots.txt 文件
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
}
测试 PHP
创建一个 info.php 文件来测试 PHP 是否正常工作。
sudo nano /var/www/example.com/html/info.php
<?php phpinfo(); ?>
保存文件,然后在浏览器中访问 http://你的服务器IP/info.php,如果你能看到一个包含 PHP 详细信息的表格,说明 PHP 和 Nginx 的集成已经成功。
安全提示: 测试完成后,为了安全起见,应该立即删除 info.php 文件。
sudo rm /var/www/example.com/html/info.php
附录:如何安装 Apache
如果你更倾向于使用 Apache,安装步骤如下:
安装 Apache
sudo apt update sudo apt install apache2 -y
检查状态
sudo systemctl status apache2
配置防火墙
sudo ufw allow 'Apache Full' sudo ufw reload
测试 Apache
在浏览器中访问 http://你的服务器公网IP,你应该能看到 "Apache2 Ubuntu Default Page"。
创建虚拟主机
Apache 的虚拟主机配置文件在 /etc/apache2/sites-available/ 目录下。
# 创建配置文件 sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
启用配置并创建符号链接:
# 启用新配置 sudo a2ensite example.com.conf # (可选) 禁用默认站点 # sudo a2dissite 000-default.conf # 启用 rewrite 模块(很多现代网站需要) sudo a2enmod rewrite # 测试配置并重启 Apache sudo apache2ctl configtest sudo systemctl restart apache2
接下来的 PHP 配置也与 Nginx 类似,需要安装 libapache2-mod-php 模块。
搭建 Linux Web 服务器的核心步骤可以概括为:
- 安装软件: 使用
apt(Debian/Ubuntu) 或yum/dnf(CentOS) 安装 Nginx 或 Apache。 - 配置防火墙: 开放 80 (HTTP) 和 443 (HTTPS) 端口。
- 部署网站: 创建网站目录,上传文件,设置权限。
- 配置服务器: 创建服务器块/虚拟主机配置文件,定义域名、网站根目录等。
- 启用并测试: 启用配置,测试语法,重新加载服务器软件。
- (可选)安装 PHP: 如果需要动态内容,安装 PHP-FPM 或
libapache2-mod-php并配置服务器以支持它。
希望这份详细的指南能帮助你成功搭建自己的 Web 服务器!
