2核2G服务器搭建LNMP环境指南
结论
在2核2G的服务器上搭建LNMP(Linux + Nginx + MySQL + PHP)环境是完全可行的,但需优化配置以避免资源耗尽。关键点在于精简服务、调整参数,并选择轻量级替代方案(如MariaDB替代MySQL)。
准备工作
-
系统选择
- 推荐 Ubuntu 20.04/22.04 LTS 或 CentOS 7/8(稳定且社区支持完善)。
- 避免图形界面,仅安装最小化系统以节省资源。
-
更新系统
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian sudo yum update -y # CentOS
安装Nginx
-
安装
sudo apt install nginx -y # Ubuntu sudo yum install nginx -y # CentOS -
优化配置
- 修改
/etc/nginx/nginx.conf,降低工作进程数:worker_processes 1; # 2核CPU建议设为1-2 worker_connections 512; # 减少单个进程连接数 - 启用Gzip压缩以减少带宽占用:
gzip on; gzip_types text/css application/json;
- 修改
-
启动Nginx
sudo systemctl enable --now nginx
安装MySQL/MariaDB
对于2G内存服务器,建议用MariaDB替代MySQL(更轻量):
-
安装MariaDB
sudo apt install mariadb-server -y # Ubuntu sudo yum install mariadb-server -y # CentOS -
安全配置
sudo mysql_secure_installation- 设置root密码,移除匿名用户和测试数据库。
-
优化内存
编辑/etc/mysql/my.cnf,添加:[mysqld] innodb_buffer_pool_size = 256M # 限制InnoDB内存占用 key_buffer_size = 64M # 减少Key Buffer
安装PHP
-
安装PHP-FPM
sudo apt install php-fpm php-mysql -y # Ubuntu sudo yum install php-fpm php-mysqlnd -y # CentOS -
优化PHP配置
- 编辑
/etc/php/7.x/fpm/php.ini(版本号根据实际调整):memory_limit = 128M # 限制单脚本内存 max_execution_time = 30 # 缩短超时时间
- 编辑
-
配置Nginx支持PHP
在Nginx站点配置中添加:location ~ .php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; include fastcgi_params; }
验证与测试
-
创建PHP测试页
echo "<?php phpinfo(); ?>" > /var/www/html/info.php访问
http://服务器IP/info.php,确认PHP和MySQL模块已加载。 -
监控资源
- 使用
top或htop观察CPU/内存占用。 - 关键命令:
free -h # 查看内存 df -h # 检查磁盘
- 使用
常见问题与优化
-
问题1:内存不足导致服务崩溃
- 解决方案:
- 禁用非必要服务(如
cron可调整任务间隔)。 - 使用Swap分区(临时缓解):
sudo fallocate -l 1G /swapfile sudo mkswap /swapfile && sudo swapon /swapfile
-
问题2:MySQL响应慢
- 优化建议:
- 降低
innodb_buffer_pool_size至128M。 - 使用轻量级数据库如SQLite(适合小型项目)。
总结
在2核2G服务器上搭建LNMP需重点优化内存和进程配置:
- 精简服务:选择MariaDB、限制PHP/Nginx工作进程。
- 监控调整:通过
top和日志持续观察资源占用。 - 应急方案:配置Swap或降级非关键功能。
最终建议:若流量增长,可升级至2核4G或启用缓存(如Redis)进一步提升性能。
秒懂云