debian

如何在Debian上部署LNMP服务器

小樊
47
2025-10-10 07:43:59
栏目: 云计算

如何在Debian上部署LNMP服务器
LNMP(Linux + Nginx + MySQL/MariaDB + PHP)是常见的Web服务器架构,适用于搭建动态网站(如WordPress、Discuz等)。以下是在Debian系统上部署LNMP的详细步骤:

1. 更新系统软件包

首先确保系统软件包为最新版本,避免兼容性问题:

sudo apt update && sudo apt upgrade -y

2. 安装Nginx Web服务器

Nginx以其高性能和低资源占用著称,是LNMP的首选Web服务器:

sudo apt install nginx -y

安装完成后,启动Nginx并设置开机自启动:

sudo systemctl start nginx
sudo systemctl enable nginx

验证安装:在浏览器中访问服务器IP地址,若看到Nginx默认欢迎页面(如“Welcome to nginx!”),则说明安装成功。

3. 安装MySQL/MariaDB数据库

MySQL是传统关系型数据库,MariaDB是其分支(兼容MySQL)。推荐使用MariaDB(Debian默认仓库版本):

sudo apt install mariadb-server mariadb-client -y

安装过程中会提示设置root用户密码,务必记住该密码(后续数据库操作需用到)。
启动MariaDB并设置开机自启动:

sudo systemctl start mariadb
sudo systemctl enable mariadb

安全加固:运行以下命令修复默认配置漏洞(如删除匿名用户、禁止root远程登录、删除测试数据库):

sudo mysql_secure_installation

按照提示逐步操作(输入root密码→移除匿名用户→禁止root远程登录→删除测试数据库→重新加载权限)。

4. 安装PHP及必要扩展

PHP是处理动态内容的脚本语言,需安装PHP核心及与Nginx、MySQL交互的扩展:

sudo apt install php-fpm php-mysql php-cli php-gd php-curl php-mbstring php-xml -y

启动PHP-FPM并设置开机自启动:

sudo systemctl start php-fpm  # Debian默认版本为php7.4-fpm(需根据实际版本调整)
sudo systemctl enable php-fpm

优化配置:编辑PHP-FPM池配置文件(路径取决于PHP版本,如/etc/php/7.4/fpm/pool.d/www.conf),确保以下参数正确:

listen = /run/php/php7.4-fpm.sock  # 监听Unix socket(推荐,性能优于TCP)
listen.owner = www-data
listen.group = www-data

修改后重启PHP-FPM使配置生效:

sudo systemctl restart php-fpm

5. 配置Nginx支持PHP

默认Nginx配置无法处理PHP请求,需修改站点配置文件(以默认站点为例):

sudo nano /etc/nginx/sites-available/default

找到server块,修改或添加以下内容:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;          # 网站根目录(默认)
    index index.php index.html;  # 添加index.php到默认索引文件

    location / {
        try_files $uri $uri/ =404;  # 尝试访问文件,不存在则返回404
    }

    location ~ \.php$ {            # 处理PHP请求
        include snippets/fastcgi-php.conf;  # 引入FastCGI配置
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;  # 与PHP-FPM通信(路径需与www.conf一致)
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  # 传递脚本路径
        include fastcgi_params;  # 包含通用FastCGI参数
    }

    location ~ /\.ht {             # 禁止访问.htaccess文件(Apache遗留配置)
        deny all;
    }
}

保存并退出编辑器(Ctrl+O→回车→Ctrl+X)。
测试配置语法

sudo nginx -t

若输出“syntax is ok”和“test is successful”,则说明配置正确。
重载Nginx

sudo systemctl reload nginx

6. 验证LNMP环境

创建PHP信息测试文件,确认PHP与Nginx集成正常:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

在浏览器中访问http://服务器IP/info.php,若看到PHP详细信息页面(如PHP版本、模块列表),则说明LNMP环境部署成功。

7. 可选:配置防火墙与SSL

配置防火墙(UFW)

若系统启用了UFW防火墙,需允许HTTP(80)和HTTPS(443)流量:

sudo ufw allow 'Nginx Full'
sudo ufw enable  # 若未启用,可选择性开启

安装SSL证书(Let’s Encrypt)

为网站启用HTTPS(加密传输),使用Let’s Encrypt免费证书:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com  # 替换为你的域名

按照提示完成证书申请(需验证域名所有权),证书会自动配置到Nginx中。
自动续期:Let’s Encrypt证书有效期为90天,可通过以下命令测试续期:

sudo certbot renew --dry-run

8. 后续操作(可选)

通过以上步骤,你已在Debian系统上成功部署LNMP服务器,可满足大多数动态网站的运行需求。

0
看了该问题的人还看了