凌峰创科服务平台

Linux搭建Web服务器有哪些关键步骤?

选择你的 Web 服务器软件

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

Linux搭建Web服务器有哪些关键步骤?-图1
(图片来源网络,侵删)
  • Nginx (Engine X):

    • 优点: 性能极高,尤其是处理高并发静态文件请求时,占用内存少,配置相对简洁,是现代 Web 应用的首选。
    • 特点: 采用事件驱动的异步模型,而不是像 Apache 那样的进程/线程模型。
  • Apache HTTP Server:

    • 优点: 历史悠久,稳定可靠,功能极其丰富,模块化程度高,兼容性非常好,几乎支持所有操作系统。
    • 特点: 采用“一个连接一个进程/线程”的模型,配置非常灵活,但可能在高并发下消耗更多资源。

推荐: 对于新手和绝大多数现代应用,推荐使用 Nginx,本指南将以 Nginx 为核心进行讲解,并在最后提供 Apache 的安装方法。


第二步:准备工作

  1. 拥有一台 Linux 服务器: 可以是云服务器(如阿里云、腾讯云、AWS)或你自己的虚拟机/VPS,本教程以 Ubuntu 22.04 为例,其他发行版(如 CentOS)的命令和配置文件路径可能略有不同。
  2. 系统更新: 无论使用哪个系统,第一步都建议更新软件包列表和已安装的软件。
    sudo apt update
    sudo apt upgrade -y
  3. 获取 sudo 权限: 你需要一个拥有管理员权限的用户来安装软件和修改配置文件。

第三步:安装 Nginx

安装过程非常简单,使用系统的包管理器即可。

Linux搭建Web服务器有哪些关键步骤?-图2
(图片来源网络,侵删)
# 更新包列表
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 的默认欢迎页面。

Linux搭建Web服务器有哪些关键步骤?-图3
(图片来源网络,侵删)

打开浏览器,输入 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 服务器的核心步骤可以概括为:

  1. 安装软件: 使用 apt (Debian/Ubuntu) 或 yum/dnf (CentOS) 安装 Nginx 或 Apache。
  2. 配置防火墙: 开放 80 (HTTP) 和 443 (HTTPS) 端口。
  3. 部署网站: 创建网站目录,上传文件,设置权限。
  4. 配置服务器: 创建服务器块/虚拟主机配置文件,定义域名、网站根目录等。
  5. 启用并测试: 启用配置,测试语法,重新加载服务器软件。
  6. (可选)安装 PHP: 如果需要动态内容,安装 PHP-FPM 或 libapache2-mod-php 并配置服务器以支持它。

希望这份详细的指南能帮助你成功搭建自己的 Web 服务器!

分享:
扫描分享到社交APP
上一篇
下一篇