debian

Debian如何定制LNMP功能

小樊
43
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
看了该问题的人还看了