在开始搭建前,需确保系统为Debian 11及以上版本(推荐),并完成以下准备工作:
sudo apt update && sudo apt upgrade -ysudo apt install -y wget curl gitsudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx # 设置开机自启
sudo apt install -y mariadb-server
sudo mysql_secure_installation # 执行安全加固(设置root密码、移除匿名用户、禁止远程root登录等)
sudo systemctl status mariadb(显示“active (running)”则为正常)。sudo apt install -y php-fpm php-mysql php-opcache php-cli php-gd php-curl php-mbstring php-xml
sudo systemctl start php7.4-fpm # 根据实际PHP版本调整(如php8.2-fpm)
sudo systemctl enable php7.4-fpm
/etc/php/7.4/fpm/php.ini,修改cgi.fix_pathinfo=0(防止PHP路径遍历攻击)。编辑Nginx默认站点配置(/etc/nginx/sites-available/default),添加PHP处理逻辑:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 确保与PHP-FPM的listen指令一致
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
sudo nginx -t(无错误则重启Nginx:sudo systemctl restart nginx)。/etc/nginx/nginx.conf):http {
large_client_header_buffers 4 8k; # 增大客户端请求头缓冲区
client_max_body_size 100m; # 允许上传文件最大100MB
gzip on; # 开启Gzip压缩
gzip_types text/plain text/css application/json application/javascript;
}
sudo systemctl restart nginx。/etc/php/7.4/fpm/pool.d/www.conf):user = www-data
group = www-data
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50 # 根据服务器内存调整(如1GB内存可设20-30)
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
sudo systemctl restart php7.4-fpm。/etc/mysql/mariadb.conf.d/50-server.cnf):[mysqld]
innodb_buffer_pool_size = 1G # InnoDB缓冲池大小(建议为物理内存的50%-70%)
innodb_log_file_size = 256M # 日志文件大小
innodb_flush_log_at_trx_commit = 2 # 提升写入性能(牺牲少量数据安全性)
query_cache_type = 1
query_cache_size = 64M
sudo systemctl restart mariadb。若需快速部署多台服务器,可使用以下工具:
参考前述“自动化部署脚本”部分,编写包含apt install、systemctl命令的脚本(如deploy_lnmp.sh),赋予执行权限后运行:
chmod +x deploy_lnmp.sh
sudo ./deploy_lnmp.sh
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz
tar xzf oneinstack-full.tar.gz
cd oneinstack
./install.sh
按交互式菜单选择所需组件,等待自动部署完成。sudo nano /var/www/html/info.php,内容为<?php phpinfo(); ?>。http://服务器IP/info.php,若显示PHP信息页面则说明LNMP环境搭建成功。通过以上步骤,可实现Debian系统下LNMP环境的高效搭建与优化。根据实际业务需求,可进一步调整配置(如开启HTTP/2、配置SSL证书、设置数据库主从复制等)以提升性能和安全性。