Debian LNMP 定制与优化指南
一 基础安装与集成
sudo apt update && sudo apt upgrade -ysudo apt install -y nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zipsudo systemctl start nginx && sudo systemctl enable nginxsudo systemctl start mariadb && sudo systemctl enable mariadbsudo systemctl start php7.4-fpm && sudo systemctl enable php7.4-fpm(请将 7.4 替换为实际版本)sudo mysql_secure_installationserver {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 按实际版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
sudo nginx -t && sudo systemctl reload nginxsudo ufw allow 'Nginx Full'echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.phphttp://服务器IP/info.php 应看到 PHP 信息页二 站点与虚拟主机管理
sudo nano /etc/nginx/sites-available/example.comsudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/sudo systemctl reload nginx/var/www/example.comsudo chown -R www-data:www-data /var/www/example.com && sudo chmod -R 755 /var/www/example.comlocation / {
try_files $uri $uri/ /index.php?$query_string;
}
三 性能与安全优化
worker_processes auto;
worker_rlimit_nofile 65535;
events {
worker_connections 4096;
use epoll;
multi_accept on;
}
http {
sendfile on;
tcp_nodelay on;
keepalive_timeout 65;
keepalive_requests 100000;
gzip on;
gzip_vary on;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
server_tokens off;
client_max_body_size 50M;
}
cgi.fix_pathinfo=0expose_php = Offdisplay_errors = Offopcache.enable=1opcache.memory_consumption=256opcache.interned_strings_buffer=64opcache.max_accelerated_files=10000opcache.validate_timestamps=1(生产建议配合文件时间戳管理改为 0)pm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35listen.backlog = 1024innodb_buffer_pool_size=1Gmax_connections=200slow_query_log=1long_query_time=2sudo sh -c 'echo "* soft nofile 65535" >> /etc/security/limits.conf'net.core.somaxconn=65535net.ipv4.ip_local_port_range=1024 65535net.ipv4.tcp_fin_timeout=30net.ipv4.tcp_tw_reuse=1四 自动化与证书管理
sudo apt install -y certbot python3-certbot-nginxsudo certbot --nginx -d example.com -d www.example.comsudo certbot renew --dry-runcurl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer五 常见问题与排错
systemctl status php7.4-fpmfastcgi_pass 路径与 PHP-FPM 监听一致(如:/run/php/php7.4-fpm.sock 或 127.0.0.1:9000)try_files $uri $uri/ /index.php?$query_string; 已配置(适用于前端控制器)client_max_body_size 50M;(按业务调整)upload_max_filesize、post_max_size(需同步调整)sudo nginx -t 再 reload 生效