温馨提示×

Debian如何定制LNMP功能

小樊
58
2025-08-28 00:42:51
栏目: 智能运维

在Debian上定制LNMP(Linux+Nginx+MySQL/MariaDB+PHP)功能,可按以下步骤操作,结合实际需求调整配置:

一、基础环境安装

  1. 更新系统

    sudo apt update && sudo apt upgrade -y 
  2. 安装Nginx

    sudo apt install nginx sudo systemctl start nginx && sudo systemctl enable nginx 
  3. 安装数据库(MySQL/MariaDB)

    • MariaDB(推荐):
      sudo apt install mariadb-server sudo mysql_secure_installation # 设置root密码及安全选项 
    • MySQL(需手动配置):
      参考中源码安装步骤,需编译安装并配置my.cnf
  4. 安装PHP及扩展

    sudo apt install php-fpm php-mysql php-gd php-curl php-mbstring 
    • 安装其他扩展(如Redis、PDO):
      sudo apt install php-redis php-pdo 

二、配置服务联动

  1. 配置PHP-FPM
    编辑/etc/php/<version>/fpm/pool.d/www.conf<version>为PHP版本号,如7.4):

    listen = /run/php/php7.4-fpm.sock # 确保与Nginx配置一致 listen.owner = www-data listen.group = www-data 

    重启服务:

    sudo systemctl restart php7.4-fpm 
  2. 配置Nginx支持PHP
    编辑站点配置文件(如/etc/nginx/sites-available/default):

    location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 与PHP-FPM监听路径一致 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } 

    测试配置并重启Nginx:

    sudo nginx -t && sudo systemctl restart nginx 

三、高级功能定制

  1. 数据库主从复制(集群场景)

    • 主服务器:修改/etc/mysql/my.cnf,设置server-id=1log-bin=mysql-bin,并重启MySQL。
    • 从服务器:配置server-id=2relay-log=mysql-relay-bin,并执行CHANGE MASTER TO命令指向主服务器。
    • 启动从服务器复制:sudo systemctl start mysql-slave
  2. SSL证书配置(HTTPS支持)
    使用Let’s Encrypt免费证书:

    sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com 
  3. 虚拟主机配置
    创建自定义虚拟主机文件(如/etc/nginx/sites-available/example.com.conf):

    server { listen 80; server_name example.com; root /var/www/example.com; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } } 

    启用配置:sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/,然后重启Nginx。

  4. 性能优化

    • 调整Nginx缓存:在http模块中添加proxy_cache_path配置。
    • 优化PHP内存限制:编辑php.ini设置memory_limit=512M
    • 启用MySQL查询缓存:在my.cnf中设置query_cache_type=1

四、安全与维护

  1. 防火墙配置
    使用UFW允许HTTP/HTTPS流量:

    sudo ufw allow 'Nginx Full' sudo ufw deny 3306/tcp # 禁止数据库远程访问(生产环境建议限制IP) 
  2. 日志管理

    • Nginx日志路径:/var/log/nginx/access.log/var/log/nginx/error.log
    • PHP错误日志:编辑php.ini设置error_log=/var/log/php_errors.log
  3. 服务监控

    • 安装htop监控系统资源:sudo apt install htop
    • 使用systemctl查看服务状态:sudo systemctl status nginx mysql php7.4-fpm

五、验证环境

  1. 创建测试文件/var/www/html/info.php
    <?php phpinfo(); ?> 
  2. 访问http://服务器IP/info.php,确认PHP信息页面正常显示,且数据库连接正常。

根据实际需求,可进一步调整Nginx的负载均衡、数据库分片或PHP的OPcache等高级功能。

0