欢迎光临
我们一直在努力

## 在 Linux 上搭建 Web 服务器,具体步骤看这里

在 Linux 上搭建一个功能完善的 Web 服务器,主要涉及安装服务器软件、配置网站、设置数据库和部署代码这几个核心步骤。下图清晰地展示了从准备到上线的完整工作流:

flowchart TD
A[开始搭建Linux Web服务器] –> B{选择Web服务器软件}

B –> C1[Apache<br>(稳定、模块丰富)]
B –> C2[Nginx<br>(高并发、反向代理)]

C1 & C2 –> D[安装与启动服务<br>(systemctl start/status …)]
D –> E[配置站点与目录权限]
E –> F[部署PHP/Python/Node.js<br>应用环境]
F –> G[安装与配置数据库<br>(MySQL/MariaDB)]
G –> H[部署应用程序代码]
H –> I[配置域名与DNS]
I –> J[实施安全加固]
J –> K[Web服务器搭建完成]

🛠️ 分步操作指南

下面以最流行的组合 Nginx + PHP + MariaDB 为例,在 Ubuntu/Debian 系统上进行详细操作。

步骤一:安装 Web 服务器 (Nginx)
  • 更新软件包列表:sudo apt update
    sudo apt upgrade -y

  • 安装 Nginx:sudo apt install nginx -y
  • 启动并设置开机自启:sudo systemctl start nginx
    sudo systemctl enable nginx

  • 验证安装:
    在浏览器输入你的服务器IP地址,看到“Welcome to nginx!”页面即成功。
  • 步骤二:安装并配置 PHP 运行时
  • 安装 PHP 及常用扩展:sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y

    提示:php-fpm是PHP的FastCGI进程管理器,与Nginx协作。

  • 配置 Nginx 以处理 PHP:
    编辑默认站点配置文件:sudo nano /etc/nginx/sites-available/default

    找到处理PHP的部分(通常在 index 指令后),修改或确保如下配置:location ~ \\.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 版本号请根据实际调整
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }

  • 测试并重载配置:sudo nginx -t # 测试配置语法
    sudo systemctl reload nginx # 重载使配置生效

  • 创建PHP测试文件:sudo nano /var/www/html/info.php

    写入:<?php phpinfo(); ?>
    访问 http://你的服务器IP/info.php,看到PHP信息页即配置成功。完成后请务必删除此文件,因为它会暴露敏感信息。

  • 步骤三:安装数据库 (MariaDB)
  • 安装 MariaDB:sudo apt install mariadb-server -y
  • 运行安全初始化脚本:sudo mysql_secure_installation

    根据提示设置root密码、移除匿名用户、禁止远程root登录等。

  • 登录数据库并创建测试库和用户:sudo mysql -u root -p

    在MySQL提示符下执行:CREATE DATABASE testdb;
    CREATE USER 'testuser'@'localhost' IDENTIFIED BY '你的强密码';
    GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;

  • 步骤四:部署你的应用程序
  • 上传代码:
    将你的网站程序文件(如HTML、PHP文件)上传到 /var/www/html/ 目录,或你自定义的站点目录。
    可以使用 scp 命令或SFTP工具(如FileZilla)。
  • 设置正确的目录权限(至关重要):sudo chown -R www-data:www-data /var/www/html/ # 更改所有者
    sudo chmod -R 755 /var/www/html/ # 设置权限

  • 步骤五:配置域名与DNS(可选)
  • 在域名注册商处,将你的域名A记录解析到服务器公网IP。
  • 在Nginx配置中,将 server_name 指令后的值改为你的域名。
  • 步骤六:基础安全加固
  • 配置防火墙:sudo apt install ufw -y
    sudo ufw allow 'OpenSSH' # 首先确保允许SSH,否则可能被锁
    sudo ufw allow 'Nginx Full' # 或 'Nginx HTTP'/'Nginx HTTPS'
    sudo ufw –force enable

  • 获取免费的SSL证书(HTTPS):
    使用Let‘s Encrypt的Certbot工具自动化获取和配置:sudo apt install certbot python3-certbot-nginx -y
    sudo certbot –nginx -d 你的域名.com

    证书会自动续期。

  • 💡 扩展选择与故障排查

    • 选择其他服务器:如果选择 Apache,安装命令为 sudo apt install apache2,其配置文件通常位于 /etc/apache2/sites-available/。
    • 部署其他语言:若要部署 Python(Django/Flask) 或 Node.js 应用,你需要安装相应的运行时(如python3-pip, nodejs, npm),并使用 Gunicorn/uWSGI 或 PM2 作为应用服务器,再让Nginx反向代理到它们。
    • 常见问题:
      • “403 Forbidden”:检查目录权限和所有者是否正确。
      • “502 Bad Gateway”:通常与PHP-FPM未运行或Nginx配置中的socket路径错误有关,检查 php-fpm 服务状态 sudo systemctl status php-fpm。

    下一步建议

    完成基础搭建后,你可以根据实际需求进一步探索:

  • 虚拟主机:在一台服务器上使用Nginx或Apache配置多个网站。
  • 负载均衡:使用Nginx将流量分发到多台应用服务器。
  • 容器化部署:学习使用Docker来封装你的应用和环境,实现更一致的部署。
  • 如果你能告诉我你具体打算用来做什么(例如运行个人博客、开发测试环境还是商业网站),以及你使用的具体Linux发行版,我可以为你提供更精确的指导。

    原文参考:https://www.jianshu.com/p/1f346d05b7da

    赞(0)
    未经允许不得转载:171主机测评 » ## 在 Linux 上搭建 Web 服务器,具体步骤看这里
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址