如何在Debian上自定义LNMP配置
导读:在 Debian 上自定义 LNMP 配置的实用步骤 一 准备与安装 更新系统并安装组件: 执行:sudo apt update && sudo apt upgrade -y 安装:Nginx、MariaDB/MySQL...
在 Debian 上自定义 LNMP 配置的实用步骤
一 准备与安装
- 更新系统并安装组件:
- 执行:
sudo apt update & & sudo apt upgrade -y - 安装:Nginx、MariaDB/MySQL、PHP 与 PHP-FPM(按需选择扩展,如:php-mysql php-curl php-gd php-mbstring php-xml php-zip)
- 执行:
- 启动与开机自启:
sudo systemctl start nginx & & sudo systemctl enable nginxsudo systemctl start mariadb & & sudo systemctl enable mariadbsudo systemctl start php< 版本> -fpm & & sudo systemctl enable php< 版本> -fpm
- 数据库安全初始化:
sudo mysql_secure_installation - 版本确认与路径提示:
- PHP 版本可用:
apt-cache search php | grep php< 主版本> - PHP-FPM 监听常见路径:/run/php/php< 版本> -fpm.sock 或 /var/run/php/php< 版本> -fpm.sock(以实际安装为准)
- PHP 版本可用:
二 核心配置与目录结构
- Nginx
- 主配置:/etc/nginx/nginx.conf
- 站点配置:/etc/nginx/sites-available/,启用时软链到 /etc/nginx/sites-enabled/
- 测试与重载:
sudo nginx -t & & sudo systemctl reload nginx
- MariaDB/MySQL
- 主配置:/etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf
- 重启服务:
sudo systemctl restart mariadb(或mysql)
- PHP
- php.ini 位置可用:
php --ini查看(区分 CLI 与 FPM) - FPM 池配置:/etc/php/< 版本> /fpm/pool.d/www.conf
- 修改 FPM 后重启:
sudo systemctl restart php< 版本> -fpm
- php.ini 位置可用:
三 关键自定义示例
- 站点与 PHP 处理(Nginx 虚拟主机)
- 建议为每个站点新建配置:/etc/nginx/sites-available/yourdomain.com
- 启用站点:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/ - 示例片段:
server { listen 80; server_name yourdomain.com www.yourdomain.com; root /var/www/yourdomain.com/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php< 版本> -fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } - 测试与重载:
sudo nginx -t & & sudo systemctl reload nginx
- PHP 安全与性能
- 关闭路径信息泄露:
cgi.fix_pathinfo=0(编辑 /etc/php/< 版本> /fpm/php.ini) - 启用 OPcache(生产建议开启):
opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.validate_timestamps=0 ; 生产建议关闭,部署后手动清理缓存 opcache.revalidate_freq=60 - 修改后重启 FPM:
sudo systemctl restart php< 版本> -fpm
- 关闭路径信息泄露:
- MariaDB 基础优化(示例)
- 编辑 /etc/mysql/mysql.conf.d/mysqld.cnf:
innodb_buffer_pool_size=1G(按内存调整,常见为内存的 50%–75%)max_connections=200- 开启慢查询日志用于排障:
slow_query_log=1,slow_query_log_file=/var/log/mysql/mysql-slow.log,long_query_time=2
- 重启数据库:
sudo systemctl restart mariadb
- 编辑 /etc/mysql/mysql.conf.d/mysqld.cnf:
四 安全与运维要点
- 防火墙放行 Web 流量:
- UFW:
sudo ufw allow 'Nginx Full'
- UFW:
- HTTPS 自动化:
- 安装与签发:
sudo apt install certbot python3-certbot-nginx -y - 命令:
sudo certbot --nginx -d yourdomain.com
- 安装与签发:
- 文件与目录权限:
- Web 根目录建议属主 www-data:
sudo chown -R www-data:www-data /var/www/yourdomain.com - 目录权限 755,文件 644
- Web 根目录建议属主 www-data:
- 日志与排错:
- Nginx 错误日志:/var/log/nginx/error.log
- PHP-FPM 日志:查看 /etc/php/<
版本>
/fpm/pool.d/www.conf 中
error_log配置 - 数据库错误日志:常见在 /var/log/mysql/error.log
- 变更流程建议:
- 修改前备份配置:
sudo cp file file.bak-$(date +%F) - 每次变更后执行:
sudo nginx -t校验,再reload/restart服务
- 修改前备份配置:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Debian上自定义LNMP配置
本文地址: https://pptw.com/jishu/762427.html
