在一台 2核4G 的服务器上安装 LNMP(Linux + Nginx + MySQL + PHP) 是完全可行的,尤其适合中小型网站、博客、测试环境或轻量级应用。下面我为你详细介绍如何部署 LNMP 并优化 MySQL 配置以适应 2核4G 的资源限制。
✅ 一、环境准备
假设你使用的是 CentOS 7/8 或 Ubuntu 20.04/22.04,这里以 Ubuntu 20.04 为例。
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 安装常用工具
sudo apt install wget curl vim git unzip -y
✅ 二、选择安装方式(推荐两种)
方式一:使用一键安装包(推荐新手)
推荐使用 LNMP.org 提供的一键安装脚本,简单高效。
1. 下载并运行 LNMP 一键安装包
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz
tar zxvf lnmp1.9.tar.gz
cd lnmp1.9
2. 配置安装选项
./install.sh lnmp
- 安装过程中会提示选择:
- MySQL 版本:建议选
MySQL 5.7或MariaDB 10.6(更省资源) - PHP 版本:推荐
PHP 7.4或PHP 8.0 - 是否启用 InnoDB:默认开启即可
- MySQL 版本:建议选
⚠️ 注意:不要安装过多组件(如 PureFTPd、Redis 可后期按需添加)。
方式二:手动安装(适合进阶用户)
1. 安装 Nginx
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
2. 安装 MySQL(以 MySQL 8.0 为例)
sudo apt install mysql-server -y
sudo mysql_secure_installATION # 设置 root 密码、删除匿名用户等
3. 安装 PHP(以 PHP 8.1 为例)
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
sudo systemctl enable php8.1-fpm
sudo systemctl start php8.1-fpm
4. 配置 Nginx 支持 PHP
编辑站点配置文件(如 /etc/nginx/sites-available/default),确保包含:
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
重启 Nginx:
sudo nginx -t && sudo systemctl reload nginx
✅ 三、MySQL 优化(针对 2核4G)
默认 MySQL 配置可能占用较多内存,建议修改配置文件进行调优。
编辑 MySQL 配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 或 /etc/my.cnf(根据系统不同)
添加以下优化配置(适用于 2核4G)
[mysqld]
# 基础设置
port = 3306
bind-address = 127.0.0.1
skip-name-resolve
max_connections = 100
# 内存相关(关键)
key_buffer_size = 32M
max_allowed_packet = 64M
table_open_cache = 256
sort_buffer_size = 2M
net_buffer_length = 4K
read_buffer_size = 2M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 16M
# InnoDB 设置(主要引擎)
innodb_buffer_pool_size = 1G # 推荐为总内存的 50%~70%,2G 可设 1G
innodb_log_file_size = 128M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_flush_method = O_DIRECT
# 其他
query_cache_type = 1
query_cache_size = 32M
tmp_table_size = 32M
max_heap_table_size = 32M
# 日志
log-error = /var/log/mysql/error.log
slow_query_log = 1
long_query_time = 2
保存后重启 MySQL
sudo systemctl restart mysql
✅ 四、资源监控与建议
1. 查看内存使用情况
free -h
htop # 需要安装:apt install htop
2. 建议
-
避免同时运行多个数据库或高负载服务
-
启用 PHP OPcache 提升性能:
opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60配置文件路径:
/etc/php/8.1/fpm/conf.d/10-opcache.ini -
可考虑加 swap 分区(如 1~2GB)防止内存溢出:
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab
✅ 五、部署网站示例(WordPress)
- 将网站文件放到
/var/www/html - 创建数据库:
CREATE DATABASE wp_db; CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'localhost'; FLUSH PRIVILEGES; - 配置 Nginx 虚拟主机
- 访问域名完成安装
✅ 总结
| 项目 | 推荐配置 |
|---|---|
| 系统 | Ubuntu 20.04 LTS / CentOS 7+ |
| Nginx | 1.18+ |
| MySQL | 5.7 / 8.0 或 MariaDB 10.6 |
| PHP | 7.4 / 8.0 / 8.1 |
| 内存优化 | innodb_buffer_pool_size = 1G |
| 适用场景 | 博客、企业站、小程序后端、测试环境 |
✅ 结论:2核4G 完全可以流畅运行 LNMP + MySQL,只要合理配置和优化即可。
如果你告诉我你要部署什么类型的网站(如 WordPress、Typecho、API 服务等),我可以提供更具体的配置建议。
CLOUD云计算